Skip to content

Helm values reference

All values with their defaults. Override via --set key=value or a -f values.yaml file.

KeyDefaultDescription
image.repositoryllm-proxyContainer image repository
image.tag"latest"Image tag (overrides Chart.appVersion)
image.pullPolicyIfNotPresentKubernetes pull policy
imagePullSecrets[]Image pull secrets for private registries
replicaCount1Pod replicas. See Scaling for RWX requirements.

Non-secret settings mounted as /app/config/config.yaml:

KeyDefaultDescription
config.workers4uvicorn worker processes
config.logLevel"info"Log level
config.allowPassthroughKeysfalseAllow non-gr- BYOK provider keys
config.exposeDocsfalseExpose API documentation and OpenAPI schema
config.metricsRequireAuthtrueProtect /metrics with the master key
config.corsAllowedOrigins[]Explicit browser CORS origins
config.llm.defaultModel"gpt-4o"Default model
config.llm.allowedModels[gpt-4o, gpt-4o-mini, ...]Model allowlist
config.llm.fallbackModels[]Fallback chain on provider error
config.llm.modelAliases{}Alias → canonical model map
config.llm.perModelMaxTokens{}Per-model output token caps
config.llm.deployments{}Logical deployments with capabilities and fallbacks
config.routing.activePolicyVersion"default"Active immutable policy version
config.routing.requireDeclaredCapabilitiesfalseFail closed for undeclared model capabilities
config.routing.policies{}Versioned routing policy map
config.responses.defaultStorefalseProvider-side Responses storage default
config.mcp.enabledfalseEnable MCP gateway endpoints
config.mcp.protocolVersion"2025-11-25"MCP lifecycle version
config.mcp.servers{}Remote Streamable HTTP registry
config.mcp.activePolicyVersion"default"Active MCP authorization policy
config.mcp.policies{}Versioned tool authorization and approval rules
config.mcp.approvalTtlSeconds900Approval lifetime
config.mcp.requestTimeoutSeconds60Remote MCP request timeout
config.mcp.maxResultBytes1000000Sanitized result size limit
config.telemetry.enabledfalseEnable OpenTelemetry
config.telemetry.otlpEndpoint""OTLP/HTTP traces endpoint
config.rag.enabledtrueEnable RAG
config.rag.topK5Top-k chunks
config.rag.scoreThreshold0.75Maximum dense cosine distance
config.rag.embeddingModel"all-MiniLM-L6-v2"Embedding model
config.rag.requireAcltrueRestrict retrieval using authenticated repository scopes
config.rag.hybridEnabledtrueFuse dense and lexical candidates
config.rag.candidateMultiplier4Candidate pool relative to top-k
config.rag.rerankerModel""Optional pinned/local cross-encoder model
config.rag.contextMaxTokens4000Provider-bound retrieval context budget
evaluations.enablednullAuto-enable when cases or an existing ConfigMap is configured; set false to suppress
evaluations.workloadJobJob for release gates or CronJob for scheduled runs
evaluations.moderetrievalretrieval or generation
evaluations.jobHooktrueRun Job mode after install/upgrade as a release gate
evaluations.schedule0 3 * * *Cron schedule when workload is CronJob
evaluations.existingConfigMap""Existing ConfigMap containing evaluator YAML and JSONL cases
evaluations.apiKeySecret""Dedicated API-key Secret; required for generation mode
evaluations.waitForRelaySeconds300Maximum readiness wait before evaluation
config.pii.enabledtrueEnable PII scrubbing
config.pii.scoreThreshold0.7Min Presidio confidence
config.pii.entities[PERSON, EMAIL_ADDRESS, ...]Entity types
config.rateLimiting.enabledtrueEnable rate limiting
config.rateLimiting.backend"memory"Auto-set to redis when redis.enabled
config.rateLimiting.defaults.requestsPerMinute60
config.rateLimiting.defaults.tokensPerMinute100000
config.rateLimiting.defaults.tokensPerDay1000000
config.contentPolicy.enabledtrueEnable content policy
config.contentPolicy.maxInputTokens32000Max prompt tokens
config.contentPolicy.blockedPatterns[...]Blocked phrase list
config.cache.enabledfalseEnable response caching
config.cache.type"local"Auto-set to redis when redis.enabled
config.cache.ttl3600Cache TTL (seconds)
config.analytics.enabledfalseEnable Langfuse export
config.analytics.provider"langfuse"Analytics provider
KeyDefaultDescription
secrets.createtrueCreate a Secret from values below
secrets.existingSecret""Name of a pre-existing Secret (disables secrets.create)
secrets.existingMasterKeySecret""Bring your own master key Secret. Empty = auto-generate.
secrets.openaiApiKey""
secrets.anthropicApiKey""
secrets.azureOpenaiApiKey""
secrets.azureOpenaiEndpoint""
secrets.googleClientId""
secrets.googleClientSecret""
secrets.authBaseUrl""e.g. https://proxy.internal
secrets.oidcIssuerUrl""OIDC issuer used for discovery
secrets.oidcClientId""OIDC client ID
secrets.oidcClientSecret""OIDC client secret
secrets.mcpCredentialSecret""Existing Secret injected as MCP credential environment variables
secrets.langfusePublicKey""
secrets.langfuseSecretKey""
secrets.langfuseHost""Empty = Langfuse Cloud
KeyDefaultDescription
externalDatabase.url""Skip bundled PostgreSQL. e.g. postgresql+asyncpg://user:pass@host:5432/llm_proxy

