Files
netbird-kubernetes-operator/internal/k8sutil/owner.go
T
Philip LaineandGitHub 5e5e37a153 Add tests to k8sutil (#296)
Adds more unit tests to sections that are easy to test.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Added unit tests for Kubernetes owner-reference and finalizer helper
functions to ensure correct behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-15 13:57:14 +02:00

39 lines
1.1 KiB
Go

// SPDX-License-Identifier: BSD-3-Clause
package k8sutil
import (
kruntime "k8s.io/apimachinery/pkg/runtime"
metav1ac "k8s.io/client-go/applyconfigurations/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
)
func ControllerReference(owner client.Object, scheme *kruntime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
gvk, err := apiutil.GVKForObject(owner, scheme)
if err != nil {
return nil, err
}
return metav1ac.OwnerReference().
WithAPIVersion(gvk.GroupVersion().String()).
WithKind(gvk.Kind).
WithName(owner.GetName()).
WithUID(owner.GetUID()).
WithController(true).
WithBlockOwnerDeletion(true), nil
}
func OwnerReference(owner client.Object, scheme *kruntime.Scheme) (*metav1ac.OwnerReferenceApplyConfiguration, error) {
gvk, err := apiutil.GVKForObject(owner, scheme)
if err != nil {
return nil, err
}
return metav1ac.OwnerReference().
WithAPIVersion(gvk.GroupVersion().String()).
WithKind(gvk.Kind).
WithName(owner.GetName()).
WithUID(owner.GetUID()).
WithController(false).
WithBlockOwnerDeletion(false), nil
}