Skip to main content

ArgoCD

ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. The cluster state is always derived from Git — ArgoCD watches your repo and reconciles divergence automatically.

Core model

Git Repo (desired state)


ArgoCD controller
│ diffs current vs desired

Kubernetes API (live state)

Key concepts

ConceptDescription
ApplicationMaps a Git source to a K8s destination
ProjectGroups applications, enforces RBAC/source restrictions
SyncApplies manifests from Git to the cluster
HealthStatus of K8s resources (Healthy, Degraded, Progressing)
RefreshRe-fetches Git state without applying

Quick access

# Port-forward ArgoCD UI
kubectl port-forward svc/argocd-server -n argocd 8080:443

# Login with CLI
argocd login localhost:8080 --username admin --password $(
kubectl get secret argocd-initial-admin-secret \
-n argocd -o jsonpath="{.data.password}" | base64 -d
)

# List apps
argocd app list

# Sync an app
argocd app sync my-app

# Watch sync status
argocd app wait my-app --sync --health

Why GitOps?

  • Audit trail: every change is a Git commit
  • Rollback: git revert is a valid deployment strategy
  • Drift detection: ArgoCD alerts when live state diverges from Git
  • Multi-cluster: one ArgoCD instance can manage many clusters