nxtgauge-gitops/apps/litellm/base/deployment.yaml
sync-test 2c34d78534
All checks were successful
sync-to-forgejo / sync (push) Successful in 14s
fix(litellm): restore DATABASE_URL env var lost when adopting the drifted live deployment
kubectl apply replaced the live pod's env list wholesale with what was
in this file (which never had DATABASE_URL, despite the
litellm-db-credentials secret already existing) — litellm's proxy
requires DB connectivity to fully start regardless of config.yaml
content, so this caused an immediate crash loop. Restored it.
2026-07-21 06:40:18 +05:30

84 lines
2.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: litellm
namespace: nxtgauge-ai
labels:
app: litellm
spec:
replicas: 1
selector:
matchLabels:
app: litellm
template:
metadata:
labels:
app: litellm
spec:
containers:
- name: litellm
# This app was never included in Flux's root kustomization (see
# clusters/production/kustomization.yaml), so it was only ever
# deployed by a one-off manual `kubectl apply` and has since
# drifted from this file. Corrected to match what's actually
# running live (the real upstream image) rather than
# registry.nxtgauge.com/litellm:latest, which doesn't appear to
# exist/be maintained — using it would have broken a working
# deployment the moment this file was wired back into GitOps.
image: ghcr.io/berriai/litellm:latest
command:
- "/bin/bash"
args:
- "-c"
- "cat /app/config.yaml && exec litellm --config /app/config.yaml --port 4000 --host 0.0.0.0"
ports:
- containerPort: 4000
name: http
env:
- name: LITELLM_MASTER_KEY
valueFrom:
secretKeyRef:
name: litellm-secrets
key: LITELLM_MASTER_KEY
- name: LITELLM_LOG_LEVEL
value: "DEBUG"
# Present on the live (drifted) deployment but missing from this
# file — LiteLLM's proxy tries to reach Postgres for spend
# tracking/virtual-key storage regardless of whether
# general_settings.database_url is set in config.yaml, and
# fails startup entirely if DATABASE_URL is unset (discovered
# when adopting this file caused a crash loop: the litellm-db-
# credentials secret already existed, this file just never
# referenced it).
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: litellm-db-credentials
key: DATABASE_URL
volumeMounts:
- name: config
mountPath: /app/config.yaml
subPath: config.yaml
readOnly: true
resources:
requests:
cpu: 100m
memory: 256Mi
livenessProbe:
tcpSocket:
port: 4000
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
tcpSocket:
port: 4000
initialDelaySeconds: 30
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
volumes:
- name: config
configMap:
name: litellm-config