OKD-418: Prevent cross-version package contamination in SCOS 5.0 builds - #1953
OKD-418: Prevent cross-version package contamination in SCOS 5.0 builds#1953pskrbasu wants to merge 1 commit into
Conversation
The CentOS SIG okd-5.0 repo on mirror.stream.centos.org contains 4.22/el9 packages (kubelet, openshift-clients) alongside the correct 5.0/el10s packages. This causes dnf to install el9 binaries into the CentOS 10 SCOS image, resulting in kubelet version skew (k8s 1.35 vs 1.36) and 5 consecutive rejected OKD SCOS 5.0 nightly payloads since July 24. Two defensive fixes: - c10s.repo: Exclude el9 packages from the SIG Cloud OKD repo. A CentOS 10 image must never install el9 binaries regardless of what the upstream repo contains. - build-node-image.sh: Pin openshift-clients and openshift-kubelet to >= OPENSHIFT_VERSION (5.0) so dnf refuses to install 4.22 packages even if they were rebuilt for el10. Note: cri-o uses a different versioning scheme (1.36 for OKD 5.0) and cannot be pinned this way. The cri-o downgrade (1.36.2 to 1.35.5, both el10s) requires the upstream CBS tag to be cleaned by the CentOS SIG Cloud maintainers.
|
@pskrbasu: This pull request references OKD-418 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the sub-task to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: pskrbasu The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
@angelcerveraroldan / @gursewak1997 Could you help me out with what is required to get these CI checks passing? The failures do not look as if they were caused by the changes in this PR: |
|
Yes, the issue is unrelated to this PR. Will look into it. |
|
I think that #1952 and coreos/rhel-coreos-config#296 should help this issues from happening again |
|
@angelcerveraroldan So I would need to retest after those PRs get merged? |
|
@pskrbasu Those PRs should fix the issue. I am also trying to build a new image with that issue fixed, so the test may start passing before those PRs come through. I'll update this thread once the image is built / released. |
|
/retest |
|
@pskrbasu: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary
The CentOS SIG
okd-5.0repo onmirror.stream.centos.orgcontains 4.22/el9 packages (kubelet, openshift-clients) alongside the correct 5.0/el10s packages. This causes dnf to install el9 binaries into the CentOS 10 SCOS image, producing kubelet version skew (k8s 1.35 vs 1.36) and 5+ consecutive rejected OKD SCOS 5.0 nightly payloads since July 24.Affected packages in the failing payloads:
openshift-kubelet: 5.0.0 (el10) → 4.22.0 (el9)openshift-clients: 5.0.0 (el10) → 4.22.0 (el9)cri-o: 1.36.2 (el10s) → 1.35.5 (el10s) — not addressed by this PR (see below)cri-tools: 1.36.0 → 1.35.0Two defensive fixes:
c10s.repo: Exclude el9 packages from the SIG Cloud OKD repo. A CentOS 10 image must never install el9 binaries regardless of upstream repo contents.build-node-image.sh: Pinopenshift-clientsandopenshift-kubeletto>= $OPENSHIFT_VERSION(5.0) so dnf refuses to install 4.22 packages even if rebuilt for el10.What this does NOT fix
The cri-o downgrade (1.36.2 → 1.35.5, both el10s) cannot be fixed defensively here — cri-o uses a different versioning scheme (1.36 for OKD 5.0) with no derivable relationship to
OPENSHIFT_VERSION. The upstream CBS tag for theokd-5.0repo needs to be cleaned by the CentOS SIG Cloud maintainers to remove the 4.22 cri-o builds.Jira