From afa612df9d132180837e7c122088d44b1c72df1e Mon Sep 17 00:00:00 2001 From: Adrian Gonzalez-Martin Date: Thu, 19 Dec 2019 13:58:02 +0000 Subject: [PATCH] Add back fix for CRD patch creation Signed-off-by: Adrian Gonzalez-Martin --- pkg/kube/client.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 96179d19d..07962faac 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -355,7 +355,12 @@ func createPatch(target *resource.Info, current runtime.Object) ([]byte, types.P // returned from ConvertToVersion. Anything that's unstructured should // use the jsonpatch.CreateMergePatch. Strategic Merge Patch is not supported // on objects like CRDs. - if _, ok := versionedObject.(runtime.Unstructured); ok { + _, isUnstructured := versionedObject.(runtime.Unstructured) + + // On newer K8s versions, CRDs aren't unstructured but has this dedicated type + _, isCRD := versionedObject.(*apiextv1beta1.CustomResourceDefinition) + + if isUnstructured || isCRD { // fall back to generic JSON merge patch patch, err := jsonpatch.CreateMergePatch(oldData, newData) return patch, types.MergePatchType, err