ADR 0001: GitOps Engine for Kubernetes
Historical ADR
This ADR is preserved as a historical Kubernetes-specific decision from the earlier golden path. It does not define the universal production operations model. For current production ownership boundaries, use Anchor Handoff.
Status
Accepted
Context
We need a standard GitOps engine for Kubernetes environments that can reconcile ops repo intent to clusters, support multi-environment separation, and provide an audit trail.
The requirements include:
- Pull-based GitOps model (cluster pulls from Git)
- Multi-environment support (dev, staging, prod)
- Declarative application definitions
- Audit trail and rollback capabilities
- Visual UI for deployment status
- Active community and enterprise support
Decision
Adopt Argo CD as the default GitOps engine for Kubernetes environments.
Argo CD provides:
- Native Kubernetes resource reconciliation
- Application and App-of-Apps patterns for multi-environment management
- Built-in RBAC and SSO integration
- Web UI for visualization
- Automated sync and health status
- Strong CNCF ecosystem support
Consequences
Positive
- Ops repo changes are reconciled by Argo CD in a pull-based model
- Argo CD Application or App-of-Apps patterns are used per environment
- Provides clear visibility into deployment status
- Audit trail is maintained through Git history and Argo CD logs
- Rollback is simplified through Git revert
Negative
- Learning curve for teams new to Argo CD
- Additional infrastructure component to maintain
- Requires cluster-level permissions for Argo CD installation
Neutral
- Teams can still use Flux in exceptional cases, but Argo CD is the golden path
- Training materials and runbooks need to be created
- Monitoring and alerting should be configured for Argo CD health
Related Decisions
- ADR 0003: Promotion Gates - Complements this with approval workflows
- Provider Adapters - Describes Kubernetes adapter implementation