From 2d58875b7c3285f4661afdc557716f735d6e2b38 Mon Sep 17 00:00:00 2001 From: Puskar Basu Date: Tue, 8 Sep 2026 11:19:53 +0530 Subject: [PATCH] OKD-443: Fix pre-OSImageStreams node OS validation for OKD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The validatePreOSImageStreamsNodeOS function hardcoded a check for "CoreOS 9." which is correct for OCP but wrong for OKD, which was already using CoreOS 10 in pre-OSImageStreams versions like 4.22. This caused the "prow job name should match os version" test to fail during 4.22→5.0 OKD upgrades: the test correctly identified the cluster as pre-OSImageStreams (< 4.23) but then failed because the nodes were running CentOS Stream CoreOS 10, not CoreOS 9. Make validatePreOSImageStreamsNodeOS OKD-aware by accepting an isOKD parameter and checking CoreOS 10 for OKD clusters. OCP behavior is unchanged. --- test/extended/ci/job_names.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/test/extended/ci/job_names.go b/test/extended/ci/job_names.go index 91c3b8405149..ddc070fc4b47 100644 --- a/test/extended/ci/job_names.go +++ b/test/extended/ci/job_names.go @@ -196,14 +196,20 @@ var _ = g.Describe("[sig-ci] [Early] prow job name", func() { }) }) -func validatePreOSImageStreamsNodeOS(coreClient kclientset.Interface) { - // In clusters with no OSImageStreams the nodes should be always RHEL 9 +func validatePreOSImageStreamsNodeOS(coreClient kclientset.Interface, isOKD bool) { + // In clusters with no OSImageStreams the nodes should be RHEL 9 (OCP) or CentOS 10 (OKD) nodes, err := coreClient.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{}) o.Expect(err).NotTo(o.HaveOccurred(), "Error listing nodes") + targetVersion := 9 + if isOKD { + // OKD was already using CoreOS 10 in pre-OSImageStreams versions like 4.22 + targetVersion = 10 + } + for _, node := range nodes.Items { osImage := node.Status.NodeInfo.OSImage - o.Expect(osImage).To(o.ContainSubstring("CoreOS 9."), "Pre OS Image Stream cluster should use RHEL 9 nodes") + o.Expect(osImage).To(o.ContainSubstring(fmt.Sprintf("CoreOS %d.", targetVersion)), "Pre OS Image Stream cluster should use CoreOS %d nodes", targetVersion) } } @@ -307,8 +313,8 @@ func validateStandaloneNodeOS(oc *exutil.CLI, jobName, rawJobName string) { clusterSemver, err := utilversion.ParseGeneric(clusterVersion.Status.Desired.Version) o.Expect(err).NotTo(o.HaveOccurred(), "Error parsing ClusterVersion desired version %v", err) if clusterSemver.LessThan(utilversion.MustParseSemantic("4.23.0")) { - // Pre-OS Image Streams GA. OS was always RHEL 9 - validatePreOSImageStreamsNodeOS(oc.AdminKubeClient()) + // Pre-OS Image Streams GA. OS was always RHEL 9 (OCP) or CentOS 10 (OKD) + validatePreOSImageStreamsNodeOS(oc.AdminKubeClient(), isOKD) // Return now, the rest of the test is based on the presence of OSImageStream return }