From f003102863ae7173079f6864509720480687f2e1 Mon Sep 17 00:00:00 2001 From: Stefan Bueringer Date: Thu, 16 Sep 2021 12:57:42 +0200 Subject: [PATCH] envtest: fix CRD installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Büringer buringerst@vmware.com --- pkg/envtest/crd.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkg/envtest/crd.go b/pkg/envtest/crd.go index fa00f79704..51bf366792 100644 --- a/pkg/envtest/crd.go +++ b/pkg/envtest/crd.go @@ -359,21 +359,26 @@ func modifyConversionWebhooks(crds []apiextensionsv1.CustomResourceDefinition, s } url := pointer.StringPtr(fmt.Sprintf("https://%s/convert", hostPort)) - for _, c := range crds { + for i := range crds { // Continue if we're preserving unknown fields. - if c.Spec.PreserveUnknownFields { + if crds[i].Spec.PreserveUnknownFields { continue } // Continue if the GroupKind isn't registered as being convertible. if _, ok := convertibles[schema.GroupKind{ - Group: c.Spec.Group, - Kind: c.Spec.Names.Kind, + Group: crds[i].Spec.Group, + Kind: crds[i].Spec.Names.Kind, }]; !ok { continue } - c.Spec.Conversion.Strategy = apiextensionsv1.WebhookConverter - c.Spec.Conversion.Webhook.ClientConfig.Service = nil - c.Spec.Conversion.Webhook.ClientConfig = &apiextensionsv1.WebhookClientConfig{ + if crds[i].Spec.Conversion == nil { + crds[i].Spec.Conversion = &apiextensionsv1.CustomResourceConversion{ + Webhook: &apiextensionsv1.WebhookConversion{}, + } + } + crds[i].Spec.Conversion.Strategy = apiextensionsv1.WebhookConverter + crds[i].Spec.Conversion.Webhook.ConversionReviewVersions = []string{"v1", "v1beta1"} + crds[i].Spec.Conversion.Webhook.ClientConfig = &apiextensionsv1.WebhookClientConfig{ Service: nil, URL: url, CABundle: webhookOptions.LocalServingCAData,