Installs kustomize (https://kustomize.io), the Kubernetes manifest customization tool, as a release binary at /usr/local/bin/kustomize, verified against the release's checksums.txt. Standalone - does not require kubectl.
"features": {
"ghcr.io/nabil-becker/devcontainer-features/kustomize:1": {}
}| Options Id | Description | Type | Default Value |
|---|---|---|---|
| installTaskfile | Also install this Feature's Taskfile into /usr/local/share/go-task/includes.d so its tasks appear under the : namespace of a root Taskfile that includes /usr/local/share/go-task/features.yml (see the go-task Feature). | boolean | true |
| version | kustomize release to install (e.g. '5.8.3', with or without a leading 'v'), or 'latest'. Pin it to what your CI uses so kustomize build output matches. |
string | latest |
The kustomize release binary from github.com/kubernetes-sigs/kustomize,
at /usr/local/bin/kustomize. install.sh downloads
kustomize_v<version>_linux_<arch>.tar.gz and the release's checksums.txt,
checks the tarball with sha256sum -c, and installs the binary only if the
check passes. It runs kustomize version at the end, so the version is in
the build log. It installs no kubectl and no helm.
versiontakes a number with or without a leadingv(5.8.3,v5.8.3), orlatest(the default).latestis resolved once, at image build time, through thereleases/latestredirect (no API call, no token), so two builds a month apart can differ. Pin it. Release tags in that repository look likekustomize/v5.8.3; a leadingkustomize/onversionis accepted too.curl,ca-certificatesandtarare installed withapt-getonly when missing; on an image withoutapt-getthe build fails.- Architectures:
x86_64/amd64andaarch64/arm64. Any otheruname -m(armv7lincluded) fails the build.
version(defaultlatest): change it to the version your CI'skustomize buildruns, so rendered output matches between laptop and pipeline. A value that does not start with anx.y.znumber fails the build.installTaskfile(defaulttrue): set it tofalsewhen you do not use the go-task registry and do not want/usr/local/share/go-task/includes.d/kustomize.ymlin the image.
There is no run-time override; the version is fixed at build.
No state: installs a binary only. No volume, no containerEnv, no
post-create hook. It does not read KUBECONFIG either: kustomize works
offline on files, so it needs nothing from kube-state.
"features": {
"ghcr.io/nabil-becker/devcontainer-features/kustomize:1": {
"version": "5.8.3"
}
}Drop the version line to follow the newest release at each image build.
kustomize version # prints the installed version
task kustomize:versionThe build log carries the same line (kustomize: downloading kustomize v<version> (kustomize_v<version>_linux_<arch>.tar.gz)..., then the
kustomize version output). A failed checksum stops the build with
sha256sum's FAILED line. There is no post-create line: nothing runs
after the build.
installsAfterorders it behind this collection'sgo-taskFeature (so the Taskfile registry exists and is refreshed) and the officialcommon-utils.- Pairs with
kubeconform:task kubeconform:validate:kustomizerenders withkustomize buildand validates the output against the Kubernetes schemas. - Pairs with
ghcr.io/devcontainers/features/kubectl-helm-minikubeforkubectlandhelm: kustomize can inflate Helm charts with--enable-helmwhenhelmis on PATH. - It augments no official Feature and replaces none. It is standalone: it
does not require
kubectl. - Independent of
kube-state: no cluster is contacted.
With installTaskfile on, and a root Taskfile that includes the go-task
registry, these appear under kustomize::
kustomize:version: show the installed version.kustomize:build: render the kustomization inDIR(default.) to stdout; extra kustomize flags go after--.kustomize:build:all: runkustomize buildon every directory underROOT(default.) that holds akustomization.yaml(skipping.git), printokorFAILper directory, discard the output, and exit non-zero if any failed. A quick "does everything still build" check.
- Linux only, on the two architectures above; others fail with
unsupported architecture. could not resolve a kustomize version:latestcould not be resolved (no network or no redirect) orversionis not a number. Pin an explicit version or fix the network.- A missing release asset or
checksums.txtline fails the build (curl -f, orsha256sumfinding no matching line). The binary is never installed unchecked. kustomize:build:allstops at nothing: it builds every directory and reports at the end, so read theFAILlines, not only the exit code. It also builds bases and components that are not meant to render alone, and those can showFAIL.- Remote bases (
github.com/...inresources) and Helm charts are fetched at build time and need network (andhelmon PATH for charts).
kubectl bundles an older kustomize (kubectl kustomize). This Feature
installs the standalone binary, so pin version to whatever your CI's
kustomize build step uses and the rendered manifests stay identical
between laptop and pipeline. No published Dev Container Feature for
standalone kustomize is known to this repository, so there is no other
Feature to compare.
Note: This file was auto-generated from the devcontainer-feature.json. Add additional notes to a NOTES.md.