nxtgauge-gitops/apps/nxtgauge-ai-assistant/base/deployment.yaml
Ashwin Kumar Sivakumar b4f371d415 Encrypt all secrets with SOPS, add Flux decryption support, rotate JWT_SECRET/AI_SERVICE_KEY
- Add .sops.yaml (age) and encrypt every plaintext Secret manifest in apps/
- Commit the Flux GitRepository/Kustomization (previously only applied manually)
  with a decryption stanza referencing the sops-age key (created out-of-band,
  not committed)
- Rotate JWT_SECRET (previously exposed in plaintext) and set a real
  AI_SERVICE_KEY (was an empty placeholder), shared between
  nxtgauge-backend-rust and nxtgauge-ai-assistant
- Wire JWT_SECRET into the ai-assistant deployment (was missing entirely,
  causing every authenticated request to fail)
- Redact the leaked LiteLLM production master key from README/OPENCODE_CONNECT
  docs; move the litellm prod overlay off a plaintext secretGenerator onto an
  encrypted patch
2026-07-02 17:56:28 +05:30

55 lines
1.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: nxtgauge-ai-assistant
labels:
app: nxtgauge-ai-assistant
spec:
replicas: 1
selector:
matchLabels:
app: nxtgauge-ai-assistant
template:
metadata:
labels:
app: nxtgauge-ai-assistant
spec:
imagePullSecrets:
- name: ghcr-regcred
containers:
- name: ai-assistant
image: registry.nxtgauge.com/nxtgauge-ai-assistant:2f999dfe95a48ea4090a90519dc3950f1e729924
imagePullPolicy: Always
ports:
- containerPort: 8080
name: http
env:
- name: APP_HOST
value: "0.0.0.0"
- name: APP_PORT
value: "8080"
- name: OLLAMA_BASE_URL
value: "http://ollama.nxtgauge-ai.svc.cluster.local:11434"
- name: OLLAMA_CHAT_MODEL
value: "gemma3:270m"
- name: OLLAMA_EMBED_MODEL
value: "nomic-embed-text"
- name: NXTGAUGE_USERS_URL
value: "http://nxtgauge-rust-users:9101"
- name: AI_SERVICE_KEY
valueFrom:
secretKeyRef:
name: nxtgauge-ai-assistant-secrets
key: ai-service-key
- name: JWT_SECRET
valueFrom:
secretKeyRef:
name: nxtgauge-backend-rust-secrets
key: JWT_SECRET
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 1000m
memory: 512Mi