CtrlK
BlogDocsLog inGet started
Tessl Logo

dirien/pulumi-skills

Pulumi infrastructure-as-code and Flux CD GitOps skills for Claude Code with ESC, OIDC, and cloud provider best practices.

97

Quality

97%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

kustomizations.mdflux-cli/references/

Kustomization Commands

Kustomizations tell Flux how to deploy manifests from a source onto the cluster.


flux create kustomization

flux create kustomization <name> [flags]

Flags

FlagDefaultDescription
--sourceSource reference: [<kind>/]<name>.<namespace> (required). Kind is GitRepository, OCIRepository, or Bucket
--path./Path within the source to the kustomization.yaml or manifests directory
--prunefalseEnable garbage collection — delete objects removed from source
--depends-onDependencies that must be ready first: <name> or <namespace>/<name> (repeatable)
--target-namespaceOverride namespace for all reconciled objects
--service-accountService account for impersonation during reconciliation
--decryption-providerDecryption provider: sops
--decryption-secretSecret with OpenPGP or age keys for SOPS
--health-checkWorkloads for health assessment: <kind>/<name>.<namespace> (repeatable)
--health-check-timeout2mTimeout for health checks
--waitfalseEnable health checking of applied resources
--retry-intervalRetry interval for failed reconciliation
--kubeconfig-secret-refSecret with kubeconfig for remote cluster
--interval1mReconciliation interval
--exportOutput YAML instead of applying
--labelLabels as key=value (repeatable)

Examples

# Basic deployment from a GitRepository
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy/production \
  --prune=true \
  --interval=5m

# With SOPS decryption
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy \
  --prune=true \
  --decryption-provider=sops \
  --decryption-secret=sops-age

# With dependencies
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy \
  --prune=true \
  --depends-on=infrastructure

# Health checks
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy \
  --prune=true \
  --health-check="Deployment/my-app.default" \
  --health-check-timeout=3m

# Target a remote cluster
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy \
  --kubeconfig-secret-ref=staging-kubeconfig

# Export YAML
flux create kustomization my-app \
  --source=GitRepository/my-app \
  --path=./deploy \
  --prune=true \
  --export > kustomization.yaml

flux build kustomization

Build a Kustomization locally and output the resulting multi-doc YAML.

flux build kustomization <name> --path=<local-path> [flags]

Flags

FlagDescription
--pathPath to local manifests directory (required)
--kustomization-filePath to a local Flux Kustomization YAML file
--dry-runRun without cluster connection (variable substitutions from Secrets/ConfigMaps are skipped)
-r, --recursiveRecursively build nested Kustomizations
--local-sourcesMap local paths to source references: Kind/namespace/name=path
--ignore-pathsExclude files using .gitignore patterns
--strict-substituteFail if vars without defaults are missing

How it works

  1. Fetches the specified Kustomization from the cluster (unless --dry-run)
  2. Uses it to render the local kustomization.yaml
  3. Outputs the resulting manifests to stdout

Examples

# Basic build
flux build kustomization my-app --path=./deploy

# Dry run (no cluster needed)
flux build kustomization my-app \
  --path=./deploy \
  --kustomization-file=./flux/my-app.yaml \
  --dry-run

# Recursive with local sources
flux build kustomization my-app \
  --path=./deploy \
  --recursive \
  --local-sources GitRepository/flux-system/my-repo=./

# Exclude files
flux build kustomization my-app \
  --path=./deploy \
  --ignore-paths="/tests/**,*.test.yaml"

flux diff kustomization

Build locally, perform a server-side dry-run, and print the diff against the cluster.

flux diff kustomization <name> --path=<local-path> [flags]

Exit Codes

CodeMeaning
0No differences
1Differences found
>1Error occurred

Flags

Same as flux build kustomization, plus:

FlagDefaultDescription
--progress-bartrueShow progress bar

Examples

# Basic diff
flux diff kustomization my-app --path=./deploy

# Use in CI (exit code 1 = changes detected)
if ! flux diff kustomization my-app --path=./deploy; then
  echo "Changes detected, review required"
fi

# With local Kustomization file
flux diff kustomization my-app \
  --path=./deploy \
  --kustomization-file=./flux/my-app.yaml

# Recursive
flux diff kustomization my-app \
  --path=./deploy \
  --recursive \
  --local-sources GitRepository/flux-system/my-repo=./

Managing Kustomizations

# List
flux get kustomizations [-A] [-w] [--no-header]

# Filter
flux get kustomizations --status-selector ready=false
flux get kustomizations -l app=frontend

# Force reconciliation
flux reconcile kustomization <name>

# Suspend/resume
flux suspend kustomization <name>
flux suspend kustomization --all
flux resume kustomization <name>

# Export
flux export kustomization <name>
flux export kustomization --all > all-ks.yaml

# Delete
flux delete kustomization <name>

flux-cli

references

artifacts-and-images.md

bootstrap.md

helmreleases.md

kustomizations.md

sources.md

SKILL.md

AGENTS.md

CLAUDE.md

README.md

tile.json