One fix for lo up in a shell that exports only PATH. No configuration change is needed.
Fixed
lo upwith the v0.4.0lo(core) binary created the kind cluster and then failed in the bootstrap step:Error: loading generator plugins: failed to load generator: unable to find plugin root - tried: ('<no value>'; homed in $KUSTOMIZE_PLUGIN_HOME), … [error] bootstrap: render failed for ciliumEvery addon that depends on
ciliumwas skipped.lo doctorin the same shell reported✓ KUSTOMIZE_PLUGIN_HOME=<project>/.kustomize.The cause: the binary set
KUSTOMIZE_PLUGIN_HOMEfor its bash children and for thelo buildrender, but not for the kustomize child of the addon render that bootstrap runs. The project.envrcexports the variable; a shell that exports onlyPATHdoes not. In that shell the child had no plugin home.The fix: one function decides the plugin home for every child of the binary. It returns the variable when the shell exports it, else
<project>/.kustomize. The addon render,lo build,lo k8s, the registry TLS mint, the bash shim andlo doctorall read that function.lo doctorcannot report a home that the render does not use.
Who is affected
A project that runs lo (core), or lo-full with LO_RENDER=exec, from a shell that does not export KUSTOMIZE_PLUGIN_HOME. The in-process render of lo-full reads no plugin home and was not affected. A shell that exports the variable was not affected.
Upgrade
- Install the binary:
bash lo-install.sh, or unpacklo-<os>-<arch>.tar.gz(lo-full-<os>-<arch>.tar.gzfor the in-process build) from the release. A project that pinslothroughlo toolchain installbumpsgithub.com/kernpilot/lok8sin.bin/b.yamltov0.4.1and runsb install. - Run
lo upagain. The addons that were skipped are applied.
Assets
The same set as v0.4.0: for linux and darwin, amd64 and arm64, lo-<os>-<arch>.tar.gz, lo-full-<os>-<arch>.tar.gz, kustomize-secret-<os>-<arch>, lochat-<os>-<arch>, plus lok8s-v0.4.1.tar.gz (the framework tree), lo-install.sh and checksums.txt.