@@ -210,7 +210,10 @@ var _ = Describe("Node Health Check CR", func() {
210
210
Expect (k8sClient .Update (context .Background (), & item )).To (Succeed ())
211
211
Expect (k8sClient .Get (context .Background (), client .ObjectKeyFromObject (& item ), & item )).To (Succeed ())
212
212
}
213
- Expect (k8sClient .Delete (context .Background (), & item )).To (Succeed ())
213
+ err := k8sClient .Delete (context .Background (), & item )
214
+ if err != nil {
215
+ Expect (errors .IsNotFound (err )).To (BeTrue ())
216
+ }
214
217
}
215
218
}
216
219
@@ -1288,15 +1291,15 @@ var _ = Describe("Node Health Check CR", func() {
1288
1291
Expect (k8sClient .Delete (context .Background (), node ))
1289
1292
}
1290
1293
1291
- markCR := func () * unstructured.Unstructured {
1292
- By ("marking CR as succeeded and permanent node deletion expected" )
1294
+ markCR := func (succeededStatus metav1. ConditionStatus ) * unstructured.Unstructured {
1295
+ By ("marking CR for permanent node deletion expected" )
1293
1296
cr := findRemediationCRForNHC ("unhealthy-worker-node-1" , underTest )
1294
1297
Expect (cr ).ToNot (BeNil ())
1295
1298
1296
1299
conditions := []interface {}{
1297
1300
map [string ]interface {}{
1298
1301
"type" : commonconditions .SucceededType ,
1299
- "status" : "True" ,
1302
+ "status" : string ( succeededStatus ) ,
1300
1303
"lastTransitionTime" : time .Now ().Format (time .RFC3339 ),
1301
1304
},
1302
1305
map [string ]interface {}{
@@ -1322,18 +1325,30 @@ var _ = Describe("Node Health Check CR", func() {
1322
1325
Expect (underTest .Status .UnhealthyNodes ).To (BeEmpty ())
1323
1326
}
1324
1327
1325
- It ("it should delete orphaned CR when CR was updated" , func () {
1328
+ ensureCRNotDeleted := func (cr * unstructured.Unstructured ) {
1329
+ By ("ensuring CR is not deleted" )
1330
+ Consistently (func () error {
1331
+ return k8sClient .Get (context .Background (), client .ObjectKeyFromObject (cr ), cr )
1332
+ }, "10s" , "1s" ).ShouldNot (HaveOccurred ())
1333
+
1334
+ // get updated NHC
1335
+ Expect (k8sClient .Get (context .Background (), client .ObjectKeyFromObject (underTest ), underTest )).To (Succeed ())
1336
+ Expect (underTest .Status .UnhealthyNodes ).ToNot (BeEmpty ())
1337
+ }
1338
+
1339
+ It ("it should delete orphaned CR when CR with expected node deletion succeeded" , func () {
1326
1340
Expect (underTest .Status .UnhealthyNodes ).To (HaveLen (1 ))
1341
+ cr := markCR (metav1 .ConditionFalse )
1327
1342
deleteNode ()
1328
- time . Sleep ( 1 * time . Second )
1329
- cr : = markCR ()
1343
+ ensureCRNotDeleted ( cr )
1344
+ cr = markCR (metav1 . ConditionTrue )
1330
1345
expectCRDeletion (cr )
1331
1346
})
1332
1347
1333
1348
It ("it should delete orphaned CR when node is deleted" , func () {
1334
1349
Expect (underTest .Status .UnhealthyNodes ).To (HaveLen (1 ))
1335
- cr := markCR ( )
1336
- time . Sleep ( 1 * time . Second )
1350
+ cr := findRemediationCRForNHC ( "unhealthy-worker-node-1" , underTest )
1351
+ Expect ( cr ). ToNot ( BeNil () )
1337
1352
deleteNode ()
1338
1353
expectCRDeletion (cr )
1339
1354
})
0 commit comments