Accepted
We need a GitOps controller to manage Kubernetes deployments declaratively. Options considered:
- ArgoCD - CNCF graduated project, strong UI, App of Apps pattern
- Flux v2 - CNCF graduated project, GitOps Toolkit, Helm controller
- Jenkins X - CI/CD focused, GitOps capabilities
- Spinnaker - Multi-cloud, complex setup
We chose ArgoCD for the following reasons:
- Intuitive web UI for debugging sync issues
- ApplicationSets for multi-environment generation
- Strong RBAC model with SSO integration
- Excellent Helm and Kustomize support
- Active community and CNCF backing
- Argo Rollouts integration for progressive delivery
- Pull-based only (not push)
- UI can mask underlying complexity
- Resource overhead for controller
- All deployments managed via Git commits
- ArgoCD installed in dedicated
argocdnamespace - App of Apps pattern for application management
- Developers can view (not modify) via UI
- Platform team manages ArgoCD configuration
- Better for pure CLI workflows
- Less visual debugging capability
- Would require additional tooling for UI
- Overkill for our scale
- Complex operational overhead
- Better suited for multi-cloud enterprise