Used in single-replica (embedded ChromaDB) mode only. Ignored when chromadb.server.enabled: true.

KeyDefaultDescription
persistence.chroma.enabledtrueCreate local ChromaDB PVC (single replica only)
persistence.chroma.size10Gi
persistence.chroma.storageClass""Empty = cluster default
persistence.chroma.accessModeReadWriteOnce
persistence.knowledgeBase.enabledtrueCreate knowledge base PVC
persistence.knowledgeBase.size5Gi
persistence.knowledgeBase.storageClass""
persistence.knowledgeBase.accessModeReadWriteOnce

When enabled, deploys a standalone ChromaDB pod that all relay replicas share via HTTP. Required for replicaCount > 1. See Scaling.

KeyDefaultDescription
chromadb.server.enabledfalseDeploy ChromaDB as a separate pod
chromadb.server.port8001ChromaDB service port
chromadb.server.image.repositorychromadb/chroma
chromadb.server.image.tag"latest"
chromadb.server.resources.requests.cpu250m
chromadb.server.resources.requests.memory512Mi
chromadb.server.resources.limits.cpu"1"
chromadb.server.resources.limits.memory2Gi
chromadb.server.persistence.size10GiPVC size for the ChromaDB pod
chromadb.server.persistence.storageClass""Empty = cluster default
KeyDefaultDescription
service.typeClusterIPClusterIP, NodePort, or LoadBalancer
service.port8000Service port
KeyDefaultDescription
ingress.enabledfalse
ingress.className""Ingress class name
ingress.annotations{}e.g. cert-manager.io/cluster-issuer
ingress.hosts(example)Host + path configuration
ingress.tls[]TLS configuration
KeyDefaultDescription
resources.requests.cpu500m
resources.requests.memory1500MiSized for spaCy en_core_web_lg (~800 MB)
resources.limits.cpu"2"
resources.limits.memory3Gi
KeyDefaultDescription
autoscaling.enabledfalse
autoscaling.minReplicas1
autoscaling.maxReplicas5
autoscaling.targetCPUUtilizationPercentage70
KeyDefaultDescription
livenessProbe.initialDelaySeconds60Allow time for spaCy model to load
readinessProbe.initialDelaySeconds60
KeyDefaultDescription
prometheus.serviceMonitor.enabledfalseCreate ServiceMonitor for Prometheus Operator
prometheus.serviceMonitor.interval"15s"Scrape interval
prometheus.serviceMonitor.namespace""Empty = release namespace
prometheus.serviceMonitor.labels{}Labels to match Prometheus Operator

When config.metricsRequireAuth is true, the generated ServiceMonitor obtains its bearer credential from the master-key Secret.

KeyDefaultDescription
postgresql.enabledtrueDeploy bundled PostgreSQL
postgresql.auth.usernameproxy
postgresql.auth.password""Auto-generated when empty
postgresql.auth.databasellm_proxy
postgresql.primary.persistence.size20Gi

Pass-through to bitnami/postgresql chart. See Bitnami docs for all options.

KeyDefaultDescription
redis.enabledfalseDeploy bundled Redis
redis.auth.enabledfalseEnable Redis auth
redis.master.persistence.size2Gi

When redis.enabled: true, the proxy automatically uses Redis for rate limiting and caching.