diff --git a/internal/evacuation/eviction.go b/internal/evacuation/eviction.go index 75d04f3..96334d9 100644 --- a/internal/evacuation/eviction.go +++ b/internal/evacuation/eviction.go @@ -23,6 +23,7 @@ import ( "time" kvmv1 "github.com/cobaltcore-dev/openstack-hypervisor-operator/api/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "sigs.k8s.io/controller-runtime/pkg/client" @@ -69,6 +70,15 @@ func (e *EvictionController) EvictCurrentHost(ctx context.Context) error { // todo: namespace? cluster-wide? u.SetNamespace(sys.Namespace) + // Almost like v1.NewControllerRef(), except we do not set the controller + gvk := hypervisor.GroupVersionKind() + u.SetOwnerReferences([]v1.OwnerReference{{ + APIVersion: gvk.GroupVersion().String(), + Kind: gvk.Kind, + Name: hypervisor.Name, + UID: hypervisor.UID, + }}) + // ... create the eviction custom resource if err := e.Create(ctx, u); client.IgnoreAlreadyExists(err) != nil { return err