Argo CD
Argo CD is a declarative GitOps continuous delivery tool for Kubernetes. It watches a Git repository for desired application state and automatically synchronizes the live cluster to match, providing drift detection and a visual interface for deployment status.
itCloud native tools and technologies | OpenSkills.info
Intro
Argo CD
Argo CD is a declarative continuous delivery tool for Kubernetes. It watches application definitions, compares their desired resources with live cluster resources, and reports or corrects the differences.
The central mental model is a control loop between Git and Kubernetes.
Git revision
|
v
rendered manifests ---- compare ---- live cluster
| |
+------ Application status -----+
|
manual or automated sync
You do not give Argo CD a deployment script. You give it an Application that names a source, a revision, a path or chart, and a destination. Argo CD renders the source into Kubernetes manifests. Its application controller then compares those manifests with the resources in the destination cluster.
That comparison produces two distinct signals:
- sync status tells you whether live state matches target state;
- health status tells you whether the live resources appear able to serve their purpose.
An Application can be Synced but unhealthy. The cluster may contain exactly the requested Deployment while its Pods fail to become ready. It can also be OutOfSync but healthy. The existing workload may still serve traffic while Git describes a newer version.
Why Argo CD exists
A conventional deployment pipeline often builds an artifact and pushes manifests into a cluster. The pipeline needs cluster credentials, and its job usually ends after one apply operation.
Argo CD separates those responsibilities. Your build system still tests code and produces artifacts. A configuration change then records the intended deployment in Git. Argo CD runs beside the target environment and continuously compares that intent with the cluster.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://argo-cd.readthedocs.io/en/stable/
Supports
- Argo CD is a declarative GitOps continuous delivery tool for Kubernetes
- The application controller compares live state with target state from Git and reports OutOfSync differences
- Supported inputs include Kustomize, Helm, Jsonnet, plain YAML or JSON, and config management plugins
- Argo CD supports manual or automated sync, multiple clusters, health assessment, SSO, RBAC, hooks, audit trails, and metrics
- Rollback targets application configurations recorded in Git
- https://argo-cd.readthedocs.io/en/stable/core_concepts/
Supports
- Application, target state, live state, sync status, sync, refresh, and health definitions
- Sync status and health status describe separate aspects of an Application
- https://argo-cd.readthedocs.io/en/stable/operator-manual/health/
Supports
- Argo CD assesses health for standard Kubernetes resource types
- Application health is derived from the health of immediate child resources
- Healthy, Progressing, Degraded, Suspended, Missing, and Unknown describe runtime health rather than sync status
- https://argo-cd.readthedocs.io/en/stable/getting_started/
Supports
- Current official installation and guestbook Application commands
- CLI login, cluster registration, Application creation, status inspection, and manual sync flow
- External cluster registration creates controller credentials whose permissions can be narrowed
- Production installations should pin a release instead of tracking the stable branch
- https://argo-cd.readthedocs.io/en/stable/operator-manual/architecture/
Supports
- API server responsibilities for interfaces, operations, credentials, authentication, RBAC, and webhooks
- Repository server responsibility for source caching and manifest generation
- Application controller responsibility for comparison, OutOfSync detection, corrective action, and hooks
- https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/
Supports
- Automated sync behavior and configuration
- Automated pruning is disabled until explicitly enabled
- Allow-empty protects against automatically pruning every target resource
- Self-heal controls automatic reconciliation of live-only drift
- ApplicationSet-managed Applications must change automation through the controlling ApplicationSet
- https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/
Supports
- PreSync, Sync, PostSync, SyncFail, and Skip hook behavior
- Sync waves use integer annotations and run from lower to higher values
- Phases provide coarse ordering and waves provide ordering within a phase
- https://argo-cd.readthedocs.io/en/stable/user-guide/projects/
Supports
- AppProjects group Applications for multi-team use
- AppProjects restrict source repositories, destinations, and allowed or denied resource kinds
- AppProjects can define roles and sync windows
- The default project begins with broad permissions and can be restricted
- https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/
Supports
- Global RBAC and AppProject roles control authorization through Argo CD
- Every authenticated user receives the configured default policy
- Official guidance recommends a minimum-permission authenticated default role
- https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/
Supports
- ApplicationSet generates Applications from a template and generator parameters
- ApplicationSet supports repeated multi-cluster and multitenant application patterns
- Template changes update generated Applications
- https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators/
Supports
- List, Cluster, Git, Matrix, Merge, SCM Provider, Pull Request, Cluster Decision Resource, and Plugin generator roles
- Generator parameters are rendered into ApplicationSet template fields
- https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/
Supports
- Argo CD recommends populating application secrets in the destination cluster
- Destination-side population reduces Argo CD access to secret values
- Destination-side population decouples secret updates from application sync
- https://argo-cd.readthedocs.io/en/stable/operator-manual/high_availability/
Supports
- Argo CD persists data as Kubernetes objects and uses Redis as a disposable cache
- Official high-availability manifests add replicas and Redis high availability
- Repository server and application controller workloads require workload-specific scaling
- https://argo-cd.readthedocs.io/en/stable/operator-manual/disaster_recovery/
Supports
- The official disaster recovery process exports and imports Argo CD configuration
- Backup and restore must account for the key used to encrypt sensitive exported data
- The documented export contains Argo CD configuration rather than managed application data
- https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_app/
Supports
- The argocd app command groups Application create, diff, get, set, sync, wait, history, and rollback operations
- https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_app_diff/
Supports
- The argocd app diff command compares an Application's live and target state
