From 3f878136e323de67a378256f2818bc843a0b67a5 Mon Sep 17 00:00:00 2001 From: nmirasch Date: Tue, 19 Aug 2025 11:53:18 +0200 Subject: [PATCH 1/2] Skip error log when console link is disabled and absent Signed-off-by: nmirasch --- controllers/argocd_controller.go | 5 +++-- controllers/argocd_controller_test.go | 20 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/controllers/argocd_controller.go b/controllers/argocd_controller.go index c67e1957eea..921a302a72b 100644 --- a/controllers/argocd_controller.go +++ b/controllers/argocd_controller.go @@ -151,9 +151,10 @@ func (r *ReconcileArgoCDRoute) Reconcile(ctx context.Context, request reconcile. reqLogger.Info("Creating a new ConsoleLink", "ConsoleLink.Name", consoleLink.Name) return reconcile.Result{}, r.Client.Create(ctx, consoleLink) } + } else { + reqLogger.Error(err, "Error getting ConsoleLink", "ConsoleLink.Name", consoleLink.Name) + return reconcile.Result{}, err } - reqLogger.Error(err, "ConsoleLink not found", "ConsoleLink.Name", consoleLink.Name) - return reconcile.Result{}, err } if isConsoleLinkDisabled() { return reconcile.Result{}, r.deleteConsoleLinkIfPresent(ctx, reqLogger) diff --git a/controllers/argocd_controller_test.go b/controllers/argocd_controller_test.go index 71b8742b61b..1fe540dcf32 100644 --- a/controllers/argocd_controller_test.go +++ b/controllers/argocd_controller_test.go @@ -83,6 +83,7 @@ func TestReconcile_delete_consolelink(t *testing.T) { name string setEnvVarFunc func(*testing.T, string) envVar string + consoleLinkPrevExist bool consoleLinkShouldExist bool wantErr bool Err error @@ -92,6 +93,17 @@ func TestReconcile_delete_consolelink(t *testing.T) { setEnvVarFunc: func(t *testing.T, envVar string) { t.Setenv(disableArgoCDConsoleLink, envVar) }, + consoleLinkPrevExist: true, + consoleLinkShouldExist: false, + envVar: "true", + wantErr: false, + }, + { + name: "DISABLE_DEFAULT_ARGOCD_CONSOLELINK is set to true and consoleLink doesn't exist previously", + setEnvVarFunc: func(t *testing.T, envVar string) { + t.Setenv(disableArgoCDConsoleLink, envVar) + }, + consoleLinkPrevExist: false, consoleLinkShouldExist: false, envVar: "true", wantErr: false, @@ -102,6 +114,7 @@ func TestReconcile_delete_consolelink(t *testing.T) { t.Setenv(disableArgoCDConsoleLink, envVar) }, envVar: "false", + consoleLinkPrevExist: true, consoleLinkShouldExist: true, wantErr: false, }, @@ -109,6 +122,7 @@ func TestReconcile_delete_consolelink(t *testing.T) { name: "DISABLE_DEFAULT_ARGOCD_CONSOLELINK isn't set and consoleLink doesn't get deleted", setEnvVarFunc: nil, envVar: "", + consoleLinkPrevExist: true, consoleLinkShouldExist: true, wantErr: false, }, @@ -118,8 +132,10 @@ func TestReconcile_delete_consolelink(t *testing.T) { t.Run(test.name, func(t *testing.T) { reconcileArgoCD, fakeClient := newFakeReconcileArgoCD(argoCDRoute, consoleLink) consoleLink := newConsoleLink("https://test.com", "Cluster Argo CD") - err := fakeClient.Create(context.TODO(), consoleLink) - assert.NilError(t, err) + if test.consoleLinkPrevExist { + err := fakeClient.Create(context.TODO(), consoleLink) + assert.NilError(t, err) + } if test.setEnvVarFunc != nil { test.setEnvVarFunc(t, test.envVar) From 959fe11dcb369db2961adbb67b688d76840357ed Mon Sep 17 00:00:00 2001 From: nmirasch Date: Wed, 27 Aug 2025 10:49:20 +0200 Subject: [PATCH 2/2] Remove ConsoleLink when disabled, otherwise reconcile Signed-off-by: nmirasch --- controllers/argocd_controller.go | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/controllers/argocd_controller.go b/controllers/argocd_controller.go index 921a302a72b..f083f9ce48d 100644 --- a/controllers/argocd_controller.go +++ b/controllers/argocd_controller.go @@ -142,26 +142,26 @@ func (r *ReconcileArgoCDRoute) Reconcile(ctx context.Context, request reconcile. consoleLink := newConsoleLink(argoCDRouteURL, "Cluster Argo CD") - found := &console.ConsoleLink{} - err = r.Client.Get(ctx, types.NamespacedName{Name: consoleLink.Name}, found) + if isConsoleLinkDisabled() { + return reconcile.Result{}, r.deleteConsoleLinkIfPresent(ctx, reqLogger) + } else { + found := &console.ConsoleLink{} + err = r.Client.Get(ctx, types.NamespacedName{Name: consoleLink.Name}, found) - if err != nil { - if errors.IsNotFound(err) { - if !isConsoleLinkDisabled() { - reqLogger.Info("Creating a new ConsoleLink", "ConsoleLink.Name", consoleLink.Name) + if err != nil { + if errors.IsNotFound(err) { + reqLogger.Info("Creating a new ConsoleLink ", "ConsoleLink.Name", consoleLink.Name) return reconcile.Result{}, r.Client.Create(ctx, consoleLink) + } else { + reqLogger.Error(err, "Failed to get ConsoleLink", "ConsoleLink.Name", consoleLink.Name) + return reconcile.Result{}, err } - } else { - reqLogger.Error(err, "Error getting ConsoleLink", "ConsoleLink.Name", consoleLink.Name) - return reconcile.Result{}, err } - } - if isConsoleLinkDisabled() { - return reconcile.Result{}, r.deleteConsoleLinkIfPresent(ctx, reqLogger) - } else if found.Spec.Href != argoCDRouteURL { - reqLogger.Info("Updating the existing ConsoleLink", "ConsoleLink.Name", consoleLink.Name) - found.Spec.Href = argoCDRouteURL - return reconcile.Result{}, r.Client.Update(ctx, found) + if found.Spec.Href != argoCDRouteURL { + reqLogger.Info("Updating the existing ConsoleLink ", "ConsoleLink.Name", consoleLink.Name) + found.Spec.Href = argoCDRouteURL + return reconcile.Result{}, r.Client.Update(ctx, found) + } } reqLogger.Info("Skip reconcile: ConsoleLink already exists", "ConsoleLink.Name", consoleLink.Name)