# Ingestion / purge worker (runs the same image with a periodic job loop). apiVersion: apps/v1 kind: Deployment metadata: { name: worker, namespace: uqo-chat } spec: replicas: 1 selector: { matchLabels: { app: worker } } template: metadata: { labels: { app: worker } } spec: containers: - name: worker image: ghcr.io/ORG/uqo-chat-api:latest command: ["python", "-c", "import asyncio,time;from app.services import files;from app.services import conversations as c\nasync def m():\n while True:\n await files.purge_expired(); await c.redact_old_messages(12); await asyncio.sleep(3600)\nasyncio.run(m())"] envFrom: [{ secretRef: { name: uqo-chat-secrets } }, { configMapRef: { name: uqo-chat-config } }] resources: { requests: { cpu: 50m, memory: 256Mi }, limits: { cpu: 500m, memory: 512Mi } }