@@ -10,8 +10,8 @@ import (
10
10
corev1 "k8s.io/api/core/v1"
11
11
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12
12
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
13
- "k8s.io/apimachinery/pkg/runtime/schema"
14
13
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
14
+ "sigs.k8s.io/cluster-api/controllers/external"
15
15
"sigs.k8s.io/cluster-api/controllers/remote"
16
16
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
17
17
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
@@ -80,7 +80,7 @@ func EnsureClusterOwnerReferenceForObject(
80
80
cluster .Namespace ,
81
81
)
82
82
if err != nil {
83
- return fmt . Errorf ( "failed to get object from TypedLocalObjectReference: %w" , err )
83
+ return err
84
84
}
85
85
86
86
err = controllerutil .SetOwnerReference (cluster , targetObj , cl .Scheme ())
@@ -99,23 +99,24 @@ func EnsureClusterOwnerReferenceForObject(
99
99
func GetResourceFromTypedLocalObjectReference (
100
100
ctx context.Context ,
101
101
cl ctrlclient.Client ,
102
- objectRef * corev1.TypedLocalObjectReference ,
102
+ typedLocalObjectRef * corev1.TypedLocalObjectReference ,
103
103
ns string ,
104
104
) (* unstructured.Unstructured , error ) {
105
- targetObj := & unstructured.Unstructured {}
106
-
107
105
apiVersion := corev1 .SchemeGroupVersion .String ()
108
- if objectRef .APIGroup != nil {
109
- apiVersion = * objectRef .APIGroup
106
+ if typedLocalObjectRef .APIGroup != nil {
107
+ apiVersion = * typedLocalObjectRef .APIGroup
108
+ }
109
+
110
+ objectRef := & corev1.ObjectReference {
111
+ APIVersion : apiVersion ,
112
+ Kind : typedLocalObjectRef .Kind ,
113
+ Name : typedLocalObjectRef .Name ,
114
+ Namespace : ns ,
110
115
}
111
116
112
- targetObj .SetGroupVersionKind (schema .FromAPIVersionAndKind (apiVersion , objectRef .Kind ))
113
- err := cl .Get (ctx , ctrlclient.ObjectKey {
114
- Namespace : ns ,
115
- Name : objectRef .Name ,
116
- }, targetObj )
117
+ targetObj , err := external .Get (ctx , cl , objectRef , ns )
117
118
if err != nil {
118
- return nil , err
119
+ return nil , fmt . Errorf ( "failed to get resource from object reference: %w" , err )
119
120
}
120
121
121
122
return targetObj , nil
0 commit comments