diff --git a/pkg/konnector/controllers/cluster/claimedresources/claimedresources_controller.go b/pkg/konnector/controllers/cluster/claimedresources/claimedresources_controller.go index aa8d2d716..995fcbe71 100644 --- a/pkg/konnector/controllers/cluster/claimedresources/claimedresources_controller.go +++ b/pkg/konnector/controllers/cluster/claimedresources/claimedresources_controller.go @@ -234,7 +234,10 @@ func (c *controller) enqueueConsumer(logger klog.Logger, obj interface{}) { return } - if !c.isClaimed(logger, o, true) { + // If owner label is set - it was claimed before and might not be claimed now (example: reference gone or changed). + // So we need to enqueue it to check if it is still needed. + _, wasClaimedBefore := o.GetLabels()[kubebindv1alpha2.ObjectOwnerLabel] + if !wasClaimedBefore && !c.isClaimed(logger, o, true) { return } logger.V(2).Info("queueing consumer object", "gvr", o.GroupVersionKind().String(), "key", fmt.Sprintf("%s/%s", o.GetNamespace(), o.GetName())) @@ -293,7 +296,10 @@ func (c *controller) enqueueProvider(logger klog.Logger, obj interface{}) { runtime.HandleError(fmt.Errorf("unexpected type %T in enqueueProvider", obj)) return } - if !c.isClaimed(logger, o, false) { + // If owner label is set - it was claimed before and might not be claimed now (example: reference gone or changed). + // So we need to enqueue it to check if it is still needed. + _, wasClaimedBefore := o.GetLabels()[kubebindv1alpha2.ObjectOwnerLabel] + if !wasClaimedBefore && !c.isClaimed(logger, o, false) { logger.V(4).Info("object is not claimed, skipping", "object", o.GetObjectKind().GroupVersionKind(), "name", o.GetName()) return }