Prerequisites
- Kubernetes cluster (v1.19+)
kubectlconfigured- Helm 3.2.0+ installed
- (Optional) Persistent Volume provisioner
- (Optional) Ingress controller
Quick Start
Add Helm Repository
Install Bifrost
The
image.tag parameter is required. Check Docker Hub for available versions.- SQLite storage (10Gi PVC)
- Single replica
- ClusterIP service
Access Bifrost
Deployment Patterns
- Development
- Production
- AI Workloads
- Multi-Provider
- External Database
- Kubernetes Secrets
Development Setup
Simple setup for local testing and development.- SQLite storage
- Single replica
- No auto-scaling
- ClusterIP service
Configuration
Key Parameters
| Parameter | Description | Default |
|---|---|---|
image.tag | Required. Bifrost image version (e.g., v1.3.37) | "" |
replicaCount | Number of replicas | 1 |
storage.mode | Storage backend (sqlite/postgres) | sqlite |
storage.persistence.size | PVC size for SQLite | 10Gi |
postgresql.enabled | Deploy PostgreSQL | false |
vectorStore.enabled | Enable vector store | false |
vectorStore.type | Vector store type (weaviate/redis/qdrant) | none |
bifrost.encryptionKey | Encryption key | "" |
ingress.enabled | Enable ingress | false |
autoscaling.enabled | Enable HPA | false |
Secret Reference Parameters
Use existing Kubernetes secrets instead of plain-text values:| Parameter | Description | Default |
|---|---|---|
bifrost.encryptionKeySecret.name | Secret name for encryption key | "" |
bifrost.encryptionKeySecret.key | Key within the secret | "" |
postgresql.external.existingSecret | Secret name for PostgreSQL password | "" |
postgresql.external.passwordKey | Key within the secret | "password" |
vectorStore.redis.external.existingSecret | Secret name for Redis password | "" |
vectorStore.redis.external.passwordKey | Key within the secret | "password" |
vectorStore.weaviate.external.existingSecret | Secret name for Weaviate API key | "" |
vectorStore.weaviate.external.apiKeyKey | Key within the secret | "api-key" |
vectorStore.qdrant.external.existingSecret | Secret name for Qdrant API key | "" |
vectorStore.qdrant.external.apiKeyKey | Key within the secret | "api-key" |
bifrost.plugins.maxim.secretRef.name | Secret name for Maxim API key | "" |
bifrost.plugins.maxim.secretRef.key | Key within the secret | "api-key" |
bifrost.providerSecrets.<provider>.existingSecret | Secret name for provider API key | "" |
bifrost.providerSecrets.<provider>.key | Key within the secret | "api-key" |
bifrost.providerSecrets.<provider>.envVar | Environment variable name to inject | "" |
Provider Configuration
Add provider keys via values file:Using Environment Variables for Provider Keys
Bifrost supportsenv.VAR_NAME syntax to reference environment variables. Combined with providerSecrets, you can keep API keys in Kubernetes secrets:
- Creates a Kubernetes secret with the API key
- Injects the secret as an environment variable (
OPENAI_API_KEY) - Bifrost resolves
env.OPENAI_API_KEYat runtime
Plugin Configuration
Enable and configure plugins:Operations
Upgrade
Rollback
Uninstall
Scale
Monitoring
Prometheus Metrics
Bifrost exposes Prometheus metrics at/metrics.
Enable ServiceMonitor for automatic scraping:
Health Checks
Check pod health:Metrics Endpoints
Troubleshooting
Pod Not Starting
Database Connection Issues
High Memory Usage
Ingress Not Working
Advanced Configuration
Custom Values File
Createmy-values.yaml:
Environment Variables
Add custom environment variables:Node Affinity
Deploy to specific nodes:Resources
- Helm Chart Repository
- Complete Installation Guide
- Example Configurations
- Kubernetes Secrets Example
- GitHub Issues
Next Steps
- Configure provider keys
- Enable plugins
- Set up monitoring
- Configure ingress and TLS

