From 835959af7d902fd3b11cb0989fd0fd5ccdb328d8 Mon Sep 17 00:00:00 2001 From: Yauheni Kaliuta Date: Wed, 12 Jun 2024 17:54:09 +0300 Subject: [PATCH] Dsc creation postpone (#1041) * main: move DSC creation after DSCIs one Reorder a bit to keep definition of cleanExistingResourceFunc next to the Add() call. Signed-off-by: Yauheni Kaliuta * main: convert DSC creation to RunableFunc DSC creation is checked by the webhook so will not work from the main before manager starts if webhook is enabled. The same as DSCI. It also requires CreateWithRetry() for the same reasons as e26100e87e53 ("upgrade: retry if default DSCI creation fails (#1008)") Signed-off-by: Yauheni Kaliuta --------- Signed-off-by: Yauheni Kaliuta --- main.go | 22 +++++++++++++++------- pkg/upgrade/upgrade.go | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 3747357da6a..7e4e9971142 100644 --- a/main.go +++ b/main.go @@ -214,6 +214,21 @@ func main() { //nolint:funlen } } + // Create default DSC CR for managed RHODS + if platform == cluster.ManagedRhods { + var createDefaultDSCFunc manager.RunnableFunc = func(ctx context.Context) error { + err := upgrade.CreateDefaultDSC(context.TODO(), setupClient) + if err != nil { + setupLog.Error(err, "unable to create default DSC CR by the operator") + } + return err + } + err := mgr.Add(createDefaultDSCFunc) + if err != nil { + setupLog.Error(err, "error scheduling DSC creation") + os.Exit(1) + } + } // Cleanup resources from previous v2 releases var cleanExistingResourceFunc manager.RunnableFunc = func(ctx context.Context) error { if err = upgrade.CleanupExistingResource(ctx, setupClient, platform, dscApplicationsNamespace, dscMonitoringNamespace); err != nil { @@ -222,13 +237,6 @@ func main() { //nolint:funlen return err } - // Create default DSC CR for managed RHODS - if platform == cluster.ManagedRhods { - if err := upgrade.CreateDefaultDSC(context.TODO(), setupClient); err != nil { - setupLog.Error(err, "unable to create default DSC CR by the operator") - os.Exit(1) - } - } err = mgr.Add(cleanExistingResourceFunc) if err != nil { setupLog.Error(err, "error remove deprecated resources from previous version") diff --git a/pkg/upgrade/upgrade.go b/pkg/upgrade/upgrade.go index 064bc087a8a..b2e478198fb 100644 --- a/pkg/upgrade/upgrade.go +++ b/pkg/upgrade/upgrade.go @@ -102,7 +102,7 @@ func CreateDefaultDSC(ctx context.Context, cli client.Client) error { }, }, } - err := cli.Create(ctx, releaseDataScienceCluster) + err := cluster.CreateWithRetry(ctx, cli, releaseDataScienceCluster, 1) // 1 min timeout switch { case err == nil: fmt.Printf("created DataScienceCluster resource\n")