Skip to content

Commit 9e522bf

Browse files
authored
Fix: Skip error log when console link is disabled and absent (#949)
* Skip error log when console link is disabled and absent Signed-off-by: nmirasch <[email protected]> * Remove ConsoleLink when disabled, otherwise reconcile Signed-off-by: nmirasch <[email protected]> --------- Signed-off-by: nmirasch <[email protected]>
1 parent 9cc7224 commit 9e522bf

File tree

2 files changed

+34
-17
lines changed

2 files changed

+34
-17
lines changed

controllers/argocd_controller.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -142,25 +142,26 @@ func (r *ReconcileArgoCDRoute) Reconcile(ctx context.Context, request reconcile.
142142

143143
consoleLink := newConsoleLink(argoCDRouteURL, "Cluster Argo CD")
144144

145-
found := &console.ConsoleLink{}
146-
err = r.Client.Get(ctx, types.NamespacedName{Name: consoleLink.Name}, found)
145+
if isConsoleLinkDisabled() {
146+
return reconcile.Result{}, r.deleteConsoleLinkIfPresent(ctx, reqLogger)
147+
} else {
148+
found := &console.ConsoleLink{}
149+
err = r.Client.Get(ctx, types.NamespacedName{Name: consoleLink.Name}, found)
147150

148-
if err != nil {
149-
if errors.IsNotFound(err) {
150-
if !isConsoleLinkDisabled() {
151-
reqLogger.Info("Creating a new ConsoleLink", "ConsoleLink.Name", consoleLink.Name)
151+
if err != nil {
152+
if errors.IsNotFound(err) {
153+
reqLogger.Info("Creating a new ConsoleLink ", "ConsoleLink.Name", consoleLink.Name)
152154
return reconcile.Result{}, r.Client.Create(ctx, consoleLink)
155+
} else {
156+
reqLogger.Error(err, "Failed to get ConsoleLink", "ConsoleLink.Name", consoleLink.Name)
157+
return reconcile.Result{}, err
153158
}
154159
}
155-
reqLogger.Error(err, "ConsoleLink not found", "ConsoleLink.Name", consoleLink.Name)
156-
return reconcile.Result{}, err
157-
}
158-
if isConsoleLinkDisabled() {
159-
return reconcile.Result{}, r.deleteConsoleLinkIfPresent(ctx, reqLogger)
160-
} else if found.Spec.Href != argoCDRouteURL {
161-
reqLogger.Info("Updating the existing ConsoleLink", "ConsoleLink.Name", consoleLink.Name)
162-
found.Spec.Href = argoCDRouteURL
163-
return reconcile.Result{}, r.Client.Update(ctx, found)
160+
if found.Spec.Href != argoCDRouteURL {
161+
reqLogger.Info("Updating the existing ConsoleLink ", "ConsoleLink.Name", consoleLink.Name)
162+
found.Spec.Href = argoCDRouteURL
163+
return reconcile.Result{}, r.Client.Update(ctx, found)
164+
}
164165
}
165166

166167
reqLogger.Info("Skip reconcile: ConsoleLink already exists", "ConsoleLink.Name", consoleLink.Name)

controllers/argocd_controller_test.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ func TestReconcile_delete_consolelink(t *testing.T) {
8383
name string
8484
setEnvVarFunc func(*testing.T, string)
8585
envVar string
86+
consoleLinkPrevExist bool
8687
consoleLinkShouldExist bool
8788
wantErr bool
8889
Err error
@@ -92,6 +93,17 @@ func TestReconcile_delete_consolelink(t *testing.T) {
9293
setEnvVarFunc: func(t *testing.T, envVar string) {
9394
t.Setenv(disableArgoCDConsoleLink, envVar)
9495
},
96+
consoleLinkPrevExist: true,
97+
consoleLinkShouldExist: false,
98+
envVar: "true",
99+
wantErr: false,
100+
},
101+
{
102+
name: "DISABLE_DEFAULT_ARGOCD_CONSOLELINK is set to true and consoleLink doesn't exist previously",
103+
setEnvVarFunc: func(t *testing.T, envVar string) {
104+
t.Setenv(disableArgoCDConsoleLink, envVar)
105+
},
106+
consoleLinkPrevExist: false,
95107
consoleLinkShouldExist: false,
96108
envVar: "true",
97109
wantErr: false,
@@ -102,13 +114,15 @@ func TestReconcile_delete_consolelink(t *testing.T) {
102114
t.Setenv(disableArgoCDConsoleLink, envVar)
103115
},
104116
envVar: "false",
117+
consoleLinkPrevExist: true,
105118
consoleLinkShouldExist: true,
106119
wantErr: false,
107120
},
108121
{
109122
name: "DISABLE_DEFAULT_ARGOCD_CONSOLELINK isn't set and consoleLink doesn't get deleted",
110123
setEnvVarFunc: nil,
111124
envVar: "",
125+
consoleLinkPrevExist: true,
112126
consoleLinkShouldExist: true,
113127
wantErr: false,
114128
},
@@ -118,8 +132,10 @@ func TestReconcile_delete_consolelink(t *testing.T) {
118132
t.Run(test.name, func(t *testing.T) {
119133
reconcileArgoCD, fakeClient := newFakeReconcileArgoCD(argoCDRoute, consoleLink)
120134
consoleLink := newConsoleLink("https://test.com", "Cluster Argo CD")
121-
err := fakeClient.Create(context.TODO(), consoleLink)
122-
assert.NilError(t, err)
135+
if test.consoleLinkPrevExist {
136+
err := fakeClient.Create(context.TODO(), consoleLink)
137+
assert.NilError(t, err)
138+
}
123139

124140
if test.setEnvVarFunc != nil {
125141
test.setEnvVarFunc(t, test.envVar)

0 commit comments

Comments
 (0)