@@ -60,18 +60,14 @@ func TestMachineSetTopologyFinalizer(t *testing.T) {
60
60
ms := msBuilder .Build ()
61
61
msWithFinalizer := msBuilder .Build ()
62
62
msWithFinalizer .Finalizers = []string {clusterv1 .MachineSetTopologyFinalizer }
63
- msWithDeletionTimestamp := msBuilder .Build ()
64
- deletionTimestamp := metav1 .Now ()
65
- msWithDeletionTimestamp .DeletionTimestamp = & deletionTimestamp
66
-
67
- msWithDeletionTimestampAndFinalizer := msWithDeletionTimestamp .DeepCopy ()
68
- msWithDeletionTimestampAndFinalizer .Finalizers = []string {clusterv1 .MachineSetTopologyFinalizer }
69
63
70
64
testCases := []struct {
71
65
name string
72
66
ms * clusterv1.MachineSet
73
67
expectFinalizer bool
74
68
}{
69
+ // Note: We are not testing the case of a MS with deletionTimestamp and no finalizer.
70
+ // This case is impossible to reproduce in fake client without deleting the object.
75
71
{
76
72
name : "should add ClusterTopology finalizer to a MachineSet with no finalizer" ,
77
73
ms : ms ,
@@ -82,11 +78,6 @@ func TestMachineSetTopologyFinalizer(t *testing.T) {
82
78
ms : msWithFinalizer ,
83
79
expectFinalizer : true ,
84
80
},
85
- {
86
- name : "should not add ClusterTopology finalizer on MachineSet with Deletion Timestamp and no finalizer " ,
87
- ms : msWithDeletionTimestamp ,
88
- expectFinalizer : false ,
89
- },
90
81
}
91
82
92
83
for _ , tc := range testCases {
@@ -135,6 +126,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
135
126
}).
136
127
Build ()
137
128
ms .SetDeletionTimestamp (& deletionTimeStamp )
129
+ ms .SetFinalizers ([]string {clusterv1 .MachineSetTopologyFinalizer })
138
130
ms .SetOwnerReferences ([]metav1.OwnerReference {
139
131
{
140
132
Kind : "MachineDeployment" ,
@@ -146,6 +138,9 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
146
138
t .Run ("Should delete templates of a MachineSet" , func (t * testing.T ) {
147
139
g := NewWithT (t )
148
140
141
+ // Copying the MS so changes made by reconcileDelete do not affect other tests.
142
+ ms := ms .DeepCopy ()
143
+
149
144
fakeClient := fake .NewClientBuilder ().
150
145
WithScheme (fakeScheme ).
151
146
WithObjects (ms , msBT , msIMT ).
@@ -158,10 +153,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
158
153
_ , err := r .reconcileDelete (ctx , ms )
159
154
g .Expect (err ).ToNot (HaveOccurred ())
160
155
161
- afterMS := & clusterv1.MachineSet {}
162
- g .Expect (fakeClient .Get (ctx , client .ObjectKeyFromObject (ms ), afterMS )).To (Succeed ())
163
-
164
- g .Expect (controllerutil .ContainsFinalizer (afterMS , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
156
+ g .Expect (controllerutil .ContainsFinalizer (ms , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
165
157
g .Expect (templateExists (fakeClient , msBT )).To (BeFalse ())
166
158
g .Expect (templateExists (fakeClient , msIMT )).To (BeFalse ())
167
159
})
@@ -177,6 +169,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
177
169
}).
178
170
Build ()
179
171
msWithoutBootstrapTemplate .SetDeletionTimestamp (& deletionTimeStamp )
172
+ msWithoutBootstrapTemplate .SetFinalizers ([]string {clusterv1 .MachineSetTopologyFinalizer })
180
173
msWithoutBootstrapTemplate .SetOwnerReferences ([]metav1.OwnerReference {
181
174
{
182
175
Kind : "MachineDeployment" ,
@@ -197,16 +190,16 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
197
190
_ , err := r .reconcileDelete (ctx , msWithoutBootstrapTemplate )
198
191
g .Expect (err ).ToNot (HaveOccurred ())
199
192
200
- afterMS := & clusterv1.MachineSet {}
201
- g .Expect (fakeClient .Get (ctx , client .ObjectKeyFromObject (msWithoutBootstrapTemplate ), afterMS )).To (Succeed ())
202
-
203
- g .Expect (controllerutil .ContainsFinalizer (afterMS , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
193
+ g .Expect (controllerutil .ContainsFinalizer (msWithoutBootstrapTemplate , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
204
194
g .Expect (templateExists (fakeClient , msWithoutBootstrapTemplateIMT )).To (BeFalse ())
205
195
})
206
196
207
197
t .Run ("Should not delete templates of a MachineSet when they are still in use in a MachineDeployment" , func (t * testing.T ) {
208
198
g := NewWithT (t )
209
199
200
+ // Copying the MS so changes made by reconcileDelete do not affect other tests.
201
+ ms := ms .DeepCopy ()
202
+
210
203
md := builder .MachineDeployment (metav1 .NamespaceDefault , "md" ).
211
204
WithBootstrapTemplate (msBT ).
212
205
WithInfrastructureTemplate (msIMT ).
@@ -224,10 +217,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
224
217
_ , err := r .reconcileDelete (ctx , ms )
225
218
g .Expect (err ).ToNot (HaveOccurred ())
226
219
227
- afterMS := & clusterv1.MachineSet {}
228
- g .Expect (fakeClient .Get (ctx , client .ObjectKeyFromObject (ms ), afterMS )).To (Succeed ())
229
-
230
- g .Expect (controllerutil .ContainsFinalizer (afterMS , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
220
+ g .Expect (controllerutil .ContainsFinalizer (ms , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
231
221
g .Expect (templateExists (fakeClient , msBT )).To (BeTrue ())
232
222
g .Expect (templateExists (fakeClient , msIMT )).To (BeTrue ())
233
223
})
@@ -240,6 +230,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
240
230
WithInfrastructureTemplate (msIMT ).
241
231
Build ()
242
232
md .SetDeletionTimestamp (& deletionTimeStamp )
233
+ md .SetFinalizers ([]string {clusterv1 .MachineDeploymentTopologyFinalizer })
243
234
244
235
// anotherMS is another MachineSet of the same MachineDeployment using the same templates.
245
236
// Because anotherMS is not in deleting, reconcileDelete should not delete the templates.
@@ -270,10 +261,7 @@ func TestMachineSetReconciler_ReconcileDelete(t *testing.T) {
270
261
_ , err := r .reconcileDelete (ctx , ms )
271
262
g .Expect (err ).ToNot (HaveOccurred ())
272
263
273
- afterMS := & clusterv1.MachineSet {}
274
- g .Expect (fakeClient .Get (ctx , client .ObjectKeyFromObject (ms ), afterMS )).To (Succeed ())
275
-
276
- g .Expect (controllerutil .ContainsFinalizer (afterMS , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
264
+ g .Expect (controllerutil .ContainsFinalizer (ms , clusterv1 .MachineSetTopologyFinalizer )).To (BeFalse ())
277
265
g .Expect (templateExists (fakeClient , msBT )).To (BeTrue ())
278
266
g .Expect (templateExists (fakeClient , msIMT )).To (BeTrue ())
279
267
})
0 commit comments