fluxcd/agent-skillsApache-2.037 files

Gitops Knowledge

>

Specification
Skill ID
fluxcd/agent-skills/gitops-knowledge
Publisher
fluxcd
Repository
agent-skills
Installs
0
Files
37
License
Apache-2.0
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

fluxcd/agent-skills/gitops-knowledgeInstalls these files
  • SKILL.md
  • assets/schemas/alert-notification-v1beta3.fields.txt
  • assets/schemas/artifactgenerator-source-v1beta1.fields.txt
  • assets/schemas/bucket-source-v1.fields.txt
  • assets/schemas/externalartifact-source-v1.fields.txt
  • assets/schemas/fluxinstance-fluxcd-v1.fields.txt
  • assets/schemas/fluxreport-fluxcd-v1.fields.txt
  • assets/schemas/gitrepository-source-v1.fields.txt
  • assets/schemas/helmchart-source-v1.fields.txt
  • assets/schemas/helmrelease-helm-v2.fields.txt
  • assets/schemas/helmrepository-source-v1.fields.txt
  • assets/schemas/imagepolicy-image-v1.fields.txt
  • assets/schemas/imagerepository-image-v1.fields.txt
  • assets/schemas/imageupdateautomation-image-v1.fields.txt
  • assets/schemas/kustomization-kustomize-v1.fields.txt
  • assets/schemas/ocirepository-source-v1.fields.txt
  • assets/schemas/provider-notification-v1beta3.fields.txt
  • assets/schemas/receiver-notification-v1.fields.txt
  • assets/schemas/resourceset-fluxcd-v1.fields.txt
  • assets/schemas/resourcesetinputprovider-fluxcd-v1.fields.txt
  • evals/evals.json
  • references/best-practices.md
  • references/flux-cli.md
  • references/flux-operator.md
  • references/gitless-gitops.md
  • references/gitless-image-automation.md
  • references/helmrelease.md
  • references/image-automation.md
  • references/kustomization.md
  • references/mcp-server.md
  • references/monorepo-delivery.md
  • references/notifications.md
  • references/repo-patterns.md
  • references/resourcesets.md
  • references/sources.md
  • references/terraform-bootstrap.md
  • references/web-ui.md

What this skill tells the agent

Flux CD Knowledge Base

You are an expert on Flux CD, the GitOps toolkit for Kubernetes. Use this knowledge base to answer questions accurately, generate correct YAML manifests, and explain Flux concepts.

Rules:

  • Always use the exact apiVersion/kind combinations from the CRD table below. Never invent API versions.
  • Before generating YAML for any CRD, verify field names, types, enums and required fields against its field index in assets/schemas/. Each line is <dotted.path> <type> [(required)] [enum=a|b] [default=x] [pattern="..."] [min=N max=N] # description (arrays as path[], maps as <map[string]T>). Grep a path prefix to list a subtree (grep '^spec\.chart\.' assets/schemas/helmrelease-helm-v2.fields.txt) or a field name to find where it lives. Mutual-exclusivity and other CEL rules are enforced by flux schema validate.
  • When a question requires detail beyond this file, load the relevant reference file from references/.
  • When working inside a GitOps repository, inventory the layout with flux schema discover before placing files, and after writing manifests validate them with flux schema validate — fix and re-run until clean. Load references/flux-cli.md for the full CLI workflow, local rendering, and overlay debugging. If the tools aren't installed, skip validation and say so.
  • Prefer Flux Operator (FluxInstance) for cluster setup. Do not reference flux bootstrap or legacy gotk-* files.

What is Flux

Flux is a set of Kubernetes controllers that implement GitOps: Git or OCI registries are the source of truth, and Flux continuously reconciles that desired state with the cluster. Sources poll at their interval and produce versioned artifacts; appliers (kustomize-controller, helm-controller) build and server-side apply new revisions, detect drift and self-heal; notification-controller reports status externally. Flux Operator manages the Flux installation declaratively through a FluxInstance custom resource (install, configuration, upgrades, lifecycle of all controllers); only one FluxInstance named flux can exist per cluster.

Sources (Git, OCI, Helm, Bucket) ─▶ Artifacts ─▶ Appliers (Kustomization, HelmRelease)
  ─▶ Managed Resources (Deployments, Services, ...) ─▶ Notifications (Provider + Alert)

ResourceSetInputProvider (GitHub PRs, OCI tags, in-cluster ExternalArtifacts, ...)
  ─▶ exports inputs ─▶ ResourceSet (template + input matrix; optional ordered `steps`)
  ─▶ generates per-input: Namespaces, Sources, Kustomizations, HelmReleases, RBAC, Jobs, ...

Two delivery models: Git-based (Flux watches Git and applies on commit) and Gitless (Git → CI pushes OCI artifacts → Flux pulls from the registry; artifacts are immutable, signed, and need no Git credentials on clusters).

Controllers, CRDs and References

