diff --git a/internal/controllers/cluster/cluster_controller_phases.go b/internal/controllers/cluster/cluster_controller_phases.go index 0b0c77df517d..31329659f13b 100644 --- a/internal/controllers/cluster/cluster_controller_phases.go +++ b/internal/controllers/cluster/cluster_controller_phases.go @@ -131,6 +131,7 @@ func ensureOwnerRefAndLabel(ctx context.Context, c client.Client, obj *unstructu APIVersion: clusterv1.GroupVersion.String(), Kind: "Cluster", Name: cluster.Name, + UID: cluster.UID, Controller: ptr.To(true), } diff --git a/internal/controllers/clusterclass/clusterclass_controller.go b/internal/controllers/clusterclass/clusterclass_controller.go index 7f8f01d12a51..1bad559d8ade 100644 --- a/internal/controllers/clusterclass/clusterclass_controller.go +++ b/internal/controllers/clusterclass/clusterclass_controller.go @@ -434,6 +434,7 @@ func (r *Reconciler) reconcileExternal(ctx context.Context, clusterClass *cluste APIVersion: clusterv1.GroupVersion.String(), Kind: "ClusterClass", Name: clusterClass.Name, + UID: clusterClass.UID, } if util.HasExactOwnerRef(obj.GetOwnerReferences(), desiredOwnerRef) { diff --git a/internal/controllers/machine/machine_controller_phases.go b/internal/controllers/machine/machine_controller_phases.go index 402caa2ba03f..88925e279299 100644 --- a/internal/controllers/machine/machine_controller_phases.go +++ b/internal/controllers/machine/machine_controller_phases.go @@ -98,6 +98,7 @@ func (r *Reconciler) ensureExternalOwnershipAndWatch(ctx context.Context, cluste APIVersion: clusterv1.GroupVersion.String(), Kind: "Machine", Name: m.Name, + UID: m.UID, Controller: ptr.To(true), } diff --git a/util/util.go b/util/util.go index cc1a16030b7f..dfe38100ef8e 100644 --- a/util/util.go +++ b/util/util.go @@ -342,6 +342,7 @@ func HasExactOwnerRef(ownerReferences []metav1.OwnerReference, ref metav1.OwnerR if r.APIVersion == ref.APIVersion && r.Kind == ref.Kind && r.Name == ref.Name && + r.UID == ref.UID && ptr.Deref(r.Controller, false) == ptr.Deref(ref.Controller, false) { return true }