Skip to content

Commit 952d6e2

Browse files
authored
Merge pull request #8537 from elmiko/refactor-clusterapi-tests-2
CA add TestMachineController interface to clusterapi
2 parents 902e6ea + 79aa75b commit 952d6e2

File tree

5 files changed

+301
-258
lines changed

5 files changed

+301
-258
lines changed

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go

Lines changed: 73 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ func TestControllerFindMachine(t *testing.T) {
6363
}}
6464

6565
test := func(t *testing.T, tc testCase, testConfig *TestConfig) {
66-
controller, stop := mustCreateTestController(t, testConfig)
67-
defer stop()
66+
controller := NewTestMachineController(t)
67+
defer controller.Stop()
68+
controller.AddTestConfigs(testConfig)
6869

6970
machine, err := controller.findMachine(path.Join(tc.namespace, tc.name))
7071
if err != nil {
@@ -128,8 +129,9 @@ func TestControllerFindMachineOwner(t *testing.T) {
128129
}).
129130
Build()
130131

131-
controller, stop := mustCreateTestController(t, testConfig)
132-
defer stop()
132+
controller := NewTestMachineController(t)
133+
defer controller.Stop()
134+
controller.AddTestConfigs(testConfig)
133135

134136
// Test #1: Lookup succeeds
135137
testResult1, err := controller.findMachineOwner(testConfig.machines[0].DeepCopy())
@@ -159,7 +161,7 @@ func TestControllerFindMachineOwner(t *testing.T) {
159161
}
160162

161163
// Test #3: Delete the MachineSet and lookup should fail
162-
if err := deleteResource(controller.managementClient, controller.machineSetInformer, controller.machineSetResource, testConfig.machineSet); err != nil {
164+
if err := controller.DeleteResource(controller.machineSetInformer, controller.machineSetResource, testConfig.machineSet); err != nil {
163165
t.Fatalf("unexpected error, got %v", err)
164166
}
165167
testResult3, err := controller.findMachineOwner(testConfig.machines[0].DeepCopy())
@@ -181,8 +183,9 @@ func TestControllerFindMachineByProviderID(t *testing.T) {
181183
}).
182184
Build()
183185

184-
controller, stop := mustCreateTestController(t, testConfig)
185-
defer stop()
186+
controller := NewTestMachineController(t)
187+
defer controller.Stop()
188+
controller.AddTestConfigs(testConfig)
186189

187190
// Remove all the "machine" annotation values on all the
188191
// nodes. We want to force findMachineByProviderID() to only
@@ -224,7 +227,7 @@ func TestControllerFindMachineByProviderID(t *testing.T) {
224227
t.Fatalf("unexpected error: %v", err)
225228
}
226229

227-
if err := updateResource(controller.managementClient, controller.machineInformer, controller.machineResource, machine); err != nil {
230+
if err := controller.UpdateResource(controller.machineInformer, controller.machineResource, machine); err != nil {
228231
t.Fatalf("unexpected error updating machine, got %v", err)
229232
}
230233

@@ -247,8 +250,9 @@ func TestControllerFindNodeByNodeName(t *testing.T) {
247250
}).
248251
Build()
249252

250-
controller, stop := mustCreateTestController(t, testConfig)
251-
defer stop()
253+
controller := NewTestMachineController(t)
254+
defer controller.Stop()
255+
controller.AddTestConfigs(testConfig)
252256

253257
// Test #1: Verify known node can be found
254258
node, err := controller.findNodeByNodeName(testConfig.nodes[0].Name)
@@ -271,10 +275,11 @@ func TestControllerFindNodeByNodeName(t *testing.T) {
271275

272276
func TestControllerListMachinesForScalableResource(t *testing.T) {
273277
test := func(t *testing.T, testConfig1 *TestConfig, testConfig2 *TestConfig) {
274-
controller, stop := mustCreateTestController(t, testConfig1)
275-
defer stop()
278+
controller := NewTestMachineController(t)
279+
defer controller.Stop()
280+
controller.AddTestConfigs(testConfig1)
276281

277-
if err := addTestConfigs(t, controller, testConfig2); err != nil {
282+
if err := controller.AddTestConfigs(testConfig2); err != nil {
278283
t.Fatalf("unexpected error: %v", err)
279284
}
280285

@@ -406,8 +411,9 @@ func TestControllerListMachinesForScalableResource(t *testing.T) {
406411

407412
func TestControllerLookupNodeGroupForNonExistentNode(t *testing.T) {
408413
test := func(t *testing.T, testConfig *TestConfig) {
409-
controller, stop := mustCreateTestController(t, testConfig)
410-
defer stop()
414+
controller := NewTestMachineController(t)
415+
defer controller.Stop()
416+
controller.AddTestConfigs(testConfig)
411417

412418
node := testConfig.nodes[0].DeepCopy()
413419
node.Spec.ProviderID = "does-not-exist"
@@ -452,13 +458,14 @@ func TestControllerLookupNodeGroupForNonExistentNode(t *testing.T) {
452458

453459
func TestControllerNodeGroupForNodeWithMissingMachineOwner(t *testing.T) {
454460
test := func(t *testing.T, testConfig *TestConfig) {
455-
controller, stop := mustCreateTestController(t, testConfig)
456-
defer stop()
461+
controller := NewTestMachineController(t)
462+
defer controller.Stop()
463+
controller.AddTestConfigs(testConfig)
457464

458465
machine := testConfig.machines[0].DeepCopy()
459466
machine.SetOwnerReferences([]metav1.OwnerReference{})
460467

461-
if err := updateResource(controller.managementClient, controller.machineInformer, controller.machineResource, machine); err != nil {
468+
if err := controller.UpdateResource(controller.machineInformer, controller.machineResource, machine); err != nil {
462469
t.Fatalf("unexpected error updating machine, got %v", err)
463470
}
464471

@@ -507,13 +514,14 @@ func TestControllerNodeGroupForNodeWithMissingSetMachineOwner(t *testing.T) {
507514
}).
508515
Build()
509516

510-
controller, stop := mustCreateTestController(t, testConfig)
511-
defer stop()
517+
controller := NewTestMachineController(t)
518+
defer controller.Stop()
519+
controller.AddTestConfigs(testConfig)
512520

513521
machineSet := testConfig.machineSet.DeepCopy()
514522
machineSet.SetOwnerReferences([]metav1.OwnerReference{})
515523

516-
if err := updateResource(controller.managementClient, controller.machineSetInformer, controller.machineSetResource, machineSet); err != nil {
524+
if err := controller.UpdateResource(controller.machineSetInformer, controller.machineSetResource, machineSet); err != nil {
517525
t.Fatalf("unexpected error updating machine, got %v", err)
518526
}
519527

@@ -529,8 +537,9 @@ func TestControllerNodeGroupForNodeWithMissingSetMachineOwner(t *testing.T) {
529537

530538
func TestControllerNodeGroupForNodeWithPositiveScalingBounds(t *testing.T) {
531539
test := func(t *testing.T, testConfig *TestConfig) {
532-
controller, stop := mustCreateTestController(t, testConfig)
533-
defer stop()
540+
controller := NewTestMachineController(t)
541+
defer controller.Stop()
542+
controller.AddTestConfigs(testConfig)
534543

535544
ng, err := controller.nodeGroupForNode(testConfig.nodes[0])
536545
if err != nil {
@@ -568,7 +577,7 @@ func TestControllerNodeGroupForNodeWithPositiveScalingBounds(t *testing.T) {
568577
}
569578

570579
func TestControllerNodeGroups(t *testing.T) {
571-
assertNodegroupLen := func(t *testing.T, controller *machineController, expected int) {
580+
assertNodegroupLen := func(t *testing.T, controller *testMachineController, expected int) {
572581
t.Helper()
573582
nodegroups, err := controller.nodeGroups()
574583
if err != nil {
@@ -584,8 +593,8 @@ func TestControllerNodeGroups(t *testing.T) {
584593
nodeGroupMaxSizeAnnotationKey: "2",
585594
}
586595

587-
controller, stop := mustCreateTestController(t)
588-
defer stop()
596+
controller := NewTestMachineController(t)
597+
defer controller.Stop()
589598

590599
namespace := RandomString(6)
591600
clusterName := RandomString(6)
@@ -601,7 +610,7 @@ func TestControllerNodeGroups(t *testing.T) {
601610
WithNodeCount(1).
602611
WithAnnotations(annotations).
603612
BuildMultiple(5)
604-
if err := addTestConfigs(t, controller, machineSetConfigs...); err != nil {
613+
if err := controller.AddTestConfigs(machineSetConfigs...); err != nil {
605614
t.Fatalf("unexpected error: %v", err)
606615
}
607616
assertNodegroupLen(t, controller, 5)
@@ -614,19 +623,19 @@ func TestControllerNodeGroups(t *testing.T) {
614623
WithNodeCount(1).
615624
WithAnnotations(annotations).
616625
BuildMultiple(2)
617-
if err := addTestConfigs(t, controller, machineDeploymentConfigs...); err != nil {
626+
if err := controller.AddTestConfigs(machineDeploymentConfigs...); err != nil {
618627
t.Fatalf("unexpected error: %v", err)
619628
}
620629
assertNodegroupLen(t, controller, 7)
621630

622631
// Test #3: delete 5 machineset-backed objects
623-
if err := deleteTestConfigs(t, controller, machineSetConfigs...); err != nil {
632+
if err := controller.DeleteTestConfigs(machineSetConfigs...); err != nil {
624633
t.Fatalf("unexpected error: %v", err)
625634
}
626635
assertNodegroupLen(t, controller, 2)
627636

628637
// Test #4: delete 2 machinedeployment-backed objects
629-
if err := deleteTestConfigs(t, controller, machineDeploymentConfigs...); err != nil {
638+
if err := controller.DeleteTestConfigs(machineDeploymentConfigs...); err != nil {
630639
t.Fatalf("unexpected error: %v", err)
631640
}
632641
assertNodegroupLen(t, controller, 0)
@@ -644,7 +653,7 @@ func TestControllerNodeGroups(t *testing.T) {
644653
WithNodeCount(1).
645654
WithAnnotations(annotations).
646655
BuildMultiple(5)
647-
if err := addTestConfigs(t, controller, machineSetConfigs...); err != nil {
656+
if err := controller.AddTestConfigs(machineSetConfigs...); err != nil {
648657
t.Fatalf("unexpected error: %v", err)
649658
}
650659
assertNodegroupLen(t, controller, 5)
@@ -657,7 +666,7 @@ func TestControllerNodeGroups(t *testing.T) {
657666
WithNodeCount(1).
658667
WithAnnotations(annotations).
659668
BuildMultiple(2)
660-
if err := addTestConfigs(t, controller, machineDeploymentConfigs...); err != nil {
669+
if err := controller.AddTestConfigs(machineDeploymentConfigs...); err != nil {
661670
t.Fatalf("unexpected error: %v", err)
662671
}
663672
assertNodegroupLen(t, controller, 7)
@@ -675,7 +684,7 @@ func TestControllerNodeGroups(t *testing.T) {
675684
WithNodeCount(5).
676685
WithAnnotations(annotations).
677686
BuildMultiple(1)
678-
if err := addTestConfigs(t, controller, machineSetConfigs...); err != nil {
687+
if err := controller.AddTestConfigs(machineSetConfigs...); err != nil {
679688
t.Fatalf("unexpected error: %v", err)
680689
}
681690
if _, err := controller.nodeGroups(); err == nil {
@@ -690,7 +699,7 @@ func TestControllerNodeGroups(t *testing.T) {
690699
WithNodeCount(2).
691700
WithAnnotations(annotations).
692701
BuildMultiple(1)
693-
if err := addTestConfigs(t, controller, machineDeploymentConfigs...); err != nil {
702+
if err := controller.AddTestConfigs(machineDeploymentConfigs...); err != nil {
694703
t.Fatalf("unexpected error: %v", err)
695704
}
696705
if _, err := controller.nodeGroups(); err == nil {
@@ -724,8 +733,9 @@ func TestControllerNodeGroupsNodeCount(t *testing.T) {
724733
}}
725734

726735
test := func(t *testing.T, tc testCase, testConfigs []*TestConfig) {
727-
controller, stop := mustCreateTestController(t, testConfigs...)
728-
defer stop()
736+
controller := NewTestMachineController(t)
737+
defer controller.Stop()
738+
controller.AddTestConfigs(testConfigs...)
729739

730740
nodegroups, err := controller.nodeGroups()
731741
if err != nil {
@@ -784,16 +794,17 @@ func TestControllerFindMachineFromNodeAnnotation(t *testing.T) {
784794
}).
785795
Build()
786796

787-
controller, stop := mustCreateTestController(t, testConfig)
788-
defer stop()
797+
controller := NewTestMachineController(t)
798+
defer controller.Stop()
799+
controller.AddTestConfigs(testConfig)
789800

790801
// Remove all the provider ID values on all the machines. We
791802
// want to force findMachineByProviderID() to fallback to
792803
// searching using the annotation on the node object.
793804
for _, machine := range testConfig.machines {
794805
unstructured.RemoveNestedField(machine.Object, "spec", "providerID")
795806

796-
if err := updateResource(controller.managementClient, controller.machineInformer, controller.machineResource, machine); err != nil {
807+
if err := controller.UpdateResource(controller.machineInformer, controller.machineResource, machine); err != nil {
797808
t.Fatalf("unexpected error updating machine, got %v", err)
798809
}
799810
}
@@ -836,8 +847,9 @@ func TestControllerMachineSetNodeNamesWithoutLinkage(t *testing.T) {
836847
}).
837848
Build()
838849

839-
controller, stop := mustCreateTestController(t, testConfig)
840-
defer stop()
850+
controller := NewTestMachineController(t)
851+
defer controller.Stop()
852+
controller.AddTestConfigs(testConfig)
841853

842854
// Remove all linkage between node and machine.
843855
for i := range testConfig.machines {
@@ -846,7 +858,7 @@ func TestControllerMachineSetNodeNamesWithoutLinkage(t *testing.T) {
846858
unstructured.RemoveNestedField(machine.Object, "spec", "providerID")
847859
unstructured.RemoveNestedField(machine.Object, "status", "nodeRef")
848860

849-
if err := updateResource(controller.managementClient, controller.machineInformer, controller.machineResource, machine); err != nil {
861+
if err := controller.UpdateResource(controller.machineInformer, controller.machineResource, machine); err != nil {
850862
t.Fatalf("unexpected error updating machine, got %v", err)
851863
}
852864
}
@@ -889,8 +901,9 @@ func TestControllerMachineSetNodeNamesUsingProviderID(t *testing.T) {
889901
}).
890902
Build()
891903

892-
controller, stop := mustCreateTestController(t, testConfig)
893-
defer stop()
904+
controller := NewTestMachineController(t)
905+
defer controller.Stop()
906+
controller.AddTestConfigs(testConfig)
894907

895908
nodegroups, err := controller.nodeGroups()
896909
if err != nil {
@@ -932,8 +945,9 @@ func TestControllerMachineSetNodeNamesUsingStatusNodeRefName(t *testing.T) {
932945
}).
933946
Build()
934947

935-
controller, stop := mustCreateTestController(t, testConfig)
936-
defer stop()
948+
controller := NewTestMachineController(t)
949+
defer controller.Stop()
950+
controller.AddTestConfigs(testConfig)
937951

938952
// Remove all the provider ID values on all the machines. We
939953
// want to force machineSetNodeNames() to fallback to
@@ -943,7 +957,7 @@ func TestControllerMachineSetNodeNamesUsingStatusNodeRefName(t *testing.T) {
943957

944958
unstructured.RemoveNestedField(machine.Object, "spec", "providerID")
945959

946-
if err := updateResource(controller.managementClient, controller.machineInformer, controller.machineResource, machine); err != nil {
960+
if err := controller.UpdateResource(controller.machineInformer, controller.machineResource, machine); err != nil {
947961
t.Fatalf("unexpected error updating machine, got %v", err)
948962
}
949963
}
@@ -1034,8 +1048,9 @@ func TestControllerGetAPIVersionGroupWithMachineDeployments(t *testing.T) {
10341048
machine.SetAPIVersion(fmt.Sprintf("%s/v1beta1", customCAPIGroup))
10351049
}
10361050

1037-
controller, stop := mustCreateTestController(t, testConfig)
1038-
defer stop()
1051+
controller := NewTestMachineController(t)
1052+
defer controller.Stop()
1053+
controller.AddTestConfigs(testConfig)
10391054

10401055
machineDeployments, err := controller.managementClient.Resource(controller.machineDeploymentResource).Namespace(testConfig.spec.namespace).
10411056
List(context.TODO(), metav1.ListOptions{})
@@ -1440,8 +1455,9 @@ func Test_machineController_listScalableResources(t *testing.T) {
14401455
wantErr: false,
14411456
}} {
14421457
t.Run(tc.name, func(t *testing.T) {
1443-
c, stop := mustCreateTestController(t, allTestConfigs...)
1444-
defer stop()
1458+
c := NewTestMachineController(t)
1459+
defer c.Stop()
1460+
c.AddTestConfigs(allTestConfigs...)
14451461
c.autoDiscoverySpecs = tc.autoDiscoverySpecs
14461462

14471463
got, err := c.listScalableResources()
@@ -1554,8 +1570,9 @@ func Test_machineController_nodeGroupForNode(t *testing.T) {
15541570
wantErr: false,
15551571
}} {
15561572
t.Run(tc.name, func(t *testing.T) {
1557-
c, stop := mustCreateTestController(t, allTestConfigs...)
1558-
defer stop()
1573+
c := NewTestMachineController(t)
1574+
defer c.Stop()
1575+
c.AddTestConfigs(allTestConfigs...)
15591576
c.autoDiscoverySpecs = tc.autoDiscoverySpecs
15601577

15611578
got, err := c.nodeGroupForNode(tc.node)
@@ -1692,8 +1709,9 @@ func Test_machineController_nodeGroups(t *testing.T) {
16921709
wantErr: false,
16931710
}} {
16941711
t.Run(tc.name, func(t *testing.T) {
1695-
c, stop := mustCreateTestController(t, allTestConfigs...)
1696-
defer stop()
1712+
c := NewTestMachineController(t)
1713+
defer c.Stop()
1714+
c.AddTestConfigs(allTestConfigs...)
16971715
c.autoDiscoverySpecs = tc.autoDiscoverySpecs
16981716

16991717
got, err := c.nodeGroups()

0 commit comments

Comments
 (0)