Docs drift: node images are now built automatically on tag, not manually
Background
The release pipeline was restructured (commit 9122218, "ci: build all node VM images on tag, gate the release on them") so that a tagged release builds all node VM images automatically and won't publish a Release unless they succeed (all-or-nothing). The docs still describe the old behaviour, where build-node-image was a manual, opt-in job you triggered once per Kubernetes version.
What's stale
-
docs/releasing.md— the "Node VM images in a release" section says images are not built automatically on tag and that you "trigger the manualbuild-node-imagejob once per Kubernetes version." That's no longer true. -
docs/guides/prebaked-images.md— the "Build an image" step says "In CI: trigger the manualbuild-node-imagejob." Also stale for the release path.
Current behaviour to document
- On a tag pipeline,
build-node-imageruns automatically and is required (allow_failure: false): it loops over theKUBERNETES_VERSIONSvariable (currentlyv1.30.14 v1.31.5) withNODE_IMAGE_OS_TARGET, builds each qcow2, and uploads them to thecapvco-images/<tag>/generic package. - The
releasejob attaches every image under…/releases/<tag>/downloads/images/<file>.qcow2alongside the bundle/templates/CLIs. If any image build fails, no Release is published. - To add/remove a shipped version, edit
KUBERNETES_VERSIONSin.gitlab-ci.yml(single source of truth; thereleasejob reconstructs the asset names from it). - On a branch pipeline,
build-node-imagestays a manual dev build that just produces the qcow2 artifacts (never on MR pipelines). - Note the practical cost: the two-image KVM build dominates the pipeline (~50 min for two versions), so a complete release takes ~1 hour.
Acceptance
docs/releasing.md and docs/guides/prebaked-images.md match the actual .gitlab-ci.yml behaviour above; mkdocs build --strict still passes.