# ============================================================================ # LiteLLM Helm values — overrides for oci://ghcr.io/berriai/litellm-helm 1.106.1 # Cluster: fastpass (Talos). Host: skyliner.wdw-labs.cloud. Wave 8. # Upstream defaults for reference: values.upstream.yaml (same dir; not applied). # ============================================================================ replicaCount: 1 image: repository: ghcr.io/berriai/litellm # Empty tag => chart appVersion (1.106.1). Version is pinned via chart version # in application.yaml; bump both together. tag: "" pullPolicy: IfNotPresent # Exposure is via Gateway API HTTPRoute (httproute.yaml), not the chart ingress. ingress: enabled: false service: type: ClusterIP port: 4000 resources: requests: cpu: 250m memory: 512Mi limits: memory: 2Gi # --- Secrets ----------------------------------------------------------------- # Master key from ExternalSecret litellm-credentials (key: master-key) -> PROXY_MASTER_KEY masterkeySecretName: litellm-credentials masterkeySecretKey: master-key # All keys of litellm-env exported as env vars (LITELLM_SALT_KEY, ILLUMINATIONS_/FANTASMIC_/WISHES_API_KEY) # (includes DATABASE_URL: the Deployment template ignores db.useExisting and would # otherwise use the chart's placeholder DB password; envFrom supplies the real URL. # Not extraEnvVars: the chart also injects those into the migration Job -> duplicate env.) environmentSecrets: - litellm-env # --- Database: bundled Bitnami PostgreSQL ------------------------------------ db: # Bundled Postgres is still deployed (deployStandalone), but the app and the # migration job are pointed at it as an "existing" DB so credentials come from # litellm-credentials (ExternalSecret) instead of the chart's placeholder secret. deployStandalone: true useExisting: true endpoint: litellm-postgresql database: litellm secret: name: litellm-credentials usernameKey: username passwordKey: password postgresql: architecture: standalone auth: username: litellm database: litellm existingSecret: litellm-credentials secretKeys: adminPasswordKey: postgres-password userPasswordKey: password primary: persistence: enabled: true storageClass: px-fa-direct-access # Portworx direct access to FlashArray (as openviking) size: 10Gi resources: requests: cpu: 100m memory: 256Mi limits: memory: 1Gi redis: enabled: false # Schema migrations. The chart's default is an ArgoCD PreSync hook, which runs # BEFORE Postgres/ExternalSecrets exist and would block first install. Instead run # it as a Sync-phase hook ordered by wave: ExternalSecrets (-1) -> Postgres (0) # -> migration Job (1) -> Deployment (2). migrationJob: enabled: true hooks: argocd: enabled: false helm: enabled: false jobAnnotations: argocd.argoproj.io/hook: Sync argocd.argoproj.io/hook-delete-policy: BeforeHookCreation argocd.argoproj.io/sync-wave: "1" deploymentAnnotations: argocd.argoproj.io/sync-wave: "2" logLevel: INFO # --- Prometheus ---------------------------------------------------------------- serviceMonitor: enabled: true labels: release: monitoring # kube-prometheus-stack selector (matches Harbor/external-dns) interval: 30s scrapeTimeout: 10s namespaceSelector: matchNames: - litellm # --- LiteLLM proxy config (rendered to ConfigMap) ------------------------------ proxy_config: model_list: # --- illuminations (RTX 3090, vLLM) -------------------------------------- - model_name: Gemma-4-26B-A4B-it-AWQ litellm_params: model: openai/Gemma-4-26B-A4B-it-AWQ api_base: http://illuminations.wdw-labs.cloud:8000/v1 api_key: os.environ/ILLUMINATIONS_API_KEY # --- Mac Studio (fantasmic, oMLX) — Tier 1 Hermes ------------------------ - model_name: Gemma-4-26B-A4B-Hermes-VLM-MLX litellm_params: model: openai/Gemma-4-26B-A4B-Hermes-VLM-MLX api_base: http://fantasmic.litellm.svc.cluster.local:8000/v1 api_key: os.environ/FANTASMIC_API_KEY - model_name: Qwen3.8-27B-4bit litellm_params: model: openai/mlx-community--Qwen3.8-27B-4bit api_base: http://fantasmic.litellm.svc.cluster.local:8000/v1 api_key: os.environ/FANTASMIC_API_KEY # Also served, not exposed: incoai--Qwen3.8-27B-DFlash2, ukisai-Swift-Qwen3.8-27b-MTPLX # --- Mac Mini M4 (wishes, oMLX) — Tier 3 aux tasks ----------------------- - model_name: Qwen2.5-7B-Instruct-4bit litellm_params: model: openai/Qwen2.5-7B-Instruct-4bit api_base: http://wishes.litellm.svc.cluster.local:8000/v1 api_key: os.environ/WISHES_API_KEY - model_name: Phi-3.5-mini-instruct-4bit litellm_params: model: openai/Phi-3.5-mini-instruct-4bit api_base: http://wishes.litellm.svc.cluster.local:8000/v1 api_key: os.environ/WISHES_API_KEY - model_name: Phi-3.5-mini-instruct-bf16 litellm_params: model: openai/Phi-3.5-mini-instruct-bf16 api_base: http://wishes.litellm.svc.cluster.local:8000/v1 api_key: os.environ/WISHES_API_KEY - model_name: Phi-3.5-vision-instruct-4bit litellm_params: model: openai/Phi-3.5-vision-instruct-4bit api_base: http://wishes.litellm.svc.cluster.local:8000/v1 api_key: os.environ/WISHES_API_KEY - model_name: gemma-2-2b-it-4bit litellm_params: model: openai/gemma-2-2b-it-4bit api_base: http://wishes.litellm.svc.cluster.local:8000/v1 api_key: os.environ/WISHES_API_KEY litellm_settings: drop_params: true callbacks: ["prometheus"] # exposes /metrics for the ServiceMonitor general_settings: master_key: os.environ/PROXY_MASTER_KEY # Allow adding models / virtual keys from the Admin UI (/ui), stored in Postgres store_model_in_db: true