| name | flux-operator-cli |
| description | Builds Flux manifests locally, diffs YAML files, patches FluxInstance upgrades, creates authentication secrets, traces GitOps delivery pipelines, and bootstraps clusters with the Flux Operator. Use this skill whenever the user mentions flux-operator, FluxInstance, FluxReport, ResourceSet, ResourceSetInputProvider, Flux CD operator management, or asks about GitOps CLI tooling for Kubernetes with Flux. Also trigger when users ask about building Flux manifests, diffing YAML, patching Flux instances, creating Flux secrets, tracing GitOps delivery pipelines, or bootstrapping clusters with Flux. Even if the user just says "flux operator" or "flux-operator cli" without details, this skill has the authoritative reference.
|
Flux Operator CLI
Installation
brew install controlplaneio-fluxcd/tap/flux-operator
Uses ~/.kube/config. Supports offline (no cluster) and online commands.
Command Overview
Commands fall into two categories: offline (no cluster access) and online (requires cluster).
Offline Commands (no cluster needed)
| Command | Purpose |
|---|
build instance | Generate K8s manifests from a FluxInstance YAML |
build rset | Generate K8s manifests from a ResourceSet YAML |
diff yaml <source> <target> | Compare YAML files, produce RFC 6902 JSON patch |
patch instance | Generate kustomize patches for upgrading Flux controllers |
Online Commands (cluster access required)
| Command | Purpose |
|---|
get instance|rset|rsip|all | List Flux Operator resources and their status |
export report | Export FluxReport with distribution status |
export resource <kind>/<name> | Export a Flux resource as YAML/JSON |
reconcile instance|rset|rsip|resource|all | Trigger reconciliation |
suspend instance|rset|rsip|resource | Pause reconciliation |
resume instance|rset|rsip|resource | Resume reconciliation |
delete instance|rset|rsip | Delete Flux resources |
stats | Reconciliation statistics and storage usage |
trace <kind>/<name> | Trace object through GitOps delivery pipeline |
tree rset|ks|hr | Visualize managed objects as a tree |
wait instance|rset|rsip | Poll until resource is ready |
create secret <type> | Create Kubernetes secrets for Flux |
install | Bootstrap cluster with Flux Operator + instance |
uninstall | Remove Flux Operator from cluster |
version | Show CLI, operator, and distribution versions |
Common Patterns
Build and preview manifests locally
flux-operator build instance -f flux-instance.yaml
flux-operator build rset -f resourceset.yaml \
--inputs-from inputs.yaml
flux-operator diff yaml old.yaml new.yaml -o json-patch-yaml
Day-2 cluster operations
flux-operator get all -A
flux-operator get all --ready-status=False
flux-operator reconcile resource Kustomization/my-app -n default --wait
flux-operator reconcile all --wait
flux-operator trace Deployment/my-app -n default
flux-operator tree ks my-app -n default
Upgrade Flux controllers
flux-operator patch instance -f flux-instance.yaml -v v2.5
flux-operator patch instance -f flux-instance.yaml -v v2.5 \
-r my-registry.example.com/flux
flux-operator get instance -A
Suspend and resume for maintenance
flux-operator suspend instance flux -n flux-system
flux-operator get instance flux -n flux-system
flux-operator resume instance flux -n flux-system --wait
Delete with safety
flux-operator delete instance flux -n flux-system --with-suspend
flux-operator delete rset my-rset -n default --wait
flux-operator get all -n default
Bootstrap a cluster
flux-operator install
flux-operator get all -A
flux-operator install \
--instance-sync-url=https://github.com/org/fleet \
--instance-sync-ref=main \
--instance-sync-path=clusters/production \
--instance-sync-creds=username:ghp_token
flux-operator install \
--instance-cluster-type=aws \
--instance-cluster-size=large \
--instance-cluster-multitenant
Create secrets for Flux
flux-operator create secret ssh my-ssh-secret \
--private-key-file=id_ed25519 \
--knownhosts-file=known_hosts \
-n flux-system
flux-operator create secret registry my-reg-secret \
--server=ghcr.io \
--username=bot \
--password-stdin \
-n flux-system
flux-operator create secret sops my-sops-secret \
--age-key-file=age.key \
-n flux-system
flux-operator create secret basic-auth my-auth \
--username=admin --password=secret --export
Uninstall
flux-operator -n flux-system uninstall
flux-operator -n flux-system uninstall --keep-namespace
flux-operator version
References
Abbreviations
| Short | Full Resource |
|---|
rset | ResourceSet |
rsip | ResourceSetInputProvider |
ks | Kustomization |
hr | HelmRelease |
Tips
-
Use --export on create secret commands to generate YAML without applying — useful
for GitOps workflows where secrets are managed declaratively.
-
trace walks backward from any Kubernetes object to find which Flux reconciler
manages it and where the source manifests live.
-
diff yaml accepts remote URLs (GitHub, GitLab, Gist, OCI) in addition to local files.
-
patch instance modifies the FluxInstance YAML in-place and replaces previously
generated patches, so it's safe to run repeatedly.
-
install is designed for dev/test environments. For production, use Helm charts.