Skip to main content
The Helm chart at deploy/helm/charts/vexa deploys the same control plane as the Compose stack, with the runtime pointed at the cluster: RUNTIME_BACKEND=k8s makes every bot and every agent dispatch its own bare Pod (restart: Never), so capacity is your cluster’s scheduler — not a bigger box.

What the chart deploys

ComponentForm
gateway · admin-api · meeting-api · agent-api · runtimeDeployments (RollingUpdate, maxUnavailable: 0)
terminal (web workbench)Deployment + ingress
postgresStatefulSet (or point values at your managed DB)
redis · minioDeployments (+ minio init Job)
DB migrationsJob
pgbounceroptional connection pooling
RBAC for the k8s spawn backendRole/RoleBinding scoped to Pod create/watch/delete
Hardened defaults throughout: containers run non-root with all capabilities dropped, PodDisruptionBudgets on the control plane, and rolling updates that never take the last replica down.

Install

git clone https://github.com/Vexa-ai/vexa.git && cd vexa
helm install vexa deploy/helm/charts/vexa -f deploy/helm/charts/vexa/values.yaml
values-staging.yaml and values-test.yaml show environment overlays. Chart tests (helm lint + template tests) live under deploy/helm/tests/.

The runtime on Kubernetes

The runtime kernel owns one runtime.v1 lifecycle (starting → running → stopping → stopped → destroyed) and delegates only the substrate question — how do I start, observe, and stop a workload? — to the backend. On k8s, a workload is a bare Pod; the same dispatch, contracts, and worker run identically to the Docker backend. See Execution.

Honest status

The k8s backend lifecycle and the workspace mount are implemented (the workspace store binds into each worker Pod as a PVC, scoped per-mount). The Compose stack is the path with the most production mileage today; the chart is the right starting point for a cluster evaluation — track the status page.

Air-gapped clusters

Everything the chart deploys pulls from images you build and host in your own registry; pair it with the self-hosted transcription unit and your own LLM endpoint (Configuration) for a zero-egress posture. See Security & compliance.