From 3911b677bd4deb34384fa4770db9259fcf24ed16 Mon Sep 17 00:00:00 2001 From: saza-ku Date: Sat, 10 May 2025 18:17:38 +0900 Subject: [PATCH 1/2] test: wait for nodes to be in scheduler's cache --- .../scheduler/scoring/priorities_test.go | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/test/integration/scheduler/scoring/priorities_test.go b/test/integration/scheduler/scoring/priorities_test.go index 5eef56d3931..4d90126f779 100644 --- a/test/integration/scheduler/scoring/priorities_test.go +++ b/test/integration/scheduler/scoring/priorities_test.go @@ -296,11 +296,6 @@ func TestNodeResourcesScoring(t *testing.T) { // works correctly. func TestNodeAffinityScoring(t *testing.T) { testCtx := initTestSchedulerForScoringTests(t, nodeaffinity.Name, nodeaffinity.Name) - // Add a few nodes. - _, err := createAndWaitForNodesInCache(testCtx, "testnode", st.MakeNode(), 4) - if err != nil { - t.Fatal(err) - } // Add a label to one of the nodes. labelKey := "kubernetes.io/node-topologyKey" labelValue := "topologyvalue" @@ -308,6 +303,11 @@ func TestNodeAffinityScoring(t *testing.T) { if err != nil { t.Fatalf("Cannot create labeled node: %v", err) } + // Add a few nodes. + _, err = createAndWaitForNodesInCache(testCtx, "testnode", st.MakeNode(), 4) + if err != nil { + t.Fatal(err) + } // Create a pod with node affinity. podName := "pod-with-node-affinity" @@ -744,6 +744,9 @@ func TestPodAffinityScoring(t *testing.T) { t.Fatalf("failed to create node: %v", err) } } + if err := testutils.WaitForNodesInCache(testCtx.Ctx, testCtx.Scheduler, len(tt.nodes)); err != nil { + t.Fatalf("failed to wait for nodes in cache: %v", err) + } for _, p := range tt.existingPods { if _, err := runPausePod(testCtx.ClientSet, initPausePod(p)); err != nil { @@ -838,6 +841,9 @@ func TestTaintTolerationScoring(t *testing.T) { t.Fatalf("Failed to create node: %v", err) } } + if err := testutils.WaitForNodesInCache(testCtx.Ctx, testCtx.Scheduler, len(tt.nodes)); err != nil { + t.Fatalf("Failed to wait for nodes in cache: %v", err) + } pod, err := runPausePod(testCtx.ClientSet, initPausePod(&testutils.PausePodConfig{ Name: fmt.Sprintf("test-pod-%v", i), Namespace: testCtx.NS.Name, @@ -1102,6 +1108,9 @@ func TestPodTopologySpreadScoring(t *testing.T) { t.Fatalf("Cannot create node: %v", err) } } + if err := testutils.WaitForNodesInCache(testCtx.Ctx, testCtx.Scheduler, len(tt.nodes)); err != nil { + t.Fatalf("Failed to wait for nodes in cache: %v", err) + } // set namespace to pods for i := range tt.existingPods { @@ -1149,9 +1158,10 @@ func TestDefaultPodTopologySpreadScoring(t *testing.T) { testCtx := initTestSchedulerForScoringTests(t, podtopologyspread.Name, podtopologyspread.Name) cs := testCtx.ClientSet ns := testCtx.NS.Name + nodeNum := 300 zoneForNode := make(map[string]string) - for i := 0; i < 300; i++ { + for i := 0; i < nodeNum; i++ { nodeName := fmt.Sprintf("node-%d", i) zone := fmt.Sprintf("zone-%d", i%3) zoneForNode[nodeName] = zone @@ -1160,6 +1170,9 @@ func TestDefaultPodTopologySpreadScoring(t *testing.T) { t.Fatalf("Cannot create node: %v", err) } } + if err := testutils.WaitForNodesInCache(testCtx.Ctx, testCtx.Scheduler, nodeNum); err != nil { + t.Fatalf("Failed to wait for nodes in cache: %v", err) + } serviceName := "test-service" svc := &v1.Service{ From e5f7fc25e7177311297faab15c049cdb3f01b6e9 Mon Sep 17 00:00:00 2001 From: saza-ku Date: Tue, 13 May 2025 16:18:19 +0900 Subject: [PATCH 2/2] TestNodeAffinityScoring: wait all nodes --- test/integration/scheduler/scoring/priorities_test.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test/integration/scheduler/scoring/priorities_test.go b/test/integration/scheduler/scoring/priorities_test.go index 4d90126f779..6cfe12cf14e 100644 --- a/test/integration/scheduler/scoring/priorities_test.go +++ b/test/integration/scheduler/scoring/priorities_test.go @@ -296,6 +296,11 @@ func TestNodeResourcesScoring(t *testing.T) { // works correctly. func TestNodeAffinityScoring(t *testing.T) { testCtx := initTestSchedulerForScoringTests(t, nodeaffinity.Name, nodeaffinity.Name) + // Add a few nodes. + _, err := createAndWaitForNodesInCache(testCtx, "testnode", st.MakeNode(), 4) + if err != nil { + t.Fatal(err) + } // Add a label to one of the nodes. labelKey := "kubernetes.io/node-topologyKey" labelValue := "topologyvalue" @@ -303,10 +308,8 @@ func TestNodeAffinityScoring(t *testing.T) { if err != nil { t.Fatalf("Cannot create labeled node: %v", err) } - // Add a few nodes. - _, err = createAndWaitForNodesInCache(testCtx, "testnode", st.MakeNode(), 4) - if err != nil { - t.Fatal(err) + if err = testutils.WaitForNodesInCache(testCtx.Ctx, testCtx.Scheduler, 5); err != nil { + t.Fatalf("failed to wait for nodes in cache: %v", err) } // Create a pod with node affinity.