Skip to content

Commit 5cf18f0

Browse files
committed
fix machinepoolet flaky tests
1 parent 40eb0c7 commit 5cf18f0

4 files changed

Lines changed: 41 additions & 3 deletions

File tree

poollet/machinepoollet/controllers/machine_controller_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ var _ = Describe("MachineController", func() {
4444
},
4545
}
4646
Expect(k8sClient.Create(ctx, network)).To(Succeed())
47+
DeferCleanup(k8sClient.Delete, network)
4748

4849
By("patching the network to be available")
4950
Eventually(UpdateStatus(network, func() {
@@ -59,6 +60,7 @@ var _ = Describe("MachineController", func() {
5960
Spec: storagev1alpha1.VolumeSpec{},
6061
}
6162
Expect(k8sClient.Create(ctx, volume)).To(Succeed())
63+
DeferCleanup(k8sClient.Delete, volume)
6264

6365
By("patching the volume to be available")
6466
Eventually(UpdateStatus(volume, func() {
@@ -108,6 +110,7 @@ var _ = Describe("MachineController", func() {
108110
},
109111
}
110112
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
113+
DeferCleanup(k8sClient.Delete, machine)
111114

112115
By("waiting for the runtime to report the machine, volume and network interface")
113116
Eventually(srv).Should(SatisfyAll(
@@ -185,6 +188,7 @@ var _ = Describe("MachineController", func() {
185188
},
186189
}
187190
Expect(k8sClient.Create(ctx, network)).To(Succeed())
191+
DeferCleanup(k8sClient.Delete, network)
188192

189193
By("patching the network to be available")
190194
Eventually(UpdateStatus(network, func() {
@@ -205,6 +209,7 @@ var _ = Describe("MachineController", func() {
205209
},
206210
}
207211
Expect(k8sClient.Create(ctx, nic)).To(Succeed())
212+
DeferCleanup(k8sClient.Delete, nic)
208213

209214
By("creating a volume")
210215
volume := &storagev1alpha1.Volume{
@@ -215,6 +220,7 @@ var _ = Describe("MachineController", func() {
215220
Spec: storagev1alpha1.VolumeSpec{},
216221
}
217222
Expect(k8sClient.Create(ctx, volume)).To(Succeed())
223+
DeferCleanup(k8sClient.Delete, volume)
218224

219225
By("patching the volume to be available")
220226
Eventually(UpdateStatus(volume, func() {
@@ -257,6 +263,7 @@ var _ = Describe("MachineController", func() {
257263
},
258264
}
259265
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
266+
DeferCleanup(k8sClient.Delete, machine)
260267

261268
By("waiting for the runtime to report the machine, volume and network interface")
262269
Eventually(srv).Should(SatisfyAll(
@@ -342,6 +349,7 @@ var _ = Describe("MachineController", func() {
342349
},
343350
}
344351
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
352+
DeferCleanup(k8sClient.Delete, machine)
345353

346354
By("waiting for the machine to be created")
347355
Eventually(srv).Should(HaveField("Machines", HaveLen(1)))
@@ -372,6 +380,7 @@ var _ = Describe("MachineController", func() {
372380
},
373381
}
374382
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
383+
DeferCleanup(k8sClient.Delete, machine)
375384

376385
By("waiting for the machine to be created")
377386
Eventually(srv).Should(HaveField("Machines", HaveLen(1)))
@@ -424,6 +433,7 @@ var _ = Describe("MachineController", func() {
424433
},
425434
}
426435
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
436+
DeferCleanup(k8sClient.Delete, machine)
427437

428438
By("By getting ephimeral volume")
429439
volumeKey := types.NamespacedName{
@@ -499,6 +509,7 @@ var _ = Describe("MachineController", func() {
499509
},
500510
}
501511
Expect(k8sClient.Create(ctx, network)).To(Succeed())
512+
DeferCleanup(k8sClient.Delete, network)
502513

503514
By("patching the network to be available")
504515
Eventually(UpdateStatus(network, func() {
@@ -519,6 +530,7 @@ var _ = Describe("MachineController", func() {
519530
},
520531
}
521532
Expect(k8sClient.Create(ctx, nic)).To(Succeed())
533+
DeferCleanup(k8sClient.Delete, network)
522534

523535
By("creating a volume")
524536
volume := &storagev1alpha1.Volume{
@@ -529,6 +541,7 @@ var _ = Describe("MachineController", func() {
529541
Spec: storagev1alpha1.VolumeSpec{},
530542
}
531543
Expect(k8sClient.Create(ctx, volume)).To(Succeed())
544+
DeferCleanup(k8sClient.Delete, network)
532545

533546
By("patching the volume to be available")
534547
Eventually(UpdateStatus(volume, func() {
@@ -547,6 +560,7 @@ var _ = Describe("MachineController", func() {
547560
Spec: storagev1alpha1.VolumeSpec{},
548561
}
549562
Expect(k8sClient.Create(ctx, secondaryVolume)).To(Succeed())
563+
DeferCleanup(k8sClient.Delete, network)
550564

551565
By("patching the secondary volume to be available")
552566
Eventually(UpdateStatus(secondaryVolume, func() {
@@ -595,6 +609,7 @@ var _ = Describe("MachineController", func() {
595609
},
596610
}
597611
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
612+
DeferCleanup(k8sClient.Delete, network)
598613

599614
By("waiting for the runtime to report the machine, volume and network interface")
600615
Eventually(srv).Should(SatisfyAll(
@@ -650,6 +665,7 @@ var _ = Describe("MachineController", func() {
650665
Spec: storagev1alpha1.VolumeSpec{},
651666
}
652667
Expect(k8sClient.Create(ctx, volume)).To(Succeed())
668+
DeferCleanup(k8sClient.Delete, volume)
653669

654670
By("patching the volume to be available")
655671
Eventually(UpdateStatus(volume, func() {
@@ -684,6 +700,7 @@ var _ = Describe("MachineController", func() {
684700
},
685701
}
686702
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
703+
DeferCleanup(k8sClient.Delete, machine)
687704

688705
By("waiting for the runtime to report the machine with volume")
689706
Eventually(srv).Should(SatisfyAll(

poollet/machinepoollet/controllers/machinepool_controller_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ var _ = Describe("MachinePoolController", func() {
3636
},
3737
}
3838
Expect(k8sClient.Create(ctx, machineClass2)).To(Succeed(), "failed to create machine class")
39+
DeferCleanup(k8sClient.Delete, machineClass2)
3940

4041
srv.SetMachineClasses([]*testingmachine.FakeMachineClassStatus{
4142
{
@@ -71,7 +72,7 @@ var _ = Describe("MachinePoolController", func() {
7172
By("checking if the capacity is correct")
7273
Eventually(Object(machinePool)).Should(SatisfyAll(
7374
HaveField("Status.Capacity", Satisfy(func(capacity corev1alpha1.ResourceList) bool {
74-
return quota.Equals(capacity, corev1alpha1.ResourceList{
75+
return quota.Contains(capacity, corev1alpha1.ResourceList{
7576
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass.Name): *resource.NewQuantity(machineClassCapacity, resource.DecimalSI),
7677
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass2.Name): *resource.NewQuantity(machineClass2Capacity, resource.DecimalSI),
7778
})
@@ -94,11 +95,12 @@ var _ = Describe("MachinePoolController", func() {
9495
},
9596
}
9697
Expect(k8sClient.Create(ctx, machine)).To(Succeed(), "failed to create machine")
98+
DeferCleanup(k8sClient.Delete, machine)
9799

98100
By("checking if the allocatable resources are correct")
99101
Eventually(Object(machinePool)).Should(SatisfyAll(
100102
HaveField("Status.Allocatable", Satisfy(func(allocatable corev1alpha1.ResourceList) bool {
101-
return quota.Equals(allocatable, corev1alpha1.ResourceList{
103+
return quota.Contains(allocatable, corev1alpha1.ResourceList{
102104
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass.Name): *resource.NewQuantity(machineClassCapacity, resource.DecimalSI),
103105
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass2.Name): *resource.NewQuantity(machineClass2Capacity-1, resource.DecimalSI),
104106
})
@@ -121,11 +123,12 @@ var _ = Describe("MachinePoolController", func() {
121123
},
122124
}
123125
Expect(k8sClient.Create(ctx, machine2)).To(Succeed(), "failed to create test machine class")
126+
DeferCleanup(k8sClient.Delete, machine2)
124127

125128
By("checking if the allocatable resources are correct")
126129
Eventually(Object(machinePool)).Should(SatisfyAll(
127130
HaveField("Status.Allocatable", Satisfy(func(allocatable corev1alpha1.ResourceList) bool {
128-
return quota.Equals(allocatable, corev1alpha1.ResourceList{
131+
return quota.Contains(allocatable, corev1alpha1.ResourceList{
129132
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass.Name): *resource.NewQuantity(machineClassCapacity-1, resource.DecimalSI),
130133
corev1alpha1.ClassCountFor(corev1alpha1.ClassTypeMachineClass, machineClass2.Name): *resource.NewQuantity(machineClass2Capacity-1, resource.DecimalSI),
131134
})
@@ -148,6 +151,7 @@ var _ = Describe("MachinePoolController", func() {
148151
},
149152
}
150153
Expect(k8sClient.Create(ctx, machineClass)).To(Succeed(), "failed to create test machine class")
154+
DeferCleanup(k8sClient.Delete, machineClass)
151155

152156
srv.SetMachineClasses([]*testingmachine.FakeMachineClassStatus{
153157
{
@@ -186,6 +190,7 @@ var _ = Describe("MachinePoolController", func() {
186190
},
187191
}
188192
Expect(k8sClient.Create(ctx, machineClass2)).To(Succeed(), "failed to create test machine class")
193+
DeferCleanup(k8sClient.Delete, machineClass2)
189194

190195
Eventually(Object(machinePool)).Should(SatisfyAll(
191196
HaveField("Status.AvailableMachineClasses", HaveLen(1))),

poollet/machinepoollet/mem/mem_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ var _ = Describe("MachineEventMapper", func() {
111111
},
112112
}
113113
Expect(k8sClient.Create(ctx, machine)).To(Succeed())
114+
DeferCleanup(k8sClient.Delete, machine)
114115
By("waiting for the runtime to report the machine, volume and network interface")
115116
Eventually(srv).Should(SatisfyAll(
116117
HaveField("Machines", HaveLen(1)),

utils/quota/quota.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,21 @@ func Equals(a corev1alpha1.ResourceList, b corev1alpha1.ResourceList) bool {
3232
return true
3333
}
3434

35+
// Contains returns true if first list contains all of second list
36+
func Contains(a corev1alpha1.ResourceList, b corev1alpha1.ResourceList) bool {
37+
for key, value1 := range b {
38+
value2, found := a[key]
39+
if !found {
40+
return false
41+
}
42+
if value1.Cmp(value2) != 0 {
43+
return false
44+
}
45+
}
46+
47+
return true
48+
}
49+
3550
// LessThanOrEqual returns true if a < b for each key in b
3651
// If false, it returns the keys in a that exceeded b
3752
func LessThanOrEqual(a corev1alpha1.ResourceList, b corev1alpha1.ResourceList) (bool, sets.Set[corev1alpha1.ResourceName]) {

0 commit comments

Comments
 (0)