summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go')
-rw-r--r--vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go19
1 files changed, 15 insertions, 4 deletions
diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go
index 042cd5b9c..15b45ffa8 100644
--- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go
+++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go
@@ -22,7 +22,7 @@ import (
// IsControlledBy checks if the object has a controllerRef set to the given owner
func IsControlledBy(obj Object, owner Object) bool {
- ref := GetControllerOf(obj)
+ ref := GetControllerOfNoCopy(obj)
if ref == nil {
return false
}
@@ -31,9 +31,20 @@ func IsControlledBy(obj Object, owner Object) bool {
// GetControllerOf returns a pointer to a copy of the controllerRef if controllee has a controller
func GetControllerOf(controllee Object) *OwnerReference {
- for _, ref := range controllee.GetOwnerReferences() {
- if ref.Controller != nil && *ref.Controller {
- return &ref
+ ref := GetControllerOfNoCopy(controllee)
+ if ref == nil {
+ return nil
+ }
+ cp := *ref
+ return &cp
+}
+
+// GetControllerOf returns a pointer to the controllerRef if controllee has a controller
+func GetControllerOfNoCopy(controllee Object) *OwnerReference {
+ refs := controllee.GetOwnerReferences()
+ for i := range refs {
+ if refs[i].Controller != nil && *refs[i].Controller {
+ return &refs[i]
}
}
return nil