diff --git a/components/component.go b/components/component.go index 9da28944a81..beaaec3386a 100644 --- a/components/component.go +++ b/components/component.go @@ -121,6 +121,8 @@ func (c *Component) UpdatePrometheusConfig(_ client.Client, enable bool, compone WorkbenchesARules string `yaml:"workbenches-alerting.rules"` KserveRRules string `yaml:"kserve-recording.rules"` KserveARules string `yaml:"kserve-alerting.rules"` + TrustyAIRRules string `yaml:"trustyai-recording.rules"` + TrustyAIARules string `yaml:"trustyai-alerting.rules"` } `yaml:"data"` } var configMap ConfigMap diff --git a/components/trustyai/trustyai.go b/components/trustyai/trustyai.go index ed8fc411f3b..4d0ef4b949e 100644 --- a/components/trustyai/trustyai.go +++ b/components/trustyai/trustyai.go @@ -3,6 +3,7 @@ package trustyai import ( "context" + "fmt" "path/filepath" operatorv1 "github.com/openshift/api/operator/v1" @@ -13,6 +14,7 @@ import ( dsciv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/dscinitialization/v1" "github.com/opendatahub-io/opendatahub-operator/v2/components" "github.com/opendatahub-io/opendatahub-operator/v2/pkg/deploy" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/monitoring" ) var ( @@ -43,7 +45,6 @@ func (t *TrustyAI) OverrideManifests(_ string) error { } Path = filepath.Join(deploy.DefaultManifestPath, ComponentName, defaultKustomizePath) } - return nil } @@ -51,12 +52,13 @@ func (t *TrustyAI) GetComponentName() string { return ComponentName } -func (t *TrustyAI) ReconcileComponent(_ context.Context, cli client.Client, _ *rest.Config, owner metav1.Object, dscispec *dsciv1.DSCInitializationSpec, _ bool) error { +func (t *TrustyAI) ReconcileComponent(ctx context.Context, cli client.Client, resConf *rest.Config, owner metav1.Object, dscispec *dsciv1.DSCInitializationSpec, _ bool) error { var imageParamMap = map[string]string{ "trustyaiServiceImage": "RELATED_IMAGE_ODH_TRUSTYAI_SERVICE_IMAGE", "trustyaiOperatorImage": "RELATED_IMAGE_ODH_TRUSTYAI_SERVICE_OPERATOR_IMAGE", } enabled := t.GetManagementState() == operatorv1.Managed + monitoringEnabled := dscispec.Monitoring.ManagementState == operatorv1.Managed platform, err := deploy.GetPlatform(cli) if err != nil { @@ -77,7 +79,27 @@ func (t *TrustyAI) ReconcileComponent(_ context.Context, cli client.Client, _ *r } } // Deploy TrustyAI Operator - err = deploy.DeployManifestsFromPath(cli, owner, Path, dscispec.ApplicationsNamespace, t.GetComponentName(), enabled) + if err := deploy.DeployManifestsFromPath(cli, owner, Path, dscispec.ApplicationsNamespace, t.GetComponentName(), enabled); err != nil { + return err + } - return err + // CloudService Monitoring handling + if platform == deploy.ManagedRhods { + if enabled { + if err := monitoring.WaitForDeploymentAvailable(ctx, resConf, ComponentName, dscispec.ApplicationsNamespace, 10, 1); err != nil { + return fmt.Errorf("deployment for %s is not ready to server: %w", ComponentName, err) + } + fmt.Printf("deployment for %s is done, updating monitoring rules\n", ComponentName) + } + if err := t.UpdatePrometheusConfig(cli, enabled && monitoringEnabled, ComponentName); err != nil { + return err + } + if err = deploy.DeployManifestsFromPath(cli, owner, + filepath.Join(deploy.DefaultManifestPath, "monitoring", "prometheus", "apps"), + dscispec.Monitoring.Namespace, + "prometheus", true); err != nil { + return err + } + } + return nil } diff --git a/controllers/dscinitialization/monitoring.go b/controllers/dscinitialization/monitoring.go index a16b9d2a780..530add5470b 100644 --- a/controllers/dscinitialization/monitoring.go +++ b/controllers/dscinitialization/monitoring.go @@ -58,6 +58,7 @@ func (r *DSCInitializationReconciler) configureManagedMonitoring(ctx context.Con "(.*)-(.*)model-mesh(.*).rules": "", "(.*)-(.*)odh-model-controller(.*).rules": "", "(.*)-(.*)ray(.*).rules": "", + "(.*)-(.*)trustyai(.*).rules": "", }) if err != nil { r.Log.Error(err, "error to remove previous enabled component rules")