apiVersion: apps/v1 kind: Deployment metadata: name: stt-server namespace: ai spec: replicas: 1 selector: matchLabels: app: stt-server template: metadata: labels: app: stt-server spec: # Image privée sur ghcr → secret de pull créé manuellement dans le ns ai # (cf. README : kubectl create secret docker-registry ghcr-pull ...) imagePullSecrets: - name: ghcr-pull # Conformité PodSecurity "restricted" (namespace ai) securityContext: runAsNonRoot: true runAsUser: 1000 seccompProfile: type: RuntimeDefault containers: - name: stt-server # Tag géré par la CI (build-stt-server.yml) : bumpé en sha- à chaque build main. image: ghcr.io/alkatrazz24/funk-stt-server:latest securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] ports: - containerPort: 8000 env: # LiteLLM (s01) joint en IP directe — même pattern qu'open-webui - name: STT_LITELLM_URL value: "http://192.168.10.1:4000/v1/chat/completions" - name: STT_LITELLM_KEY value: "lm-studio" - name: STT_MODEL value: "hermes-default" # Mémoire long-terme (Qdrant s01 + embeddings Qwen3 gpu-01) — dégrade si injoignable - name: STT_MEMORY_LONGTERM value: "true" - name: STT_QDRANT_URL value: "http://192.168.10.1:6333" - name: STT_EMBED_URL value: "http://192.168.10.20:1234/v1/embeddings" readinessProbe: httpGet: path: /healthz port: 8000 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: path: /healthz port: 8000 initialDelaySeconds: 10 periodSeconds: 20 resources: requests: cpu: 50m memory: 128Mi limits: cpu: 500m memory: 256Mi