From e9feaf9edb5130e764ab8aafa6cc4e985f582549 Mon Sep 17 00:00:00 2001 From: Wen Zhou Date: Wed, 9 Oct 2024 13:52:35 +0200 Subject: [PATCH] fix: not data release version in DSCI and DSC for upgrade case Signed-off-by: Wen Zhou --- .../datasciencecluster_controller.go | 10 ++++++++++ .../dscinitialization_controller.go | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/controllers/datasciencecluster/datasciencecluster_controller.go b/controllers/datasciencecluster/datasciencecluster_controller.go index 5e522e335a5..9c48047bbf6 100644 --- a/controllers/datasciencecluster/datasciencecluster_controller.go +++ b/controllers/datasciencecluster/datasciencecluster_controller.go @@ -237,6 +237,16 @@ func (r *DataScienceClusterReconciler) Reconcile(ctx context.Context, req ctrl.R return ctrl.Result{}, err } } + // upgrade case to update release version in status + if instance.Status.Release.Version.Equals(currentOperatorRelease.Version.Version) { + instance, err = status.UpdateWithRetry(ctx, r.Client, instance, func(saved *dscv1.DataScienceCluster) { + saved.Status.Release = currentOperatorRelease + }) + if err != nil { + _ = r.reportError(err, instance, fmt.Sprintf("failed to update release version for DataScienceCluster resource %s", req.Name)) + return ctrl.Result{}, err + } + } // Initialize error list, instead of returning errors after every component is deployed var componentErrors *multierror.Error diff --git a/controllers/dscinitialization/dscinitialization_controller.go b/controllers/dscinitialization/dscinitialization_controller.go index 56033a9a470..c72f1be3cf8 100644 --- a/controllers/dscinitialization/dscinitialization_controller.go +++ b/controllers/dscinitialization/dscinitialization_controller.go @@ -151,6 +151,19 @@ func (r *DSCInitializationReconciler) Reconcile(ctx context.Context, req ctrl.Re return reconcile.Result{}, err } } + // upgrade case to update release version in status + if instance.Status.Release.Version.Equals(currentOperatorRelease.Version.Version) { + message := "Updating DSCInitialization status" + instance, err := status.UpdateWithRetry(ctx, r.Client, instance, func(saved *dsciv1.DSCInitialization) { + saved.Status.Release = currentOperatorRelease + }) + if err != nil { + r.Log.Error(err, "Failed to update release version for DSCInitialization resource.", "DSCInitialization", req.Namespace, "Request.Name", req.Name) + r.Recorder.Eventf(instance, corev1.EventTypeWarning, "DSCInitializationReconcileError", + "%s for instance %s", message, instance.Name) + return reconcile.Result{}, err + } + } // Check namespace is not exist, then create namespace := instance.Spec.ApplicationsNamespace