agentleFS
abevzabevz/devops-skills/skills/argocd-debug/SKILL.md

argocd-debug

Skill0 starsChanged 41 days agoMITView on GitHub

Use when diagnosing one Argo CD Application that is OutOfSync, Degraded, Unknown, or failing to deploy. Mention "argocd is stuck", "application out of sync", or "argocd debug"; use argocd for controller installation/operation, argocd-applicationset for generator design, and gitops-review for repository flow.

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 4 are distinctive, and 13 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 13

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use argocd app get, argocd app diff, and read the Application object.

    line 18
  2. Distinctive:

    Do not force sync while the reason for drift or health failure is unknown.

    line 22
  3. Distinctive:

    Follow the Workflow, Safety rules, and Quality checklist below.

    line 26
  4. Very specific:

    Use when an ArgoCD Application is OutOfSync, Degraded, Unknown, or stuck, and the cause needs to be found before taking action.

    line 36
  5. Very specific:

    Use argocd instead for controller installation or operation, argocd-applicationset for generator design, and gitops-review for repository …

    line 38
  6. Distinctive:

    Use the general workflow below when nothing matches or the picture is unclear.

    line 59
  7. Very specific:

    Check Application status: sync status, health status, and conditions for explicit error messages (argocd app get <app> or kubectl get …

    line 63
  8. Very specific:

    Check the diff between desired and live state (argocd app diff) to see exactly what's out of sync, or whether ignoreDifferences is masking …

    line 65
  9. Very specific:

    Check app conditions for repo access errors, manifest generation errors (Helm/Kustomize rendering failures), or comparison errors.

    line 67
  10. Very specific:

    Verify targetRevision and path actually point at what's expected — a common cause of "nothing changed but it's out of sync" is a …

    line 69
  11. Very specific:

    If Helm/Kustomize-based, check that the chart/overlay renders locally the same way ArgoCD renders it (helm template / kustomize build) to …

    line 72
  12. Very specific:

    Check hooks and syncPolicy.syncOptions (e.g.

    line 75
  13. Very specific:

    Check destination namespace: does it exist, and does syncPolicy.automated.selfHeal/ syncPolicy.syncOptions: [CreateNamespace=true] match …

    line 77
  14. Very specific:

    Check ArgoCD's own RBAC/project restrictions (AppProject) if the app can't sync due to permission errors.

    line 79
  15. Very specific:

    Do not run argocd app sync, argocd app delete, or any command that changes live cluster state unless the user explicitly asks for it.

    line 90
  16. Very specific:

    Prefer argocd app diff / get / kubectl get -o yaml (read-only) throughout the investigation.

    line 92
  17. Distinctive:

    If a force-sync or resource deletion looks like the right fix, say so explicitly and explain the blast radius — don't run it.

    line 94

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

ArgoCD Debug

TL;DR checklist

  • Read Application sync, health, and conditions.
  • Compare desired and live state, then check revision/path and render output.
  • Identify the cause before proposing sync, prune, or live edits.

Key read-only checks

  • Use argocd app get, argocd app diff, and read the Application object.

Common pitfalls

  • Do not force sync while the reason for drift or health failure is unknown.

Agent procedure

Follow the Workflow, Safety rules, and Quality checklist below.

Quick references

  • references/playbooks.md

Last verified: unverified

When to use

Use when an ArgoCD Application is OutOfSync, Degraded, Unknown, or stuck, and the cause needs to be found before taking action. Use argocd instead for controller installation or operation, argocd-applicationset for generator design, and gitops-review for repository structure or promotion flow.

Goal

Diagnose the actual cause of the sync/health problem using read-only inspection, and propose a fix the user (or ArgoCD's own automated sync) can apply.

Diagnostic routing

Identify the symptom, then jump to its playbook in references/playbooks.md:

SymptomPlaybook section
OutOfSync, "nothing changed in git"Diff-content → cause table (HPA, webhooks, defaulting, rotation, moving revision)
ComparisonError / manifest generation failedCondition text → cause table (repo auth, path, helm deps, tool version skew)
Degraded / Progressing foreverFind the leaf resource, route by kind (→ kubernetes-debug for pods)
Sync hangs mid-wayHooks, sync waves, finalizer-blocked prune
SharedResourceWarningTwo apps own one object — tracking-id diagnosis
Permission errors on syncDestination RBAC vs AppProject restrictions

Use the general workflow below when nothing matches or the picture is unclear.

Workflow

  1. Check Application status: sync status, health status, and conditions for explicit error messages (argocd app get <app> or kubectl get application <app> -o yaml).
  2. Check the diff between desired and live state (argocd app diff) to see exactly what's out of sync, or whether ignoreDifferences is masking a real drift.
  3. Check app conditions for repo access errors, manifest generation errors (Helm/Kustomize rendering failures), or comparison errors.
  4. Verify targetRevision and path actually point at what's expected — a common cause of "nothing changed but it's out of sync" is a moved/renamed path or an unpinned branch that moved.
  5. If Helm/Kustomize-based, check that the chart/overlay renders locally the same way ArgoCD renders it (helm template / kustomize build) to rule out a rendering-environment mismatch.
  6. Check hooks and syncPolicy.syncOptions (e.g. sync-wave ordering, Skip, Replace, PruneLast) if resources are applying in the wrong order or being skipped.
  7. Check destination namespace: does it exist, and does syncPolicy.automated.selfHeal/ syncPolicy.syncOptions: [CreateNamespace=true] match expectations?
  8. Check ArgoCD's own RBAC/project restrictions (AppProject) if the app can't sync due to permission errors.
  9. Correlate findings into a root cause before proposing a fix.

References

references/playbooks.md — symptom→cause→fix diagnosis trees. For installing/operating Argo CD itself (HA, sharding, SSO/RBAC, AppProject design, repo setup, backup/DR) use the argocd skill.

Safety rules

  • Do not run argocd app sync, argocd app delete, or any command that changes live cluster state unless the user explicitly asks for it.
  • Prefer argocd app diff / get / kubectl get -o yaml (read-only) throughout the investigation.
  • If a force-sync or resource deletion looks like the right fix, say so explicitly and explain the blast radius — don't run it.

Output format

## Observations
## Evidence (diff / conditions / logs, quoted)
## Root cause
## Fix
<exact command(s), explicitly marked as requiring user confirmation to run>
## Validation
<how to confirm the fix worked>

Quality checklist

  • Root cause is backed by quoted diff/condition output, not guessed
  • No sync/delete/rollback command was executed without explicit confirmation
  • Rendering (Helm/Kustomize) mismatch was ruled in or out explicitly
  • sync-wave/hook ordering was checked if resource ordering looked wrong
  • AppProject/RBAC restrictions were checked if sync failed for permission reasons

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.