Deploy to AKS¶
Status: Current | Last reviewed: 2026-06-12
Deploys to Azure Kubernetes Service.
Cluster¶
| Aspect | Value |
|---|---|
| Namespace | trueserve |
| Helm release | trueserve |
| Values file | values-azure.yaml |
One-time setup¶
- Create the AKS cluster with two node pools:
defaultfor app services.mediafor telephony, sized for rtpengine throughput. See media-pool-tuning.md.- Provision managed services:
- Azure Database for PostgreSQL — Flexible Server with pgvector.
- Azure Cache for Redis.
- S3-compatible object storage for recordings/archive bundles, or Azure Blob behind an S3-compatible gateway.
- Azure Service Bus or in-cluster RabbitMQ.
Warning: Azure Service Bus is not AMQP-compatible with what async-agent uses (
pika-style RabbitMQ AMQP). Using Service Bus requires a shim or sticking with RabbitMQ in cluster.
- Create the
trueserve-master-keysecret. - Install:
- Application Gateway Ingress Controller (or nginx-ingress).
- Azure Key Vault Provider for Secrets Store CSI Driver.
- cert-manager.
Deploy¶
helm upgrade --install trueserve charts/trueserve-stack \
-f charts/trueserve-stack/values-azure.yaml \
--namespace trueserve --create-namespace
Note:
values-azure.yamlmay not exist yet for new customer envs. Copyvalues-aws.yamland edit endpoints + secret refs.
conversation-api Blob storage swap¶
conversation-api and ai-manager currently require an S3-compatible object-storage API. Use an S3-compatible gateway in front of Azure Blob, or keep MinIO in-cluster for recordings and archive bundles until a native Azure Blob adapter is implemented.
Media stack on AKS¶
Azure Front Door does not preserve client IP for UDP, and Azure does not have a Global Accelerator equivalent for arbitrary UDP. SIP/RTP usually goes through a Public Standard Load Balancer with a static IP per region; multi-region anycast requires a third-party.