ArgoCD Cheat Sheet
GitOps continuous delivery for Kubernetes: Application CRD syntax, sync policies, App of Apps pattern, and CLI commands.
Application Custom Resource
Declares what Git source syncs to which cluster/namespace, with automated sync policy.
apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: guestbook namespace: argocdspec: project: default source: repoURL: https://github.com/org/guestbook.git targetRevision: main path: k8s/overlays/production destination: server: https://kubernetes.default.svc namespace: guestbook syncPolicy: automated: prune: true # delete resources removed from Git selfHeal: true # revert manual cluster drift syncOptions: - CreateNamespace=true
ArgoCD CLI Essentials
Login and manage applications from the terminal.
argocd login argocd.example.com --ssoargocd app listargocd app get guestbookargocd app sync guestbookargocd app sync guestbook --pruneargocd app diff guestbook # show drift vs Gitargocd app rollback guestbook 4 # roll back to history ID 4argocd app set guestbook --sync-policy automated
App of Apps Pattern
A root Application that manages a set of child Applications, giving one Git source of truth for the whole cluster.
apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: root-app namespace: argocdspec: project: default source: repoURL: https://github.com/org/gitops-config.git targetRevision: main path: apps # directory containing one YAML per child Application destination: server: https://kubernetes.default.svc namespace: argocd syncPolicy: automated: prune: true selfHeal: true
AppProject for Multi-Tenancy
Restrict which repos/clusters/resource kinds a team's Applications can use.
apiVersion: argoproj.io/v1alpha1kind: AppProjectmetadata: name: team-payments namespace: argocdspec: sourceRepos: - 'https://github.com/org/payments-*' destinations: - namespace: 'payments-*' server: https://kubernetes.default.svc clusterResourceWhitelist: - group: '' kind: Namespace
Core Concepts & Sync States
Terms you'll see constantly in the UI/CLI.
- Application- the CRD tying a Git source to a cluster destination
- Synced / OutOfSync- whether live cluster state matches the Git-declared state
- Healthy / Degraded / Progressing- health status computed from resource-specific health checks
- prune- delete live resources no longer present in Git during sync
- selfHeal- automatically re-sync when someone manually edits a resource (drift correction)
- ApplicationSet- generates many Applications from a template (e.g. one per cluster or per Git directory)
Turn on `selfHeal` only after you trust your Git source completely — in early adoption it's safer to run automated sync with `selfHeal: false` first so a bad manual hotfix doesn't get silently reverted mid-incident before the team has adjusted its habits.
Explore Topics
Professional Web Designing Services
- Responsive Websites
- E-commerce Solutions
- SEO Friendly Design
- Fast & Secure
- Support & Maintenance