From e77e993d96fb5747c7b2dbb9b371cbae605199d6 Mon Sep 17 00:00:00 2001 From: Wen Zhou Date: Wed, 15 Nov 2023 20:36:59 +0100 Subject: [PATCH] fix(kserve): check on multiple depends operators if all pre-installed (#744) (#119) Signed-off-by: Wen Zhou (cherry picked from commit 57c4b82141802553d60b383048dde111fc6cc42d) --- components/kserve/kserve.go | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/components/kserve/kserve.go b/components/kserve/kserve.go index fd9fd032cf9..fcc1923cd0d 100644 --- a/components/kserve/kserve.go +++ b/components/kserve/kserve.go @@ -106,9 +106,9 @@ func (k *Kserve) ReconcileComponent(cli client.Client, owner metav1.Object, dsci } // check on dependent operators if all installed in cluster - // dependent operators set in checkRequiredOperatorsInstalled() - if err := checkRequiredOperatorsInstalled(cli); err != nil { - return err + dependOpsErrors := checkDepedentOps(cli).ErrorOrNil() + if dependOpsErrors != nil { + return dependOpsErrors } if err := k.configureServerless(dscispec); err != nil { @@ -188,21 +188,23 @@ func (k *Kserve) removeServerlessFeatures(instance *dsciv1.DSCInitializationSpec return nil } -func checkRequiredOperatorsInstalled(cli client.Client) error { +func checkDepedentOps(cli client.Client) *multierror.Error { var multiErr *multierror.Error - checkAndAppendError := func(operatorName string) { - if found, err := deploy.OperatorExists(cli, operatorName); err != nil { - multiErr = multierror.Append(multiErr, err) - } else if !found { - err = fmt.Errorf("operator %s not found. Please install the operator before enabling %s component", - operatorName, ComponentName) - multiErr = multierror.Append(multiErr, err) - } + if found, err := deploy.OperatorExists(cli, ServiceMeshOperator); err != nil { + multiErr = multierror.Append(multiErr, err) + } else if !found { + err = fmt.Errorf("operator %s not found. Please install the operator before enabling %s component", + ServiceMeshOperator, ComponentName) + multiErr = multierror.Append(multiErr, err) } - checkAndAppendError(ServiceMeshOperator) - checkAndAppendError(ServerlessOperator) - - return multiErr.ErrorOrNil() + if found, err := deploy.OperatorExists(cli, ServerlessOperator); err != nil { + multiErr = multierror.Append(multiErr, err) + } else if !found { + err = fmt.Errorf("operator %s not found. Please install the operator before enabling %s component", + ServerlessOperator, ComponentName) + multiErr = multierror.Append(multiErr, err) + } + return multiErr }