@@ -398,6 +398,79 @@ var _ = Describe("OSRMClusterController", func() {
398398				return  errors .IsNotFound (err )
399399			}, 180 * time .Second ).Should (BeTrue ())
400400		})
401+ 402+ 		FIt ("Should delete only resources that belong to the current reconciled CR" , func () {
403+ 			secondInstance  :=  generateOSRMCluster (fmt .Sprintf ("garbage-collection-%d-b" , testNumber ))
404+ 			Expect (k8sClient .Create (ctx , secondInstance )).To (Succeed ())
405+ 			waitForDeployment (ctx , secondInstance , k8sClient )
406+ 407+ 			secondInstanceService  :=  service (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .ServiceSuffix )
408+ 			secondInstanceDeployment  :=  deployment (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .DeploymentSuffix )
409+ 			secondInstanceHPA  :=  hpa (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .HorizontalPodAutoscalerSuffix )
410+ 			secondInstancePDB  :=  pdb (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .PodDisruptionBudgetSuffix )
411+ 			secondInstancePVC  :=  pvc (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .PersistentVolumeClaimSuffix )
412+ 			secondInstanceJob  :=  job (ctx , secondInstance .Name , secondInstance .Spec .Profiles [0 ].Name , osrmResource .JobSuffix )
413+ 414+ 			time .Sleep (time .Minute  *  10 )
415+ 416+ 			Expect (updateWithRetry (instance , func (v  * osrmv1alpha1.OSRMCluster ) {
417+ 				v .Spec .Profiles [0 ].Name  =  "foot" 
418+ 			})).To (Succeed ())
419+ 420+ 			Consistently (func () string  {
421+ 				err  :=  k8sClient .Get (ctx , types.NamespacedName {
422+ 					Name : secondInstanceService .Name ,
423+ 					Namespace : secondInstanceService .Namespace ,
424+ 				}, & corev1.Service {})
425+ 				if  errors .IsNotFound (err ) {
426+ 					return  fmt .Sprintf ("service %s deleted" , secondInstanceService .Name )
427+ 				}
428+ 429+ 				err  =  k8sClient .Get (ctx , types.NamespacedName {
430+ 					Name : secondInstanceDeployment .Name ,
431+ 					Namespace : secondInstanceDeployment .Namespace ,
432+ 				}, & appsv1.Deployment {})
433+ 				if  errors .IsNotFound (err ) {
434+ 					return  fmt .Sprintf ("deployment %s deleted" , secondInstanceDeployment .Name )
435+ 				}
436+ 437+ 				err  =  k8sClient .Get (ctx , types.NamespacedName {
438+ 					Name : secondInstanceHPA .Name ,
439+ 					Namespace : secondInstanceHPA .Namespace ,
440+ 				}, & autoscalingv1.HorizontalPodAutoscaler {})
441+ 				if  errors .IsNotFound (err ) {
442+ 					return  fmt .Sprintf ("hpa %s deleted" , secondInstanceHPA .Name )
443+ 				}
444+ 445+ 				err  =  k8sClient .Get (ctx , types.NamespacedName {
446+ 					Name : secondInstancePDB .Name ,
447+ 					Namespace : secondInstancePDB .Namespace ,
448+ 				}, & policyv1.PodDisruptionBudget {})
449+ 				if  errors .IsNotFound (err ) {
450+ 					return  fmt .Sprintf ("pdb %s deleted" , secondInstancePDB .Name )
451+ 				}
452+ 453+ 				err  =  k8sClient .Get (ctx , types.NamespacedName {
454+ 					Name : secondInstanceJob .Name ,
455+ 					Namespace : secondInstanceJob .Namespace ,
456+ 				}, & batchv1.Job {})
457+ 				if  errors .IsNotFound (err ) {
458+ 					return  fmt .Sprintf ("job %s deleted" , secondInstanceJob .Name )
459+ 				}
460+ 461+ 				err  =  k8sClient .Get (ctx , types.NamespacedName {
462+ 					Name : secondInstancePVC .Name ,
463+ 					Namespace : secondInstancePVC .Namespace ,
464+ 				}, & corev1.PersistentVolumeClaim {})
465+ 				if  errors .IsNotFound (err ) {
466+ 					return  fmt .Sprintf ("pvc %s deleted" , secondInstancePVC .Name )
467+ 				}
468+ 469+ 				return  "nothing deleted" 
470+ 			}, 15 * time .Second ).Should (Equal ("nothing deleted" ))
471+ 472+ 			Expect (k8sClient .Delete (ctx , secondInstance )).To (Succeed ())
473+ 		})
401474	})
402475})
403476
0 commit comments