Kubernetes
Install the control plane with the Helm chart or the Terraform module, with optional autoscaling, scheduled MongoDB backups and Prometheus alerts.
Self-hosted
Kubernetes is optional; Docker Compose and plain Node.js are fully supported. The chart lives in
deployment/helm/agent-orchestration and the Terraform module in deployment/terraform/kubernetes of the core
repository.
Image
There is no published container image. Build it from the repository and push it to your registry:
docker build -f deployment/docker/control-plane.Dockerfile -t <registry>/agent-orchestration:<version> .
docker push <registry>/agent-orchestration:<version>Install with Helm
kubectl create secret generic agent-orchestration \
--from-literal=JWT_SECRET=... --from-literal=ENCRYPTION_KEY=... \
--from-literal=MONGODB_URI=mongodb://... --from-literal=REDIS_URL=redis://...
helm install ao deployment/helm/agent-orchestration --set image.repository=<registry>/agent-orchestrationBring MongoDB (self-managed or Atlas) and Redis. Run more than one replica only with REDIS_URL.
Operations (off by default)
| Values | Adds |
|---|---|
autoscaling.enabled (+ minReplicas, maxReplicas, targetCPUUtilizationPercentage) | HorizontalPodAutoscaler on CPU and a PodDisruptionBudget. Needs REDIS_URL. |
backup.enabled (+ schedule, retentionDays, persistence.*) | Nightly mongodump --archive --gzip CronJob on a volume, pruned after retentionDays |
backup.s3.bucket (+ prefix, region, endpoint) | Upload backups to S3-compatible storage instead |
monitoring.serviceMonitor.enabled | Prometheus Operator scraping of /metrics |
monitoring.prometheusRule.enabled | Alerts: API down, more than 5% server errors, queued work without workers, many failed tasks, expiring leases |
Terraform
The module installs the chart onto an existing cluster with these switches. Its variables include
kubeconfig_path, namespace, image_repository, image_tag, public_url, mongodb_uri, redis_url,
smtp_url, encryption_key, replicas, autoscaling_max_replicas and the ingress settings. It does not
create EKS, GKE or AKS clusters.
Verification status
The chart passes helm lint --strict and kubeconform, and was installed on Docker Desktop's single-node
Kubernetes with MongoDB and Redis in the cluster: the autoscaler raised it to two ready replicas on shared
MongoDB and Redis. It has not yet run on a managed cloud cluster, with an ingress controller or with a real
Prometheus.