Skip to main content

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

  1. Create clients/{tenant}/values.yaml with required overrides
  2. Commit and push to main branch
  3. ArgoCD detects the new file within ~3 minutes
  4. ApplicationSet auto-creates the Application CR
  5. Helm renders and deploys to calabi-{tenant} namespace
  6. CreateNamespace=true creates 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).