diff --git a/components/kserve/kserve.go b/components/kserve/kserve.go index 0459895d005..b5e1de72ffb 100644 --- a/components/kserve/kserve.go +++ b/components/kserve/kserve.go @@ -108,13 +108,8 @@ func (k *Kserve) ReconcileComponent(ctx context.Context, cli client.Client, resC return err } } - // check on dependent operators if all installed in cluster - dependOpsErrors := checkDependentOperators(cli).ErrorOrNil() - if dependOpsErrors != nil { - return dependOpsErrors - } - if err := k.configureServerless(dscispec); err != nil { + if err := k.configureServerless(cli, dscispec); err != nil { return err } @@ -175,7 +170,7 @@ func (k *Kserve) Cleanup(_ client.Client, instance *dsciv1.DSCInitializationSpec return k.removeServiceMeshConfigurations(instance) } -func (k *Kserve) configureServerless(instance *dsciv1.DSCInitializationSpec) error { +func (k *Kserve) configureServerless(cli client.Client, instance *dsciv1.DSCInitializationSpec) error { switch k.Serving.ManagementState { case operatorv1.Unmanaged: // Bring your own CR fmt.Println("Serverless CR is not configured by the operator, we won't do anything") @@ -192,6 +187,12 @@ func (k *Kserve) configureServerless(instance *dsciv1.DSCInitializationSpec) err return fmt.Errorf("ServiceMesh is need to set to 'Managed' in DSCI CR, it is required by KServe serving field") } + // check on dependent operators if all installed in cluster + dependOpsErrors := checkDependentOperators(cli).ErrorOrNil() + if dependOpsErrors != nil { + return dependOpsErrors + } + serverlessFeatures := feature.ComponentFeaturesHandler(k, instance, k.configureServerlessFeatures()) if err := serverlessFeatures.Apply(); err != nil { diff --git a/tests/e2e/dsc_creation_test.go b/tests/e2e/dsc_creation_test.go index c68c5419367..41736d4d6e3 100644 --- a/tests/e2e/dsc_creation_test.go +++ b/tests/e2e/dsc_creation_test.go @@ -241,14 +241,12 @@ func (tc *testContext) testAllApplicationCreation(t *testing.T) error { //nolint // speed testing in parallel t.Parallel() err = tc.testApplicationCreation(&(tc.testDsc.Spec.Components.Kserve)) + // test Unmanaged state, since servicemesh is not installed. if tc.testDsc.Spec.Components.Kserve.ManagementState == operatorv1.Managed { - if err != nil { - // depedent operator error, as expected - if strings.Contains(err.Error(), "Please install the operator before enabling component") { - t.Logf("expected error: %v", err.Error()) - } else { - require.NoError(t, err, "error validating application %v when enabled", tc.testDsc.Spec.Components.Kserve.GetComponentName()) - } + if err != nil && tc.testDsc.Spec.Components.Kserve.Serving.ManagementState == operatorv1.Unmanaged { + require.NoError(t, err, "error validating application %v when enabled", tc.testDsc.Spec.Components.Workbenches.GetComponentName()) + } else { + require.NoError(t, err, "error validating application %v when enabled", tc.testDsc.Spec.Components.Kserve.GetComponentName()) } } else { require.Error(t, err, "error validating application %v when disabled", tc.testDsc.Spec.Components.Kserve.GetComponentName()) diff --git a/tests/e2e/helper_test.go b/tests/e2e/helper_test.go index 40d22fb67a2..c48fe448727 100644 --- a/tests/e2e/helper_test.go +++ b/tests/e2e/helper_test.go @@ -26,6 +26,7 @@ import ( "github.com/opendatahub-io/opendatahub-operator/v2/components/ray" "github.com/opendatahub-io/opendatahub-operator/v2/components/trustyai" "github.com/opendatahub-io/opendatahub-operator/v2/components/workbenches" + infrav1 "github.com/opendatahub-io/opendatahub-operator/v2/infrastructure/v1" ) func (tc *testContext) waitForControllerDeployment(name string, replicas int32) error { @@ -108,6 +109,9 @@ func setupDSCInstance(name string) *dsc.DataScienceCluster { Component: components.Component{ ManagementState: operatorv1.Managed, }, + Serving: infrav1.ServingSpec{ + ManagementState: operatorv1.Unmanaged, + }, }, CodeFlare: codeflare.CodeFlare{ Component: components.Component{