ArgoCD
A declarative GitOps continuous delivery tool for Kubernetes that syncs cluster state to the desired state defined in a Git repository — making Git the single source of truth for deployments.
ArgoCD is a Kubernetes controller that continuously watches a Git repository and ensures your cluster's actual state matches what's declared in that repo. If someone manually modifies a Kubernetes resource ("drift"), ArgoCD detects it and either alerts or auto-corrects. This GitOps model makes every deployment auditable, reversible, and reproducible.
GitOps Model
The GitOps workflow:
- Developer merges a PR that updates a Kubernetes manifest (or Helm values)
- ArgoCD detects the change in Git (polling or webhook)
- ArgoCD applies the diff to the cluster
- ArgoCD reports sync status: Synced, OutOfSync, Degraded
No kubectl apply in CI pipelines, no direct cluster access needed by developers, full audit trail in Git history.
Core Concepts
- Application — ArgoCD's CRD that links a Git repo/path to a cluster namespace
- Sync — the act of applying Git state to the cluster
- Sync Policy — manual (human clicks sync) or automated (ArgoCD syncs immediately on change)
- Health Status — whether deployed resources are actually running correctly
- AppProjects — RBAC scoping: which repos can deploy to which clusters/namespaces
Source Types
ArgoCD can sync from:
- Raw Kubernetes YAML manifests
- Helm charts (with values overrides)
- Kustomize overlays
- Jsonnet
- Any tool via config management plugins
Multi-Cluster Management
One ArgoCD instance can manage multiple clusters — staging, production, different regions. ApplicationSets generate ArgoCD Applications programmatically across clusters from a single template, ideal for platform teams managing many tenant clusters.
ArgoCD vs Flux
Both implement GitOps for Kubernetes. ArgoCD has a richer UI and user-facing features; Flux is more lightweight, Kubernetes-native (uses CRDs exclusively), and has better multi-tenancy support. For teams that want a UI and easy onboarding, ArgoCD. For platform engineering teams that want a minimal controller, Flux.
Integration with CI
A common pattern: CI builds and pushes a Docker image, updates the image tag in the Helm values or manifest file in Git, and commits. ArgoCD detects the commit and deploys. CI never touches the cluster directly — it only updates Git.
Related Terms
- Helm — primary packaging format ArgoCD deploys
- Kubernetes — the platform ArgoCD manages
- Pulumi — IaC for cluster infrastructure; ArgoCD for workload delivery
- Hashicorp Vault — secrets injected into workloads that ArgoCD deploys