argocd
3
总安装量
3
周安装量
#61617
全站排名
安装命令
npx skills add https://github.com/kontrolplane/skills --skill argocd
Agent 安装分布
amp
3
gemini-cli
3
github-copilot
3
codex
3
kimi-cli
3
opencode
3
Skill 文档
ArgoCD
Critical Gotchas
Sync Behavior
selfHeal: truereverts manual cluster changes every 3 minutes (default)prune: truedeletes resources removed from Gitâenable only when certainreplace: truein syncOptions does full replacement instead of patch (destructive)ServerSideApply=truerequired for CRDs with large specs to avoid annotation size limits
Application Targeting
destination.servermust match exactly what’s registered in ArgoCD (checkargocd cluster list)- Use
https://kubernetes.default.svcfor in-cluster, notkubernetes.default destination.namespacedoesn’t auto-create unlessCreateNamespace=truein syncOptions
Health Assessment
- ArgoCD has built-in health checks for standard resources
- Custom resources show “Progressing” indefinitely without custom health check in
argocd-cm - Ingress health requires actual endpoint check, not just resource existence
Non-Obvious Patterns
Sync Waves
metadata:
annotations:
argocd.argoproj.io/sync-wave: "-1" # Negative = earlier
- Waves are strings sorted numerically (“-1” < “0” < “1”)
- Resources in same wave sync in parallel
- Use for: namespaces â secrets â deployments â ingress
ApplicationSet Generator Precedence
generators:
- matrix:
generators:
- clusters: {} # Outer loop
- list: # Inner loop
elements: [{env: prod}, {env: staging}]
- Matrix multiplies generators (clusters à environments)
- Merge combines generators with override precedence (later wins)
Helm Value Precedence
values (inline) < valueFiles (in order) < parameters (highest priority)
Troubleshooting
| Symptom | Likely Cause |
|---|---|
| OutOfSync but no diff | Ignored differences, resource hooks, or server-side defaulting |
| Sync succeeds but unhealthy | Missing health check, resource not ready, CRD issue |
| “already exists” error | Resource managed by another Application or created manually |
| Stuck “Progressing” | No health check for CRD, or resource genuinely not ready |
argocd app get <app> --hard-refresh # Force manifest re-read
argocd app diff <app> --local <path> # Compare local to live