From 897cb3366e3857bad5a31ae3362a3a096e00951e Mon Sep 17 00:00:00 2001 From: Tamal Saha Date: Tue, 26 Dec 2023 10:01:33 -0800 Subject: [PATCH] Detect GVK properly in kubecbuilder CreateOrPatch helper (#573) Signed-off-by: Tamal Saha --- client/client.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/client/client.go b/client/client.go index eac4a3dda..e24b7b4c3 100644 --- a/client/client.go +++ b/client/client.go @@ -69,14 +69,19 @@ type ( ) func CreateOrPatch(ctx context.Context, c client.Client, obj client.Object, transform TransformFunc, opts ...client.PatchOption) (kutil.VerbType, error) { + gvk, err := apiutil.GVKForObject(obj, c.Scheme()) + if err != nil { + return kutil.VerbUnchanged, errors.Wrapf(err, "failed to get GVK for object %T", obj) + } + cur := obj.DeepCopyObject().(client.Object) key := types.NamespacedName{ Namespace: cur.GetNamespace(), Name: cur.GetName(), } - err := c.Get(ctx, key, cur) + err = c.Get(ctx, key, cur) if kerr.IsNotFound(err) { - klog.V(3).Infof("Creating %+v %s/%s.", obj.GetObjectKind().GroupVersionKind(), key.Namespace, key.Name) + klog.V(3).Infof("Creating %+v %s/%s.", gvk, key.Namespace, key.Name) createOpts := make([]client.CreateOption, 0, len(opts)) for i := range opts { @@ -96,11 +101,6 @@ func CreateOrPatch(ctx context.Context, c client.Client, obj client.Object, tran return kutil.VerbUnchanged, err } - gvk, err := apiutil.GVKForObject(obj, c.Scheme()) - if err != nil { - return kutil.VerbUnchanged, errors.Wrapf(err, "failed to get GVK for object %T", obj) - } - _, unstructuredObj := obj.(*unstructured.Unstructured) var patch client.Patch