Pulumi infrastructure-as-code and Flux CD GitOps skills for Claude Code with ESC, OIDC, and cloud provider best practices.
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
These commands require cluster access via ~/.kube/config.
Retrieve Flux Operator resources and their status.
flux-operator get instance [-n <namespace>] [-A]Retrieves FluxInstance resources.
flux-operator get rset [-n <namespace>] [-A]Retrieves ResourceSet resources.
flux-operator get rsip [-n <namespace>] [-A]Retrieves ResourceSetInputProvider resources.
flux-operator get all [-n <namespace>] [-A] [--kind <kind>] [--ready-status <status>] [-o <format>]Retrieves all Flux resources with their status.
| Flag | Default | Description |
|---|---|---|
-n, --namespace | — | Filter by namespace |
-A, --all-namespaces | — | Retrieve from all namespaces |
--kind | — | Filter by resource kind (e.g. Kustomization, HelmRelease) |
--ready-status | — | Filter by status: True, False, Unknown, Suspended |
-o, --output | table | Output format: table, json, yaml |
# All resources across all namespaces
flux-operator get all -A
# Only failing resources
flux-operator get all --ready-status=False
# Only HelmReleases as JSON
flux-operator get all --kind=HelmRelease -o json
# Resources in a specific namespace
flux-operator get all -n productionExport Flux resources for backup or migration.
flux-operator export report [-n <namespace>] [-o <format>]Exports the FluxReport containing distribution status, installed versions, and health.
flux-operator export resource <kind>/<name> [-n <namespace>] [-o <format>]Exports a specific Flux resource.
| Flag | Default | Description |
|---|---|---|
-n, --namespace | — | Namespace scope |
-o, --output | yaml | Output format: yaml, json |
# Export the flux report
flux-operator export report -n flux-system
# Export a Kustomization as YAML
flux-operator export resource Kustomization/my-app -n default
# Export a HelmRelease as JSON
flux-operator export resource HelmRelease/nginx -n default -o jsonTrigger reconciliation of Flux resources.
flux-operator reconcile instance <name> [-n <namespace>] [--wait]
flux-operator reconcile rset <name> [-n <namespace>] [--wait]
flux-operator reconcile rsip <name> [-n <namespace>] [--wait]
flux-operator reconcile resource <kind>/<name> [-n <namespace>] [--wait]
flux-operator reconcile all [-n <namespace>] [--wait]| Flag | Description |
|---|---|
-n, --namespace | Namespace scope |
--wait | Wait for reconciliation to complete before returning |
# Reconcile a specific Kustomization and wait
flux-operator reconcile resource Kustomization/my-app -n default --wait
# Reconcile a FluxInstance
flux-operator reconcile instance flux -n flux-system --wait
# Reconcile everything in the cluster
flux-operator reconcile all --waitPause reconciliation of Flux resources. The resource stays in place but won't be reconciled until resumed.
flux-operator suspend instance <name> [-n <namespace>]
flux-operator suspend rset <name> [-n <namespace>]
flux-operator suspend rsip <name> [-n <namespace>]
flux-operator suspend resource <kind>/<name> [-n <namespace>]| Flag | Description |
|---|---|
-n, --namespace | Namespace scope |
# Suspend a FluxInstance before maintenance
flux-operator suspend instance flux -n flux-system
# Suspend a specific HelmRelease
flux-operator suspend resource HelmRelease/nginx -n defaultResume reconciliation of a previously suspended resource.
flux-operator resume instance <name> [-n <namespace>] [--wait]
flux-operator resume rset <name> [-n <namespace>] [--wait]
flux-operator resume rsip <name> [-n <namespace>] [--wait]
flux-operator resume resource <kind>/<name> [-n <namespace>] [--wait]| Flag | Description |
|---|---|
-n, --namespace | Namespace scope |
--wait | Wait for the first reconciliation after resume to complete |
# Resume and wait for reconciliation
flux-operator resume instance flux -n flux-system --wait
# Resume a HelmRelease
flux-operator resume resource HelmRelease/nginx -n default --waitRemove Flux Operator resources from the cluster.
flux-operator delete instance <name> [-n <namespace>] [--wait] [--with-suspend]
flux-operator delete rset <name> [-n <namespace>] [--wait] [--with-suspend]
flux-operator delete rsip <name> [-n <namespace>] [--wait] [--with-suspend]| Flag | Default | Description |
|---|---|---|
-n, --namespace | — | Namespace scope |
--wait | true | Wait for deletion to complete |
--with-suspend | false | Suspend the resource before deleting, leaving managed resources in-place |
# Delete a ResourceSet
flux-operator delete rset my-rset -n default
# Delete but keep managed resources intact
flux-operator delete instance flux -n flux-system --with-suspendThe --with-suspend flag is a safety mechanism: it suspends reconciliation first, then
deletes the operator resource. The Kubernetes objects that were managed by the resource
remain untouched in the cluster.
Display reconciliation statistics and cumulative storage usage per source type.
flux-operator statsNo additional flags. Shows a summary of how many resources are reconciled, failing, suspended, and the storage consumed by each source type.
Trace a Kubernetes object through the GitOps delivery pipeline.
flux-operator trace <kind>/<name> [-n <namespace>]| Flag | Description |
|---|---|
-n, --namespace | Namespace of the object to trace |
Identifies which Flux reconciler manages the object and traces back to the original source (Git repository, OCI artifact, Helm chart, etc.).
# Trace a Deployment
flux-operator trace Deployment/my-app -n default
# Trace a Service
flux-operator trace Service/frontend -n productionVisualize Flux-managed objects as a hierarchical tree.
flux-operator tree rset <name> [-n <namespace>]
flux-operator tree ks <name> [-n <namespace>]
flux-operator tree hr <name> [-n <namespace>]| Subcommand | What it shows |
|---|---|
tree rset | Objects managed by a ResourceSet |
tree ks | Objects managed by a Kustomization |
tree hr | Objects managed by a HelmRelease |
| Flag | Description |
|---|---|
-n, --namespace | Namespace scope |
# View the tree of a Kustomization
flux-operator tree ks my-app -n default
# View HelmRelease managed objects
flux-operator tree hr nginx -n defaultPoll a resource until it reaches the Ready state or times out.
flux-operator wait instance <name> [-n <namespace>] [--timeout <duration>]
flux-operator wait rset <name> [-n <namespace>] [--timeout <duration>]
flux-operator wait rsip <name> [-n <namespace>] [--timeout <duration>]| Flag | Default | Description |
|---|---|---|
-n, --namespace | — | Namespace scope |
--timeout | 1m | How long to wait before giving up (e.g. 5m, 2m30s) |
# Wait up to 5 minutes for an instance to be ready
flux-operator wait instance flux -n flux-system --timeout 5mBootstrap a cluster with the Flux Operator and a FluxInstance. Downloads the operator
distribution from oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests and
installs into the flux-system namespace.
This command is intended for development and testing. For production, use the Flux Operator installation guide with Helm charts.
| Flag | Description |
|---|---|
-f, --instance-file | FluxInstance YAML (local path, OCI, or HTTPS URL) |
--instance-distribution-version | Flux distribution version |
--instance-distribution-registry | Flux distribution registry |
--instance-distribution-artifact | Flux distribution OCI artifact |
--instance-components | List of Flux components to install |
--instance-components-extra | Additional components beyond the default set |
--instance-cluster-type | Cluster type: kubernetes, openshift, aws, azure, gcp |
--instance-cluster-size | Cluster size: small, medium, large |
--instance-cluster-domain | Cluster domain |
--instance-cluster-multitenant | Enable multitenant lockdown |
--instance-cluster-network-policy | Restrict network access |
--instance-sync-url | Git or OCI repository URL to sync from |
--instance-sync-ref | Git ref or OCI tag |
--instance-sync-path | Path within the repository to the manifests |
--instance-sync-creds | Credentials in username:token format |
--instance-sync-gha-app-id | GitHub App ID for auth |
--instance-sync-gha-installation-id | GitHub App installation ID |
--instance-sync-gha-installation-owner | GitHub App installation owner |
--instance-sync-gha-private-key-file | GitHub App private key file |
--instance-sync-gha-base-url | GitHub Enterprise base URL |
--auto-update | Enable automatic updates |
--verify | Verify cosign signature |
--certificate-identity-regexp | Certificate identity regex for verification |
--certificate-oidc-issuer | OIDC issuer for verification |
--trusted-root | Path to trusted_root.json |
# Basic install
flux-operator install
# Install with Git sync
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
# Install for AWS with large cluster profile
flux-operator install \
--instance-cluster-type=aws \
--instance-cluster-size=large \
--instance-cluster-multitenant
# Install from a custom FluxInstance file
flux-operator install -f custom-instance.yamlSafely remove the Flux Operator and its instance from the cluster.
flux-operator -n <namespace> uninstall [--keep-namespace]--keep-namespace)Does not delete reconciled Kubernetes objects or Helm releases — those remain in the cluster.
| Flag | Description |
|---|---|
--keep-namespace | Don't delete the namespace after removing the operator |
# Full removal
flux-operator -n flux-system uninstall
# Keep the namespace for reuse
flux-operator -n flux-system uninstall --keep-namespaceDisplay CLI, Flux Operator, and Flux distribution versions.
flux-operator version [--client]| Flag | Description |
|---|---|
--client | Show only the client (CLI) version |
# Full version info (requires cluster access)
flux-operator version
# Client version only (no cluster needed)
flux-operator version --client