fix: preload correct rke2 airgap images to break CNI bootstrap deadlock #512
Reference in New Issue
Block a user
Delete Branch "benvin/rke2-airgap-images"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Four newly-provisioned el9_8 compute nodes (prodnxsr0014/0015/0018/0019) hang with canal's kube-flannel container in
ImagePullBackOff: the flannel VXLAN overlay never comes up, so the node can't reach any in-cluster198.18.200.xLoadBalancer VIP.Root cause is a stale airgap-preload version. The nodes boot rke2 v1.33.11+rke2r1 from the rolling
latest/1.33repo, whose canal manifest requestshardened-flannel:v0.28.4/hardened-calico:v3.31.5(build20260415). Butrke2::installpinned the preloaded bundle to v1.33.4+rke2r1 (flannel v0.27.2 / calico v3.30.2), so those images were never on disk. containerd then falls back to thedocker.iomirror (artifactapi,disable-default-registry-endpoint: true), reachable only via the pod-overlay VIP that requires the very flannel image being pulled — a bootstrap deadlock. Older nodes (0001-0008) are versionlocked at 1.33.4 and still match their original bundle, so they were unaffected.Changes
rke2_version1.33.4->1.33.11so the versionlock, RPMensure, and preloaded bundle all line up with the canal image tags the running binary requests. The defaultrke2-images.linux-amd64.tar.zstbundle already contains the canal CNI images (it is RKE2's default CNI), so no extra tarball is needed.sourceto thecontainer_archive_sourceclass parameter (previously declared in the module but never consumed). The module keeps its generic upstream default; the artifactapi override (the pre-CNI-reachable source, same BGP/physical path the rke2 yum repos already use) lives in the k8s role hiera asrke2::container_archive_source.Applies to servers and agents alike (
rke2::installruns for both) and preloadsbefore => Service, so the bundle lands before rke2 starts.Notes:
latest/1.33repo is rolling, so the pinned version must be maintained as the repo advances; a follow-up to pin the yum channel to a fixed patch would remove the drift entirely.rancher/rke2/.*/rke2-images-canal.linux-amd64.tar.zst$added — but the default bundle already carries those images, so it is unnecessary.)https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT
408b363e05toc39caeb8bb