Skip to main content

ArgoCD App Diff

Compare ArgoCD Application manifests between your Git (desired) state and live cluster state. Identify configuration drift, version mismatches, sync policy differences, and GitOps inconsistencies without needing access to ArgoCD UI or CLI.

✓ Field-level diff view ✓ Raw line diff ✓ Drift explanation

Frequently Asked Questions

What is an ArgoCD App Diff?▼

An ArgoCD App Diff compares the desired state (defined in Git) against the live state (currently running in the Kubernetes cluster). When these states differ, ArgoCD reports the application as 'OutOfSync'. Understanding the diff helps you identify what changed, whether it was an intentional update or unexpected drift, and what ArgoCD will do on the next sync.

How do I get the live ArgoCD Application YAML?▼

Run: kubectl get application <app-name> -n argocd -o yaml. This outputs the full Application resource including its current status, syncPolicy, and source configuration. You can also use the ArgoCD CLI: argocd app get <app-name> -o yaml.

What is the difference between OutOfSync and configuration drift?▼

OutOfSync means the cluster state doesn't match what Git defines. Configuration drift specifically refers to manual changes made directly to Kubernetes resources (kubectl edit, kubectl patch) that bypass Git. ArgoCD with selfHeal: true automatically reverts drift. Without selfHeal, drift persists until a manual sync. Use this diff tool to identify both types of discrepancies.

What does targetRevision control?▼

targetRevision tells ArgoCD which Git ref (branch, tag, or commit SHA) to use as the source of truth. 'HEAD' tracks the tip of the default branch and syncs with every commit. A pinned tag like 'v1.2.0' ensures only explicit releases are deployed. For production environments, always pin to a specific tag or SHA — never use HEAD, which can cause unexpected automatic deployments.

What is the difference between prune: true and selfHeal: true?▼

prune: true tells ArgoCD to delete Kubernetes resources that exist in the cluster but are no longer defined in Git (orphaned resources). selfHeal: true tells ArgoCD to revert any manual changes made directly to the cluster that differ from Git. Both are components of automated sync — without prune, deleted Git resources remain running; without selfHeal, direct kubectl changes persist.

Should I use automated sync in production?▼

It depends on your team's release process. Automated sync with prune and selfHeal provides the strongest GitOps guarantees — Git is always the single source of truth. However, it can cause unexpected changes if a bad commit is pushed. Many teams use automated sync for dev/staging and manual sync for production, combined with branch protection and required reviews before merging to the production branch.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →