rdev/deployments/k8s/base/citadel-agent/daemonset.yaml
jordan a8c8a0a14d
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: add GCS-based persistent media storage, AI generation pipeline, and composable skeleton packages
Adds complete media storage pipeline with GCS presigned uploads, AI image/video/text generation
via queue-based workers, realtime SSE event streaming, and comprehensive skeleton packages
(storage, mediagen, textgen, generation, realtime, persona, routing, ai-client). Includes
security fixes for media delete authorization, nil pointer guards in handlers, video persistence
via download-then-upload, consistent signed URLs, and Image→ImageIcon rename to avoid DOM collision.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:29:09 -07:00

93 lines
2.7 KiB
YAML

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: citadel-agent
namespace: observability
labels:
app.kubernetes.io/name: citadel-agent
app.kubernetes.io/part-of: citadel
spec:
selector:
matchLabels:
app.kubernetes.io/name: citadel-agent
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
app.kubernetes.io/name: citadel-agent
app.kubernetes.io/part-of: citadel
# Label this pod so it routes its OWN logs to rdev-platform
citadel.io/environment: rdev-platform
citadel.io/service: citadel-agent
spec:
serviceAccountName: citadel-agent
tolerations:
# Run on all nodes including control plane
- operator: Exists
containers:
- name: agent
image: gcr.io/orchard9/citadel-agent:latest
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
envFrom:
- configMapRef:
name: citadel-agent-config
env:
- name: CITADEL_API_KEY
valueFrom:
secretKeyRef:
name: citadel-agent
key: api-key
- name: CITADEL_TENANT_ID
valueFrom:
secretKeyRef:
name: citadel-agent
key: tenant-id
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
volumeMounts:
# Container log files on the node
- name: varlog
mountPath: /var/log
readOnly: true
# Container runtime data (for resolving container IDs to pod metadata)
- name: containers
mountPath: /var/lib/docker/containers
readOnly: true
# Persistent state (checkpoint offsets survive agent restarts)
- name: agent-state
mountPath: /var/lib/citadel-agent
livenessProbe:
httpGet:
path: /healthz
port: 9090
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /readyz
port: 9090
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- name: varlog
hostPath:
path: /var/log
- name: containers
hostPath:
path: /var/lib/docker/containers
- name: agent-state
hostPath:
path: /var/lib/citadel-agent
type: DirectoryOrCreate