The field index for each CRD is assets/schemas/<kind>-<group>-<version>.fields.txt in lowercase (e.g. helmrelease-helm-v2.fields.txt, fluxinstance-fluxcd-v1.fields.txt).

KindapiVersionControllerReference
FluxInstance, FluxReportfluxcd.controlplane.io/v1flux-operatorreferences/flux-operator.md
ResourceSet, ResourceSetInputProviderfluxcd.controlplane.io/v1flux-operatorreferences/resourcesets.md
GitRepository, OCIRepository, HelmRepository, HelmChart, Bucketsource.toolkit.fluxcd.io/v1source-controllerreferences/sources.md
ExternalArtifactsource.toolkit.fluxcd.io/v1(3rd-party controllers)references/sources.md
ArtifactGeneratorsource.extensions.fluxcd.io/v1beta1source-watcherreferences/sources.md
Kustomizationkustomize.toolkit.fluxcd.io/v1kustomize-controllerreferences/kustomization.md
HelmReleasehelm.toolkit.fluxcd.io/v2helm-controllerreferences/helmrelease.md
Provider, Alertnotification.toolkit.fluxcd.io/v1beta3notification-controllerreferences/notifications.md
Receivernotification.toolkit.fluxcd.io/v1notification-controllerreferences/notifications.md
ImageRepository, ImagePolicyimage.toolkit.fluxcd.io/v1image-reflector-controllerreferences/image-automation.md
ImageUpdateAutomationimage.toolkit.fluxcd.io/v1image-automation-controllerreferences/image-automation.md
TopicReference
Repository structure, monorepo vs multi-repo, OCI-based fleet managementreferences/repo-patterns.md
Monorepo directory-driven delivery (one pipeline per app/env directory), production fleet layout, layered infra reconcilers, per-env image policiesreferences/monorepo-delivery.md
Jobs in sequence with deployments (migrations, smoke tests), ResourceSet steps, multi-tenancy, force/recreateOnFailure/checksumFrom annotationsreferences/resourcesets.md
Best practices, dependency management, remediation, versioningreferences/best-practices.md
Gitless GitOps, Flux OCI artifacts, flux push artifact, registry-based deliveryreferences/gitless-gitops.md
Gitless image automation (ResourceSet + OCIArtifactTag)references/gitless-image-automation.md
Flux CLI and plugins: flux schema discover/validate/extract, local rendering with flux build and flux operator build, overlay debuggingreferences/flux-cli.md
Terraform bootstrap of Flux Operatorreferences/terraform-bootstrap.md
Web UI, dashboard, SSO, OIDC, Dex, Keycloak, Entra ID, RBACreferences/web-ui.md
MCP Server, AI assistant integration, in-cluster deploymentreferences/mcp-server.md

Ordering and Reactivity

Use dependsOn to control reconciliation order (CRDs before CRs, infrastructure before apps):

spec:
  dependsOn:
    - name: infra-controllers  # wait for this Kustomization to be Ready

ResourceSet dependsOn entries take apiVersion/kind/name/namespace of any resource, plus ready: true or a readyExpr CEL expression for custom readiness. For ordering within a single ResourceSet, use spec.steps (ordered named steps, each applied and health-checked before the next) instead of spec.resources — see references/resourcesets.md.

Controllers poll sources at their interval. To react immediately when a ConfigMap or Secret referenced via postBuild.substituteFrom or valuesFrom changes, label it reconcile.fluxcd.io/watch: Enabled.

Decision Trees

Which Source Type?

  • Git repo with Kustomize overlays or plain YAML → GitRepository
  • OCI artifact (container image with manifests) → OCIRepository
  • Helm chart from OCI registry → OCIRepository with layerSelector for Helm media type
  • Helm chart from HTTPS Helm repo → HelmRepository (default type)
  • S3/GCS/MinIO bucket → Bucket
  • Monorepo that needs splitting → ArtifactGenerator (creates ExternalArtifact per path)
  • Monorepo where every `apps/<app>/envs/<env>` directory gets its own pipeline automatically → ArtifactGenerator pathPattern + ResourceSetInputProvider (type: ExternalArtifact) + ResourceSet templating a Kustomization per artifact — load references/monorepo-delivery.md
  • Helm chart + env-specific values from Git → ArtifactGenerator (composes chart with values overlay)

Kustomization vs HelmRelease vs ResourceSet?

  • Plain YAML or Kustomize overlays, one deployment → Kustomization
  • Helm chart → HelmRelease
  • Same template deployed for N inputs (tenants, components, environments) → ResourceSet (generates resources from an input matrix; Kustomizations apply a fixed set of manifests)
  • Jobs that must run before/after a deployment (DB migration, smoke test, cache warmup) → ResourceSet with spec.steps — one object with a pre-deploy Job → deploy Kustomization → post-deploy Job sequence, instead of three dependsOn-chained Kustomizations. See references/resourcesets.md (Step-Based Reconciliation).

Use this skill in a project

Open any RiverX project, search the Skills panel for fluxcd/agent-skills/gitops-knowledge, and install it in one click.

Use this skill