> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ArgoCD Basics

> Introduction to ArgoCD and GitOps explaining declarative continuous delivery for Kubernetes, reconciliation, sync strategies, manifest sources, multi cluster management, and observability

In this lesson we use ArgoCD to learn core GitOps terminology and practical features. The goal is to explain the essential ArgoCD concepts and workflows needed to implement GitOps-inspired continuous delivery for Kubernetes—not to exhaustively document every ArgoCD capability.

<Callout icon="lightbulb" color="#1CB2FE">
  This lesson focuses on the essential ArgoCD features needed to learn GitOps concepts and workflows.
</Callout>

What is ArgoCD?

* 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.

How ArgoCD fits the GitOps pattern

* 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.

Key behaviors

* 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.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/t4oxgWWg0SQKJwoX/images/Prep-Course-GitOps-Certified-Associate-CGOA/GitOps-Principles/ArgoCD-Basics/argocd-gitops-continuous-delivery-tool.jpg?fit=max&auto=format&n=t4oxgWWg0SQKJwoX&q=85&s=0e0c28d2eb12ec8471d218a00a15b0a2" alt="The image explains ArgoCD, a declarative GitOps continuous delivery tool for Kubernetes, detailing its purpose, benefits, and functionality including Git-based configuration, automation of synchronization, and its compatibility with various applications like Helm and Ksonnet." width="1920" height="1080" data-path="images/Prep-Course-GitOps-Certified-Associate-CGOA/GitOps-Principles/ArgoCD-Basics/argocd-gitops-continuous-delivery-tool.jpg" />
</Frame>

Supported manifest sources and when to use them

| 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/](https://helm.sh/)                      |
| `Kustomize overlays`    |                     Patch-based customization without templating | Useful for environment overlays and declarative customization — [https://kustomize.io/](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/](https://jsonnet.org/)                   |
| `Other generators`      |                        Custom tooling or plugin-based generators | ArgoCD supports additional supported plugins and generators                                                    |

<Callout icon="warning" color="#FF6B6B">
  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.
</Callout>

Sync strategies, diffs, and hooks

* 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.

Benefits of using ArgoCD

* 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.

Quick reference of core components

| 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)         |

Links and References

* ArgoCD project: [https://argo-cd.readthedocs.io/](https://argo-cd.readthedocs.io/)
* Helm: [https://helm.sh/](https://helm.sh/)
* Kustomize: [https://kustomize.io/](https://kustomize.io/)
* Jsonnet: [https://jsonnet.org/](https://jsonnet.org/)
* GitOps concepts: [https://www.weave.works/technologies/gitops/](https://www.weave.works/technologies/gitops/)

Further learning

* 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.

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/gitops-certified-associate-cgoa/module/09e1d9df-2018-4278-805d-983bcf7b23d2/lesson/e31b7279-e0c3-4eb9-8f23-2699ecaa351f" />
</CardGroup>
