Skip to content

A fix release for lo build. No new commands, no changed flags.

Fixed

  • lo build failed with split: failed to split <domain>/artifacts.yaml on every split-mode domain when the OS temp dir is on a different filesystem than the project. The split staged its files under $TMPDIR and moved them into clusters/<domain>/ with a rename, which fails across filesystems (EXDEV). The scratch dir now lives in the domain dir (.artifacts-tmp.*, removed on every exit), and a move that still crosses a device copies the file instead.

  • The split's failure messages name the cause: split: failed to split <artifact>: <error>.

Who is affected

Any project whose /tmp is a separate filesystem from the project tree: a tmpfs /tmp (Arch, Fedora and many CI runners; Debian and Ubuntu keep /tmp on disk) with the project on a disk, or a CI runner whose workspace is a mounted volume (the kubehz-cluster render.yml runners failed on every domain). A project on the same filesystem as /tmp, or a build with TMPDIR set to a directory on the project's filesystem, was not affected. The bash implementation was not affected: mv copies across devices.

Upgrade

Reinstall the binary: bash lo-install.sh, or unpack lo-<os>-<arch>.tar.gz (lo-full-<os>-<arch>.tar.gz for the in-process build) from the release. Nothing in the project changes. A project that pins lo through lo toolchain install bumps github.com/kernpilot/lok8s in .bin/b.yaml to v0.3.1 and runs b install.

Assets

The same set as v0.3.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.3.1.tar.gz (the framework tree), lo-install.sh and checksums.txt.

Released under the MIT License.