Skip to content

Commit ff6f2ef

Browse files
Merge pull request #30967 from BhargaviGudi/OCPBUGS-81737
OCPBUGS-81737: Dynamically find worker-generated-kubelet MC name to support different platforms
2 parents ef03fa8 + b44c843 commit ff6f2ef

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

test/extended/node/node_swap.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ import (
2323
exutil "github.com/openshift/origin/test/extended/util"
2424
)
2525

26-
const (
27-
workerGeneratedKubeletMC = "99-worker-generated-kubelet"
28-
)
29-
3026
var _ = g.Describe("[Jira:Node][sig-node] Node non-cnv swap configuration", func() {
3127
defer g.GinkgoRecover()
3228

@@ -117,10 +113,10 @@ var _ = g.Describe("[Jira:Node][sig-node] Node non-cnv swap configuration", func
117113

118114
g.By("Getting initial machine config resourceVersion")
119115
// Get the initial resourceVersion of the worker machine config before creating KubeletConfig
120-
workerMC, err := mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
121-
o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get initial machine config %s", workerGeneratedKubeletMC)
122-
initialResourceVersion := workerMC.ResourceVersion
123-
framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC, initialResourceVersion)
116+
workerGeneratedKubeletMC, err := getWorkerGeneratedKubeletMC(ctx, mcClient)
117+
o.Expect(err).NotTo(o.HaveOccurred(), "Failed to find worker-generated-kubelet MachineConfig")
118+
initialResourceVersion := workerGeneratedKubeletMC.ResourceVersion
119+
framework.Logf("Initial %s resourceVersion: %s", workerGeneratedKubeletMC.Name, initialResourceVersion)
124120

125121
g.By("Creating a KubeletConfig with swap settings")
126122
kcName := fmt.Sprintf("test-swap-override-%d", time.Now().UnixNano())
@@ -187,10 +183,10 @@ var _ = g.Describe("[Jira:Node][sig-node] Node non-cnv swap configuration", func
187183
time.Sleep(5 * time.Second)
188184

189185
// Check if the machine config was created or updated (compare to initial resourceVersion captured earlier)
190-
workerMC, err = mcClient.MachineconfigurationV1().MachineConfigs().Get(ctx, workerGeneratedKubeletMC, metav1.GetOptions{})
191-
o.Expect(err).NotTo(o.HaveOccurred(), "Failed to get machine config %s for verification", workerGeneratedKubeletMC)
192-
o.Expect(workerMC.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerGeneratedKubeletMC)
193-
framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerGeneratedKubeletMC, workerMC.ResourceVersion)
186+
workerMCAfter, err := getWorkerGeneratedKubeletMC(ctx, mcClient)
187+
o.Expect(err).NotTo(o.HaveOccurred(), "Failed to find worker-generated-kubelet MachineConfig for verification")
188+
o.Expect(workerMCAfter.ResourceVersion).To(o.Equal(initialResourceVersion), "Machine config %s should not be updated when failSwapOn is rejected", workerMCAfter.Name)
189+
framework.Logf("Verified: %s was not updated (resourceVersion: %s)", workerMCAfter.Name, workerMCAfter.ResourceVersion)
194190

195191
g.By("Verifying worker nodes still have correct swap settings")
196192
allWorkerNodes, err := getNodesByLabel(ctx, oc, "node-role.kubernetes.io/worker")

test/extended/node/node_utils.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020

2121
o "github.com/onsi/gomega"
2222

23+
machineconfigv1 "github.com/openshift/api/machineconfiguration/v1"
2324
machineconfigclient "github.com/openshift/client-go/machineconfiguration/clientset/versioned"
2425
exutil "github.com/openshift/origin/test/extended/util"
2526
)
@@ -523,6 +524,30 @@ func waitForMCP(ctx context.Context, mcClient *machineconfigclient.Clientset, po
523524
})
524525
}
525526

527+
// getWorkerGeneratedKubeletMC finds and returns the highest numbered worker-generated-kubelet MachineConfig.
528+
// KubeletConfig changes affect the highest numbered config, so we return that one.
529+
func getWorkerGeneratedKubeletMC(ctx context.Context, mcClient *machineconfigclient.Clientset) (*machineconfigv1.MachineConfig, error) {
530+
mcList, err := mcClient.MachineconfigurationV1().MachineConfigs().List(ctx, metav1.ListOptions{})
531+
if err != nil {
532+
return nil, err
533+
}
534+
535+
var highestMC *machineconfigv1.MachineConfig
536+
for i := range mcList.Items {
537+
if strings.Contains(mcList.Items[i].Name, "worker-generated-kubelet") {
538+
if highestMC == nil || mcList.Items[i].Name > highestMC.Name {
539+
highestMC = &mcList.Items[i]
540+
}
541+
}
542+
}
543+
544+
if highestMC == nil {
545+
return nil, fmt.Errorf("worker-generated-kubelet MachineConfig not found")
546+
}
547+
548+
return highestMC, nil
549+
}
550+
526551
// labelWorkerNodesForCNV labels all worker nodes with kubevirt.io/schedulable=true
527552
func labelWorkerNodesForCNV(ctx context.Context, oc *exutil.CLI) error {
528553
framework.Logf("Labeling worker nodes for CNV...")

0 commit comments

Comments
 (0)