Files
cozystack/api
Myasnikov Daniil 5b673ce7b5 feat(kubernetes-nodes): boot worker disks from a shared golden Talos image (CDI clone)
Rebase of #3294 onto main after the Phase 2 KubernetesNodes split (#3315).
The worker disk source and the in-guest installer pin move from
packages/apps/kubernetes to packages/apps/kubernetes-nodes, where the pool
objects now live; the per-node-group `nodeGroups.<name>.image` union becomes
the pool-level `image` value of the KubernetesNodes chart.

Adds packages/system/kubernetes-worker-image, an opt-in catalog that imports a
golden Talos worker image into cozy-public once per (schematicID, version). A
pool that sets image.builtin CDI-clones that golden instead of streaming the
raw image over HTTP per worker, which is the per-worker Image Factory
dependency behind the kubernetes-* node-join flake (#3231). image.factory
keeps the HTTP path and lets a pool point at its own mirror/schematic/version.
With `image` omitted the render is byte-identical to before -- the stored
render snapshot is unchanged, so existing workers do not roll on upgrade.

The e2e suites switch to the clone path: the per-worker talos-image-cache
mirror and its manifest, helper and tests are removed, the catalog is enabled
in the sandbox, and the run waits for the golden to import before creating the
tenant. The ghcr.io kubelet-image mirror is untouched and still spliced into
both tenant CRs.

Assisted-By: LLM
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
2026-09-02 12:18:59 +05:00
..