KUBERNETES(1)(kubernetes)

πŸ’– NAME πŸ’–

kubectl kustomize β€” bestie, this builds you a kustomization target out of a directory or a URL πŸŽ€


✨ SYNOPSIS ✨

kubectl kustomize [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so picture this: you got a kustomization.yaml file and you want it to manifest actual KRM resources. That's literally the whole job here πŸ’…

The DIR argument has to be a path to a directory that contains a kustomization.yaml, or it can be a git repository URL with a path suffix that points to the same thing relative to the repo root. Very "choose your own adventure", love that for you 🌈

And if you just… forget DIR entirely? No stress, . is assumed. The current directory said "I'll do it" πŸ™ˆ


🌸 OPTIONS 🌸

  • --as-current-user=false β€” run the function in the container using the uid and gid of whoever's running the command, i.e. you πŸ‘‘
  • --enable-alpha-plugins=false β€” turn on kustomize plugins. Alpha ones. You know what you're doing, icon ✨
  • --enable-helm=false β€” let the Helm chart inflator generator do its thing πŸŽ€
  • --enable-managedby-label=false β€” enables adding app.kubernetes.io/managed-by
  • -e, --env=[] β€” a whole list of environment variables that functions get to use 🧚
  • --helm-api-versions=[] β€” the Kubernetes api versions Helm uses for Capabilities.APIVersions
  • --helm-command="helm" β€” the helm command, aka path to the executable 🫢
  • --helm-debug=false β€” turn on debug output from the Helm chart inflator generator. Spill the tea, helm β˜•
  • --helm-kube-version="" β€” the Kubernetes version Helm uses for Capabilities.KubeVersion
  • --load-restrictor="LoadRestrictionsRootOnly" β€” if you set this to LoadRestrictionsNone, local kustomizations are allowed to load files from outside their root. Which is giving chaos honestly, because it breaks the relocatability of the kustomization πŸ’€ so like, be aware.
  • --mount=[] β€” a list of storage options read from the filesystem πŸ“
  • --network=false β€” enable network access for functions that declare it 🌐
  • --network-name="bridge" β€” the docker network to run the container in
  • -o, --output="" β€” if you specify it, output gets written to this path. Simple as that πŸ’œ
  • --reorder="legacy" β€” reorder the resources right before output. Use 'legacy' to apply a legacy reordering (Namespaces first, Webhooks last, etc). Use 'none' to suppress that final reordering. You choose the vibe 🌈

πŸ‘‘ OPTIONS INHERITED FROM PARENT COMMANDS πŸ‘‘

Yes bestie, there's more. These come from the parent command, no cap πŸ’…

  • --as="" β€” username to impersonate for the operation. Could be a regular user or a service account in a namespace 🎭
  • --as-group=[] β€” group to impersonate for the operation; this flag can be repeated to specify multiple groups
  • --as-uid="" β€” UID to impersonate for the operation
  • --as-user-extra=[] β€” user extras to impersonate for the operation; this flag can be repeated to specify multiple values for the same key
  • --cache-dir="/home/username/.kube/cache" β€” default cache directory πŸ“
  • --certificate-authority="" β€” path to a cert file for the certificate authority
  • --client-certificate="" β€” path to a client certificate file for TLS
  • --client-key="" β€” path to a client key file for TLS πŸ”‘
  • --cluster="" β€” the name of the kubeconfig cluster to use
  • --context="" β€” the name of the kubeconfig context to use
  • --disable-compression=false β€” if true, opt-out of response compression for all requests to the server
  • --insecure-skip-tls-verify=false β€” if true, the server's certificate will not be checked for validity. > 🚨 This will make your HTTPS connections insecure. Like, actually insecure. Not a vibe. Be careful fr fr.
  • --kubeconfig="" β€” path to the kubeconfig file to use for CLI requests
  • --kuberc="" β€” path to the kuberc file to use for preferences. You can disable this by exporting the KUBECTL_KUBERC=false feature gate, or by turning off the feature with KUBERC=off πŸ™ˆ
  • --match-server-version=false β€” require server version to match client version. Matching outfits, but for versions πŸŽ€
  • -n, --namespace="" β€” if present, the namespace scope for this CLI request
  • --password="" β€” password for basic authentication to the API server
  • --profile="none" β€” name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex|trace) πŸ“Š
  • --profile-output="profile.pprof" β€” name of the file to write the profile to
  • --proxy-url="" β€” proxy URL to use for requests to the API server
  • --request-timeout="0" β€” how long to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. Zero = patient queen πŸ‘‘
  • -s, --server="" β€” the address and port of the Kubernetes API server
  • --tls-server-name="" β€” server name to use for server certificate validation. If it's not provided, the hostname used to contact the server is used
  • --token="" β€” bearer token for authentication to the API server 🎟️
  • --user="" β€” the name of the kubeconfig user to use
  • --username="" β€” username for basic authentication to the API server
  • --version=false β€” --version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version πŸ‘€
  • --warnings-as-errors=false β€” treat warnings received from the server as errors and exit with a non-zero exit code. Warnings? In THIS economy? Not on my watch πŸ’€

🌈 EXAMPLE 🌈

# Build the current working directory
kubectl kustomize

# Build some shared configuration directory
kubectl kustomize /home/config/production

# Build from github
kubectl kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6

πŸ’œ SEE ALSO πŸ’œ


πŸŽ€ HISTORY πŸŽ€

January 2015, originally compiled by Eric Paris (eparis at redhat dot com) based on the kubernetes source material β€” but hopefully they have been automatically generated since! 😭 iconic honestly


And that's the whole page bestie 🫢 This was the kubernetes manual, section 1, dated Jan 2015 and written by Eric Paris, and the manuals said "User" which is us, we're the user πŸ’… You ate. Periodt. ✨

πŸ“¦ where this page comes from