This lesson focuses on the essential ArgoCD features needed to learn GitOps concepts and workflows.
- ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes.
- It treats one or more Git repositories as the single source of truth for application manifests and continuously ensures the cluster state matches the desired state defined in Git.
- ArgoCD monitors running applications, computes diffs between live and desired states, surfaces deviations, and provides visual and programmatic controls to synchronize the live state manually or automatically.
- Desired state: stored in Git (manifests, charts, overlays, templates).
- Reconciliation: ArgoCD pulls from Git, compares with cluster state, and applies Kubernetes manifests to reach the declared state.
- Observability & Safety: diffs, health checks, RBAC, and audit logs enable safe, auditable deployments.
- Continuous reconciliation loop: ArgoCD periodically (or on-demand) checks Git and the cluster, reporting drift.
- Two sync modes: manual (operator approves changes) or automated (ArgoCD applies changes automatically).
- Multi-cluster support: manage applications across many Kubernetes clusters from one control plane.
- Extensible input sources: supports multiple templating engines and generators.

| Source | Use case | Notes / Links |
|---|---|---|
Helm charts | Package-based templating for complex apps and chart repositories | Great when reusing or customizing community charts — https://helm.sh/ |
Kustomize overlays | Patch-based customization without templating | Useful for environment overlays and declarative customization — https://kustomize.io/ |
Plain Kubernetes YAML | Simple, explicit manifests | Best for small apps or when avoiding template complexity |
Jsonnet | Programmatic manifests for advanced customization | Good for large systems needing reusable logic — https://jsonnet.org/ |
Other generators | Custom tooling or plugin-based generators | ArgoCD supports additional supported plugins and generators |
Some older tools (for example,
ksonnet) are deprecated and no longer actively maintained. Prefer actively supported tools such as Helm, Kustomize, or Jsonnet for templating and generation.- Sync strategies:
- Manual: operator reviews diffs and triggers sync.
- Automated: ArgoCD applies changes automatically when Git changes are detected (can be gated with health checks).
- Diffs & visualizations: ArgoCD highlights added, changed, and removed resources, making it easy to review intended changes before applying.
- Lifecycle hooks: support pre-sync and post-sync hooks (Jobs, scripts) to orchestrate database migrations, canary steps, or cleanup tasks.
- Health assessment: ArgoCD evaluates resource health and can be configured to stop or roll back on failures.
- Git as source of truth: versioning, code review, and auditability for deployments.
- Continuous, automated reconciliation: reduces configuration drift and manual errors.
- Centralized multi-cluster management: consistent deployments across environments.
- Visibility & control: built-in UI, CLI, and API for observing and controlling application state.
| Component | Purpose |
|---|---|
| Application | Logical mapping of a Git repo (or path) to a target cluster/namespace |
| App-of-Apps | Pattern to manage multiple applications via a single parent application |
| Repository | Git server or Helm repo where manifests are stored |
| Controller | Reconciliation engine that applies manifests to clusters |
| API / UI / CLI | Methods to interact with ArgoCD (sync, rollback, diff, inspect) |
- ArgoCD project: https://argo-cd.readthedocs.io/
- Helm: https://helm.sh/
- Kustomize: https://kustomize.io/
- Jsonnet: https://jsonnet.org/
- GitOps concepts: https://www.weave.works/technologies/gitops/
- Try deploying a simple app with ArgoCD using a Helm chart or plain YAML to see reconciliation and diff behavior.
- Explore RBAC, SSO integration, and metrics/auditing for production-ready setups.