Skip to content


The Kustomizer CLI is available as a binary executable for all major platforms, the binaries can be downloaded from GitHub releases. The binaries checksums are signed with cosign and each release comes with a Software Bill of Materials (SBOM) in SPDX format.

Install the latest release on macOS or Linux with:

brew install stefanprodan/tap/kustomizer

Note that the Homebrew formula will setup shell autocompletion for Bash, Fish and Zsh.

Install the latest release on macOS or Linux with:

curl -s | bash

To install a specific version:

curl -s | bash -s 2.0.0

The install script downloads the specified version from GitHub and copies the kustomizer binary to /usr/local/bin. If cosign is found in PATH, the script will verify the signature of the release checksums using the public key from

Using Go >= 1.17:

go install

Shell autocompletion

Configure your shell to load kustomizer completions:

To load completion run:

. <(kustomizer completion bash)

To configure your bash shell to load completions for each session add to your bashrc:

# ~/.bashrc or ~/.bash_profile
command -v kustomizer >/dev/null && . <(kustomizer completion bash)

If you have an alias for kustomizer, you can extend shell completion to work with that alias:

# ~/.bashrc or ~/.bash_profile
alias kz=kustomizer
complete -F __start_kustomizer kz

To configure your fish shell to load completions for each session write this script to your completions dir:

kustomizer completion fish > ~/.config/fish/completions/

To load completion run:

. <(kustomizer completion powershell)

To configure your powershell shell to load completions for each session add to your powershell profile:


cd "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
kustomizer completion >> kustomizer-completion.ps1

cd "${XDG_CONFIG_HOME:-"$HOME/.config/"}/powershell/modules"
kustomizer completion >> kustomizer-completions.ps1

To load completion run:

. <(kustomizer completion zsh) && compdef _kustomizer kustomizer

To configure your zsh shell to load completions for each session add to your zshrc:

# ~/.zshrc or ~/.profile
command -v kustomizer >/dev/null && . <(kustomizer completion zsh) && compdef _kustomizer kustomizer

or write a cached file in one of the completion directories in your ${fpath}:

echo "${fpath// /\n}" | grep -i completion
kustomizer completion zsh > _kustomizer

mv _kustomizer ~/.oh-my-zsh/completions  # oh-my-zsh
mv _kustomizer ~/.zprezto/modules/completion/external/src/  # zprezto

Container Images

Signed release images are available at The container images are multi-arch (amd64 and arm64) and they are tagged with the version number e.g.

Verify the latest image with cosign:

cosign verify --key \

Pull the image and run kustomizer with docker:

docker run /kustomizer -v


In order to change settings such as the server-side apply field manager or the apply order, first create a config file at ~/.kustomizer/config with:

kustomizer config init
config written to /Users/stefanprodan/.kustomizer/config

Make adjustments to the config YAML, then validate the config with:

kustomizer config view
kind: Config
  - CustomResourceDefinition
  - Namespace
  - ResourceQuota
  - StorageClass
  - ServiceAccount
  - PodSecurityPolicy
  - Role
  - ClusterRole
  - RoleBinding
  - ClusterRoleBinding
  - ConfigMap
  - Secret
  - Service
  - LimitRange
  - PriorityClass
  - Deployment
  - StatefulSet
  - CronJob
  - PodDisruptionBudget
  - MutatingWebhookConfiguration
  - ValidatingWebhookConfiguration
  name: kustomizer

If you want to use Kustomizer as a debug tool for Flux, you can set the field manager to match Flux's kustomize-controller with:

kind: Config
  name: kustomize-controller