From 8d530dda3efb87a836bbdc79b64e2589b6510a5e Mon Sep 17 00:00:00 2001 From: Vince Prignano Date: Fri, 14 May 2021 15:06:20 -0700 Subject: [PATCH] :seedling: Handle unstructured CRD objects in envtest webhook mods Signed-off-by: Vince Prignano --- pkg/envtest/crd.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/envtest/crd.go b/pkg/envtest/crd.go index 39cbfcb994..923fa6da0b 100644 --- a/pkg/envtest/crd.go +++ b/pkg/envtest/crd.go @@ -372,14 +372,39 @@ func modifyConversionWebhooks(crds []client.Object, webhookOptions WebhookInstal case *apiextensionsv1beta1.CustomResourceDefinition: c.Spec.Conversion.WebhookClientConfig.Service = nil c.Spec.Conversion.WebhookClientConfig = &apiextensionsv1beta1.WebhookClientConfig{ + Service: nil, + URL: url, CABundle: webhookOptions.LocalServingCAData, } case *apiextensionsv1.CustomResourceDefinition: c.Spec.Conversion.Webhook.ClientConfig.Service = nil c.Spec.Conversion.Webhook.ClientConfig = &apiextensionsv1.WebhookClientConfig{ + Service: nil, URL: url, CABundle: webhookOptions.LocalServingCAData, } + case *unstructured.Unstructured: + webhookClientConfig := map[string]interface{}{ + "url": *url, + "caBundle": webhookOptions.LocalServingCAData, + } + + switch c.GroupVersionKind().Version { + case "v1beta1": + if err := unstructured.SetNestedMap( + c.Object, + webhookClientConfig, + "spec", "conversion", "webhookClientConfig"); err != nil { + return err + } + case "v1": + if err := unstructured.SetNestedMap( + c.Object, + webhookClientConfig, + "spec", "conversion", "webhook", "clientConfig"); err != nil { + return err + } + } } }