Skip to content

Commit 5f0a3f4

Browse files
committed
remove owner passed in to RemoveControlleReference only when that owner controller equals true
Signed-off-by: Troy Connor <[email protected]>
1 parent 2154ffb commit 5f0a3f4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

pkg/controller/controllerutil/controllerutil.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,14 @@ func RemoveControllerReference(owner, object metav1.Object, scheme *runtime.Sche
171171
if ok := HasControllerReference(object); !ok {
172172
return fmt.Errorf("%T does not have a owner reference with controller equals true", object)
173173
}
174-
return RemoveOwnerReference(owner, object, scheme)
174+
ownerRefs := object.GetOwnerReferences()
175+
for _, ownerRef := range ownerRefs {
176+
t := ptr.To(true)
177+
if ownerRef.Controller == t && ownerRef.Name == owner.GetName() {
178+
return RemoveOwnerReference(owner, object, scheme)
179+
}
180+
}
181+
return fmt.Errorf("%T is not owned reference by %T where controller equals true", object, owner)
175182
}
176183

177184
func upsertOwnerRef(ref metav1.OwnerReference, object metav1.Object) {

0 commit comments

Comments
 (0)