This guide deploys Bifrost to an existing AKS cluster using the Helm chart. It covers the Bifrost image, secrets, storage, database connection, service exposure, verification, and scaling.
The Helm configuration is validated in the repository. The complete guide is not continuously exercised in a live Azure subscription, so test the selected values in a non-production cluster before rollout.
Bifrost on AKS
Bifrost Enterprise requires PostgreSQL 16 or later for both stores and does not support SQLite. The SQLite path below is available only for OSS deployments.
Deploy Bifrost
The commands below use an existing AKS cluster and PostgreSQL database. Run them from Bash after replacing every value inside angle brackets.
Step 1: Connect to AKS
Continue only after the nodes report Ready.
Step 2: Create secrets and Helm values
The encryption key protects persisted credentials. Create it once, keep it unchanged after Bifrost writes encrypted data, and use the same value for every replica. Replacing the key makes existing encrypted values unreadable.
Choose the storage configuration for this deployment:
PostgreSQL
SQLite (OSS only)
This uses PostgreSQL for both Bifrost stores and does not create a Bifrost SQLite PVC. Enterprise customers should replace the image settings and registry authentication using the values supplied by Maxim.Azure Database for PostgreSQL is one Azure-hosted option. The database may instead be operated by the customer or another provider as long as the cluster can reach it.Verify connectivity from the cluster before installing Bifrost:Enter the PostgreSQL password when psql prompts. A successful connection confirms DNS, TCP, TLS, and database authentication from the pod network. Confirm that server_version reports PostgreSQL 16 or later and server_encoding reports UTF8. This option is available only for OSS Bifrost. Use SQLite for a single replica and select a compatible ReadWriteOnce StorageClass such as an approved managed-disk CSI class.Replace <STORAGE_CLASS> with a class returned by kubectl get storageclass. This creates persistent /app/data storage for the OSS SQLite deployment. PostgreSQL is not required for this OSS option.
Step 3: Install Bifrost
Step 4: Verify and access Bifrost
Choose how you want to access the deployment:
Without a load balancer
With a load balancer
With ingress
Keep that terminal open. In another terminal: After EXTERNAL-IP displays an address, stop the watch and run:This creates an HTTP endpoint. Configure TLS through the selected Azure or Kubernetes frontend before exposing Bifrost to untrusted clients.AKS-managed Azure Load Balancers use a 30-minute TCP idle timeout by default. For streams that might remain idle longer, configure TCP keepalive or adjust the load balancer idle timeout.
This example uses the AKS application-routing add-on. Enable the add-on before applying these values.Point the hostname to the ingress address, configure TLS through the application-routing add-on or another certificate integration, and verify https://<BIFROST_HOSTNAME>/health.
Scale Bifrost
Azure load balancing distributes requests but does not synchronize Bifrost state.
Upgrade, troubleshooting, and production
Follow the upgrade guidance. Diagnose with:
- Pending OSS SQLite pod: inspect the PVC, CSI driver, StorageClass, and zone/node-pool constraints.
ImagePullBackOff: verify the image repository/tag and Enterprise registry token refresh.
/health 503: verify configured stores from the pod network and inspect startup logs.
- Fixed streaming cutoff: inspect all ingress, gateway, and Azure frontend timeouts/buffering.
- Missing Enterprise nodes: check pod-discovery RBAC and bidirectional cluster ports.
Complete the deployment verification checklist for database availability, backups, TLS, secrets, autoscaling, and monitoring. See Enterprise clustering when the deployment spans several clusters or regions.