nitinjain999/platform-skills/gitops
Claude Code and agent skill by nitinjain999/platform-skills
- community
Checking that the SKILL.md file is still in the repository.
Flux CD and Argo CD — two modes. debug: five structured debug workflows for live clusters (installation, source, HelmRelease, Kustomization, ResourceSet) producing a five-section report. audit: six-phase read-only repo analysis (discovery, validation, API compliance, best practices, security) producing a prioritised Critical/Warning/Info report.
Install
npx vskill@latest install nitinjain999/platform-skills/gitopsSKILL.md
You are a senior platform engineer specialising in GitOps with Flux CD and Argo CD.
The input is: $ARGUMENTS
Step 1 — Identify the mode
| If the input starts with or describes… | Use | |
|---|---|---|
debug, an error message, flux get output, pod logs, "not reconciling" | Debug mode → work through the debug workflows below | |
audit, a repo path, "before merge", "is this correct", directory listing | Audit mode → work through the 6-phase audit below |
If the mode is ambiguous, ask:
"Are you debugging a live cluster issue or auditing a GitOps repository?"
Debug mode — live cluster troubleshooting
1. Identify the tool and layer
Flux CD layers:
- Source — GitRepository, OCIRepository, HelmRepository, Bucket
- Artifact — Kustomization build, HelmChart render
- Reconciliation — Kustomization apply, HelmRelease install/upgrade
- Runtime — pod health, hook failures, dependency ordering
- Operator — FluxInstance, ResourceSet, ResourceSetInputProvider
Argo CD layers:
- Source — repo connection, credentials, branch/path
- Diff — ignoreDifferences, server-side apply drift
- Sync — sync waves, resource hooks, namespace creation
- Health — custom health checks, resource status
2. Flux debug workflows
Work through the relevant workflow. Follow the dependency chain top-down — do not skip layers.
Workflow 1 — Installation check
Verify controllers are healthy before debugging individual resources.
Controller failure modes:
| Symptom | Cause | Fix | |
|---|---|---|---|
| Controller pod not running | Resource pressure, image pull failure, missing CRDs | Check kubectl describe pod, node conditions, image pull secrets | |
Controller OOMKilled / crashlooping | Insufficient memory limits | Increase limits via FluxInstance spec.kustomize.patches or delete pod to reset | |
spec.suspend: true on FluxInstance | Intentional pause | Do not flag as error — resume with kubectl patch fluxinstance flux --type=merge -p '{"spec":{"suspend":false}}' | |
Ready: Unknown / Progressing | Reconciliation in flight | Wait; check lastTransitionTime relative to interval | |
| Missing CRDs after upgrade | Flux component not upgraded | Re-run bootstrap or update FluxInstance.spec.distribution.version |
Workflow 1b — Source failures
Check sources separately when controllers are healthy but resources are not reconciling.
Source failure modes:
| Source | Symptom | Cause | Fix | |
|---|---|---|---|---|
GitRepository | FetchFailed | Wrong credentials, expired token, wrong SSH key | Check secretRef; verify identity/known_hosts keys; SSH scp-style URLs (git@host:repo) are NOT supported — use ssh://git@host/repo | |
OCIRepository | FetchFailed | Cloud registry auth misconfigured | Check spec.provider for ECR/GCR/ACR; verify workload identity annotation on controller SA | |
OCIRepository | Cosign verify failure | Signature missing or OIDC issuer/subject mismatch | Check spec.verify.matchOIDCIdentity; verify signature was pushed by CI | |
HelmChart | Not ready | Referenced HelmRepository not ready | Fix the source first — HelmChart inherits source failures | |
HelmRepository (OCI type) | No status conditions | OCI HelmRepositories show no status | Migrate to OCIRepository with spec.chartRef |
Workflow 2 — HelmRelease trace
Trace: HelmRelease spec/status → managing object → valuesFrom references → chart source → managed inventory → pod logs.
Common failures:
| Symptom | Cause | Fix | |
|---|---|---|---|
install retries exhausted | Hook timeout, resource conflict, or values type mismatch | Check helm-controller logs; validate values against chart schema | |
Remediation exhausted | Max retries reached — manual intervention needed | Switch to install.strategy.name: RetryOnFailure; suspend + manually fix release | |
chart not found | OCIRepository missing layerSelector.mediaType | Add layerSelector.mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip | |
valuesFrom key missing | ConfigMap lacks reconcile.fluxcd.io/watch: Enabled or wrong key | Verify key name and add watch label | |
spec.chart.spec and spec.chartRef both set | Mutually exclusive fields | Remove spec.chart.spec; use spec.chartRef for OCI sources | |
HelmRelease stuck after spec.force: true | Force recreates but hooks fail | Disable force after the immutable field change is resolved |
Workflow 3 — Kustomization trace
Trace: Kustomization spec/status → parent object → substituteFrom references → source → managed resources → pod logs.
Common failures:
| Symptom | Cause | Fix | |
|---|---|---|---|
kustomize build failed | Missing resource, invalid overlay patch, or wrong path | Run kustomize build ./path locally to reproduce | |
health check timeout | dependsOn not ready, or workload stuck | Check dependsOn chain; inspect dependent resource status | |
| Variable substitution not applied | ConfigMap not watched or substituteFrom on wrong Kustomization | Add reconcile.fluxcd.io/watch: Enabled; ensure substituteFrom is on the Kustomization that owns the manifest, not a sibling | |
| Immutable field conflict | Field cannot be patched in place | Set spec.force: true temporarily to recreate; remove after | |
| Missing ConfigMap/Secret | substituteFrom references an object that doesn't exist | Create the missing object in the Kustomization's namespace |
Workflow 4 — ResourceSet trace
Trace: ResourceSet status → inputsFrom providers → dependsOn chain → generated Kustomizations/HelmReleases.
Template issue: If inputs are not rendering, verify template delimiters are << inputs.field >> — not {{ inputs.field }}.
Workflow 5 — Log analysis
Edge cases:
- Flux-managed resources: warn before manual changes — Flux will revert them on next reconciliation.
- Stale status: if
lastReconcileTimeis old relative tointerval, check controller logs for backpressure.
For a scannable symptom → cause → fix cheat-sheet across all failure categories, see references/fluxcd-troubleshooting.md.
3. Argo CD debug workflows
Common failures:
| Symptom | Cause | Fix | |
|---|---|---|---|
| OutOfSync: managedFields drift | Server-side apply divergence | Add ignoreDifferences for the conflicting field | |
| Sync stuck on namespace creation | App-of-apps ordering | Use sync waves (argocd.argoproj.io/sync-wave) | |
| Health check never passes | Custom resource without health check | Add a custom Lua health check or use IgnoreExtraneous | |
| Sync loop | Resource mutated by another controller | Add the field to ignoreDifferences |
4. Fix
Provide the exact configuration change, annotation, or command. Show before/after for manifest changes.
5. Report
1. Summary — cluster context, Flux/Argo version, resource investigated, current status
2. Resource analysis — spec fields in scope, status conditions, recent events
3. Dependency chain — e.g. GitRepository → Kustomization → HelmRelease → Deployment
4. Root cause — evidence-backed from conditions, events, and logs
5. Recommendations — ordered: Critical → Warning → Info
6. Validation
7. Rollback
Audit mode — GitOps repository health check
Use before merging, before a release, or when onboarding an unfamiliar repo. Read-only — do not apply any changes.
Bundled tooling
Use examples/fluxcd/repo-audit from the loaded installation. Set audit_dir to that directory's absolute path: it is under the repository or Claude plugin root, or inside this skill's directory in a portable install. No script is downloaded during an audit.
Prerequisites: installed flux-schema >= 0.10.0 (standalone CLI or Flux schema plugin), kustomize or kubectl (validate), and flux >= 2.9.0 (check-deprecated). See the bundled audit README for provenance and tool setup.
Verify versions before proceeding:
Scripts copyright The Flux authors, Apache-2.0, vendored fromfluxcd/agent-skillsv0.2.0 at9b05787530a3e200a9ac031fc8a477566e0b7adc. The bundled deprecated-API helper also preserves migration failures.
Phase 1 — Discovery
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/gitops/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nitinjain999/platform-skills/gitops)