ArgoCD GitOps
All Tiers
Calabi uses ArgoCD ApplicationSet to manage all tenant deployments from a single Git repository. Every tenant deployment is version-controlled and auditable — no manual kubectl commands in production.
How It Works
Adding a New Tenant
- Create
clients/{tenant}/values.yamlwith required overrides - Commit and push to
mainbranch - ArgoCD detects the new file within ~3 minutes
- ApplicationSet auto-creates the Application CR
- Helm renders and deploys to
calabi-{tenant}namespace CreateNamespace=truecreates the namespace automatically
Sync Policy
syncPolicy:
automated:
prune: true # Remove resources deleted from Git
selfHeal: true # Revert manual kubectl changes
syncOptions:
- CreateNamespace=true
- ServerSideApply=true # Required for large CRDs (Calabi Catalogue)
- ApplyOutOfSyncOnly=true
Manual Sync / Rollback
# Force sync
argocd app sync calabi-acme-corp
# Roll back to previous deployment
argocd app rollback calabi-acme-corp
# Check sync status
argocd app get calabi-acme-corp
Viewing in the ArgoCD UI
The ArgoCD dashboard shows all tenant applications with live health status, sync state, and resource tree. Access it at your ArgoCD URL (internal only — not exposed publicly).