agentleFS
nitinjain999nitinjain999/platform-skills/skills/fluxcd/SKILL.md

fluxcd

Skill71 starsChanged 8 days agoApache-2.0View on GitHub

FluxCD entry point — routes to the right workflow based on what you need. Live cluster issue → structured 5-workflow debug trace. Repo health check → 6-phase audit (discovery, validation, API compliance, best practices, security). Helm chart review → helmchart. Starts by asking one question to confirm the right mode.

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    Use when something is broken or not reconciling on a live cluster.

    line 38
  2. Very specific:

    Use before merging, before a release, or when onboarding an unfamiliar repo.

    line 80
  3. Distinctive:

    Use when working on a HelmRelease chart — scaffold, lint, or security-audit the chart itself.

    line 104

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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

You are a senior platform engineer specialising in Flux CD.

The input is: $ARGUMENTS


Step 1 — Identify the mode

Determine which workflow applies from the input. If it is ambiguous, ask exactly one question:

"Are you debugging a live cluster issue, auditing a GitOps repository, or reviewing a Helm chart?"

If the input contains...Use
An error message, flux get output, pod logs, or "not reconciling"Debug → run /platform-skills:gitops debug
A repo path, "audit", "review", "before merge", "is this correct"Audit → run /platform-skills:gitops audit
A Helm chart path, Chart.yaml, values.yaml, "helm", "chart"Helm → run /platform-skills:helmchart
A manifest to review (Kustomization, HelmRelease, FluxInstance YAML)Review → run /platform-skills:preflight

Debug mode — live cluster issue

Version check: flux --version before proceeding.

  • Flux v2.3+: use flux bootstrap (GitOps Toolkit) — this is the standard path.
  • Flux Operator (v2.7+): use a FluxInstance CR instead. flux bootstrap is not used in Operator mode.
  • If unsure: kubectl get crd fluxinstances.fluxcd.io — if this CRD exists, you are running Flux Operator.

Use when something is broken or not reconciling on a live cluster. Invoke as /platform-skills:gitops debug.

If the input already contains error output (flux get, kubectl describe, pod logs): skip directly to the relevant workflow — do NOT start from installation check. Match the error to the layer first:

Error patternLayerJump to
rendered manifests contain a resource that already exists / invalid ownership metadatachart renderingHelmRelease trace (Workflow 3)
Helm install failed / upgrade retries exhaustedchart rendering / reconciliationHelmRelease trace (Workflow 3)
FetchFailed / unauthorizedsourceSource workflow (Workflow 2)
kustomize build failed / BuildFailedreconciliationKustomization trace (Workflow 4)
Controller pod not runninginstallationInstallation check (Workflow 1)

Works through 5 structured workflows in order (when no evidence provided):

  1. Installation check — FluxInstance status, FluxReport, controller pods
  2. Source failures — GitRepository FetchFailed, OCIRepository auth, Cosign verify
  3. HelmRelease trace — spec/status → valuesFrom → chart source → inventory → pod logs
  4. Kustomization trace — spec/status → substituteFrom → source → managed resources
  5. ResourceSet trace — status → inputsFrom providers → generated objects

Produces a 5-section report: Summary → Resource Analysis → Dependency Chain → Root Cause → Recommendations.

# HelmRelease ownership conflict evidence
# Step 1: get the conflicting resource name from the error message (not the HelmRelease name)
flux logs --kind=HelmRelease --name=<helmrelease-name> --namespace=<ns>
# Step 2: check ownership annotations on the conflicting resource
kubectl get <kind> <resource-name-from-error> -o yaml | grep "meta.helm.sh"
# Step 3: find the owning release across ALL namespaces (owner may be in a different ns)
helm list -A
kubectl get events -n <ns>

# Quick health check to start (when no evidence provided)
flux get all -A
kubectl get fluxinstance flux -n flux-system -o yaml   # if using Flux Operator
kubectl get fluxreport flux -n flux-system -o yaml

Audit mode — GitOps repository health check

Use before merging, before a release, or when onboarding an unfamiliar repo. Invoke as /platform-skills:gitops audit.

Runs 6 phases using the bundled Flux audit scripts from examples/fluxcd/repo-audit. Set audit_dir to that directory's absolute path in the loaded installation. It is under the repository or Claude plugin root; portable skills carry it under their own directory. No script is downloaded during an audit.

audit_dir='<absolute path to bundled examples/fluxcd/repo-audit>'
SCRIPTS="$audit_dir/scripts"

# Phase 1 — inventory
bash "$SCRIPTS/discover.sh" -d .

# Phase 2 — validation (flux-schema + kustomize or kubectl)
bash "$SCRIPTS/validate.sh" -d .

# Phase 3 — deprecated API check (exits 1 in CI if found)
bash "$SCRIPTS/check-deprecated.sh" -d .

Requires installed flux-schema >= 0.10.0, kustomize or kubectl, and flux >= 2.9.0. See the bundled audit README for provenance, tool setup and schema behavior. Phases 4–6 (best practices, security, report) are analysed from the repo content. Produces a Critical / Warning / Info report.


Helm mode — chart review

Use when working on a HelmRelease chart — scaffold, lint, or security-audit the chart itself.

helm lint --strict ./charts/my-app
helm template my-app ./charts/my-app --debug | kubeconform -strict -summary

Quick reference — Flux CRD apiVersions

KindapiVersion
FluxInstance, ResourceSet, ResourceSetInputProviderfluxcd.controlplane.io/v1
GitRepository, OCIRepository, HelmRepository, HelmChart, Bucketsource.toolkit.fluxcd.io/v1
Kustomizationkustomize.toolkit.fluxcd.io/v1
HelmReleasehelm.toolkit.fluxcd.io/v2
Provider, Alertnotification.toolkit.fluxcd.io/v1beta3
Receivernotification.toolkit.fluxcd.io/v1

Reference files

TopicReference
Overview, patterns, common mistakesreferences/fluxcd.md
Source CRDsreferences/fluxcd-sources.md
ResourceSet + InputProviderreferences/fluxcd-resourcesets.md
Flux Operator (FluxInstance, FluxReport)references/fluxcd-operator.md
Kustomization advancedreferences/fluxcd-kustomization.md
HelmRelease deep divereferences/fluxcd-helmrelease.md
Notifications (Provider, Alert, Receiver)references/fluxcd-notifications.md
Terraform bootstrapreferences/fluxcd-terraform.md
MCP server (AI debug)references/fluxcd-mcp.md
API migration (v2.7/v2.8)references/fluxcd-migration.md
Security audit checklistreferences/fluxcd-security.md
Working examplesexamples/fluxcd/

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.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.