fix: lock rke2-common and pin rke2 to 1.33.13~rke2r2 to unblock puppet #516

Merged
benvin merged 1 commits from benvin/rke2-common-versionlock-drift into develop 2026-08-08 23:13:40 +10:00
Owner

Why

Every puppet run on k8s nodes (e.g. prodnxsr0002) fails on Package[rke2-server] and stops applying the rest of the catalog, so the nodes stop receiving all further package/config updates:

change from '1.33.4~rke2r1-1.el9' to '1.33.11~rke2r1' failed: Could not update:
dnf upgrade rke2-server-1.33.11~rke2r1 returned 1:
 Problem: problem with installed package rke2-common-1.33.13~rke2r2-0.el9.x86_64
  - package rke2-server-1.33.11~rke2r1 requires rke2-common = 1.33.11~rke2r1, but none of the providers can be installed
  - cannot install the best update candidate for package rke2-server

rke2::install versionlocks only rke2-server/rke2-agent, never their strict (= version) rke2-common dependency. rke2-common is served from the rolling rancher-rke2-1.33-latest channel, whose head is now 1.33.13~rke2r2, so rke2-common drifted up to 1.33.13~rke2r2 while the pin (#512) sat at 1.33.11~rke2r1. dnf upgrade cannot downgrade the newer rke2-common to satisfy the older server, so the transaction fails. This is the rolling-channel drift #512 flagged as needing follow-up.

How

  • Versionlock rke2-common to the same ${rke2_version}~${rke2_release} as the server/agent, so the rolling channel can no longer drift the dependency ahead of the pin.
  • Bump rke2_version 1.33.11 -> 1.33.13 and rke2_release rke2r1 -> rke2r2 to match the current channel head and the already-drifted installed rke2-common, so the pinned server/agent, both versionlocks, and the preloaded airgap bundle resolve in one transaction.

Verified against the live artifactapi rke2 remote: rke2-server-1.33.13~rke2r2-0.el9.x86_64.rpm and the v1.33.13+rke2r2 rke2-images.linux-amd64.tar.zst airgap bundle both serve HTTP 200.

## Why Every puppet run on k8s nodes (e.g. prodnxsr0002) fails on `Package[rke2-server]` and stops applying the rest of the catalog, so the nodes stop receiving all further package/config updates: ``` change from '1.33.4~rke2r1-1.el9' to '1.33.11~rke2r1' failed: Could not update: dnf upgrade rke2-server-1.33.11~rke2r1 returned 1: Problem: problem with installed package rke2-common-1.33.13~rke2r2-0.el9.x86_64 - package rke2-server-1.33.11~rke2r1 requires rke2-common = 1.33.11~rke2r1, but none of the providers can be installed - cannot install the best update candidate for package rke2-server ``` `rke2::install` versionlocks only `rke2-server`/`rke2-agent`, never their strict (`= version`) `rke2-common` dependency. `rke2-common` is served from the rolling `rancher-rke2-1.33-latest` channel, whose head is now `1.33.13~rke2r2`, so `rke2-common` drifted up to `1.33.13~rke2r2` while the pin (`#512`) sat at `1.33.11~rke2r1`. `dnf upgrade` cannot downgrade the newer `rke2-common` to satisfy the older server, so the transaction fails. This is the rolling-channel drift `#512` flagged as needing follow-up. ## How - Versionlock `rke2-common` to the same `${rke2_version}~${rke2_release}` as the server/agent, so the rolling channel can no longer drift the dependency ahead of the pin. - Bump `rke2_version` `1.33.11` -> `1.33.13` and `rke2_release` `rke2r1` -> `rke2r2` to match the current channel head and the already-drifted installed `rke2-common`, so the pinned server/agent, both versionlocks, and the preloaded airgap bundle resolve in one transaction. Verified against the live artifactapi rke2 remote: `rke2-server-1.33.13~rke2r2-0.el9.x86_64.rpm` and the `v1.33.13+rke2r2` `rke2-images.linux-amd64.tar.zst` airgap bundle both serve HTTP 200.
unkinben added 1 commit 2026-08-08 22:45:28 +10:00
fix: lock rke2-common and pin rke2 to 1.33.13~rke2r2 to unblock puppet
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
7eee7e7415
## Why

k8s nodes fail every puppet run on Package[rke2-server] and stop
applying the rest of their catalog (no further package/config updates):

  change from '1.33.4~rke2r1-1.el9' to '1.33.11~rke2r1' failed:
  dnf upgrade rke2-server-1.33.11~rke2r1 returned 1:
  Problem: problem with installed package rke2-common-1.33.13~rke2r2-0.el9
   - package rke2-server-1.33.11~rke2r1 requires rke2-common = 1.33.11~rke2r1,
     but none of the providers can be installed
   - cannot install the best update candidate for rke2-server

The module versionlocks only rke2-server/rke2-agent, not their strict
(= version) rke2-common dependency. rke2-common is pulled from the
rolling rancher-rke2-1.33-latest channel, whose head is now
1.33.13~rke2r2, so rke2-common drifted up to 1.33.13~rke2r2 while the
pin sat at 1.33.11~rke2r1. dnf upgrade can't downgrade the newer
rke2-common to satisfy the older server, so the transaction fails.

## Changes

- Versionlock rke2-common to the same ${rke2_version}~${rke2_release} as
  the server/agent, so the rolling channel can no longer drift the
  dependency ahead of the pin.
- Bump rke2_version 1.33.11 -> 1.33.13 and rke2_release rke2r1 -> rke2r2
  to match the current channel head (and the already-drifted installed
  rke2-common), so the pinned server/agent, versionlocks, and preloaded
  airgap bundle all resolve in one transaction.
benvin merged commit ff1a30823c into develop 2026-08-08 23:13:40 +10:00
benvin deleted branch benvin/rke2-common-versionlock-drift 2026-08-08 23:13:41 +10:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/puppet-prod#516