From b4a96c1d784ba62f5626435e238443a6a7306b52 Mon Sep 17 00:00:00 2001 From: Tommy Hughes Date: Tue, 3 Jan 2023 15:14:54 -0600 Subject: [PATCH] fix dynamic conversion webhook Signed-off-by: Tommy Hughes --- pkg/controller/operators/olm/apiservices.go | 2 +- pkg/controller/operators/olm/operator.go | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/controller/operators/olm/apiservices.go b/pkg/controller/operators/olm/apiservices.go index d3524cd8e7e..fc3f191e883 100644 --- a/pkg/controller/operators/olm/apiservices.go +++ b/pkg/controller/operators/olm/apiservices.go @@ -472,7 +472,7 @@ func (a *Operator) areWebhooksAvailable(csv *v1alpha1.ClusterServiceVersion) (bo return false, err } - if crd.Spec.Conversion == nil || crd.Spec.Conversion.Strategy != "Webhook" || crd.Spec.Conversion.Webhook == nil || crd.Spec.Conversion.Webhook.ClientConfig == nil && crd.Spec.Conversion.Webhook.ClientConfig.CABundle == nil { + if crd.Spec.Conversion == nil || crd.Spec.Conversion.Strategy != "Webhook" || crd.Spec.Conversion.Webhook == nil || crd.Spec.Conversion.Webhook.ClientConfig == nil || crd.Spec.Conversion.Webhook.ClientConfig.CABundle == nil { return false, fmt.Errorf("conversionWebhook not ready") } webhookCount++ diff --git a/pkg/controller/operators/olm/operator.go b/pkg/controller/operators/olm/operator.go index 3690ffe2b0e..f527575013a 100644 --- a/pkg/controller/operators/olm/operator.go +++ b/pkg/controller/operators/olm/operator.go @@ -2359,7 +2359,12 @@ func (a *Operator) updateInstallStatus(csv *v1alpha1.ClusterServiceVersion, inst return fmt.Errorf(msg) } - if !webhooksInstalled || webhookErr != nil { + if webhookErr != nil { + csv.SetPhaseWithEventIfChanged(v1alpha1.CSVPhaseInstallReady, requeueConditionReason, fmt.Sprintf("Webhook install failed: %s", webhookErr), now, a.recorder) + return webhookErr + } + + if !webhooksInstalled { msg := "webhooks not installed" csv.SetPhaseWithEventIfChanged(requeuePhase, requeueConditionReason, msg, now, a.recorder) if err := a.csvQueueSet.Requeue(csv.GetNamespace(), csv.GetName()); err != nil {