new(k0sproject.io/k0s): zero-deps Kubernetes distribution#13137
new(k0sproject.io/k0s): zero-deps Kubernetes distribution#13137tannevaled wants to merge 2 commits into
Conversation
Add a recipe for k0s, k0sproject's single-binary CNCF Kubernetes distribution. Built from source via the upstream Makefile with EMBEDDED_BINS_BUILDMODE=none (pantry CI has no Docker daemon to run the Docker-driven build of embedded kubelet/etcd/containerd/runc/kine/ konnectivity components). VERSION is passed explicitly because the Makefile would otherwise call `git describe --tags`, which fails inside a tarball checkout. Restricted to linux/x86-64 and linux/aarch64; the upstream Makefile pins TARGET_OS=linux. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Iter 4 progress: version-parser fixed (`+k0s.N` strip in commit `c7ebc727`), but now blocked on Docker dependency for code generation. The recipe's earlier `EMBEDDED_BINS_BUILDMODE=none` correctly bypasses the Docker build for embedded kubelet/etcd/containerd/runc/kine/konnectivity components. However, k0s's Makefile ALSO uses a Docker image (`.k0sbuild.docker-image.k0s`) as the build host for code-generation steps (`controller-gen`, `client-gen`, `gen-bindata`). ``` Error 127 = command not found (`docker` is not in pantry's CI environment). What would unblock thisThree paths, none small:
RecommendationPark this PR with the current state (version-parser fix is documented and reusable). Same pattern as #13141 (open-vcdiff) and #13131 (Neon). The k0s server is a multi-component K8s distribution that genuinely needs orchestrated tooling — pantry's single-recipe model doesn't map. `k0sctl` (the cluster-launcher CLI) is already in pantry at `projects/github.com/k0sproject/k0sctl/` — that's the user-facing tool. Users wanting to RUN k0s on Linux nodes can install the upstream tarball directly via their distro or k0s's own installer script. Closing as wontfix if no maintainer objection. |
Summary
Adds a pantry recipe for k0s, k0sproject's single-binary CNCF-class Kubernetes distribution (sibling to the existing
k0sctlrecipe).EMBEDDED_BINS_BUILDMODE=noneskips the Docker-based build of embedded kubelet/etcd/containerd/runc/kine/konnectivity (pantry CI has no Docker daemon). The resultingk0sCLI still ships the full code, with third-party node binaries supplied out of band (e.g. airgap bundle).VERSIONis passed explicitly because the upstream Makefile usesgit describe --tags, which fails inside a tarball checkout.linux/x86-64andlinux/aarch64; the upstream Makefile pinsTARGET_OS=linuxand k0s is a Linux-node distribution.Test plan
k0s versionmatches the tagk0s --helpproduces help output