@@ -52,7 +52,7 @@ const (
52
52
argoCDInstanceName = "openshift-gitops"
53
53
)
54
54
55
- func newClient (s * runtime.Scheme , namespace , name string ) client.Client {
55
+ func newClient (s * runtime.Scheme , namespace , name string , enableMonitoring bool ) client.Client {
56
56
ns := corev1.Namespace {
57
57
ObjectMeta : v1.ObjectMeta {
58
58
Name : namespace ,
@@ -65,17 +65,17 @@ func newClient(s *runtime.Scheme, namespace, name string) client.Client {
65
65
},
66
66
Spec : argoapp.ArgoCDSpec {
67
67
Monitoring : argoapp.ArgoCDMonitoringSpec {
68
- Enabled : true ,
68
+ Enabled : enableMonitoring ,
69
69
},
70
70
},
71
71
}
72
72
return fake .NewClientBuilder ().WithScheme (s ).WithObjects (& ns , & argocd ).Build ()
73
73
}
74
74
75
- func newMetricsReconciler (t * testing.T , namespace , name string ) ArgoCDMetricsReconciler {
75
+ func newMetricsReconciler (t * testing.T , namespace , name string , enableMonitoring bool ) ArgoCDMetricsReconciler {
76
76
t .Helper ()
77
77
s := newScheme ()
78
- c := newClient (s , namespace , name )
78
+ c := newClient (s , namespace , name , enableMonitoring )
79
79
r := ArgoCDMetricsReconciler {Client : c , Scheme : s }
80
80
return r
81
81
}
@@ -95,7 +95,7 @@ func TestReconcile_add_namespace_label(t *testing.T) {
95
95
},
96
96
}
97
97
for _ , tc := range testCases {
98
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
98
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
99
99
_ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
100
100
assert .NilError (t , err )
101
101
@@ -122,7 +122,7 @@ func TestReconcile_add_read_role(t *testing.T) {
122
122
},
123
123
}
124
124
for _ , tc := range testCases {
125
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
125
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
126
126
_ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
127
127
assert .NilError (t , err )
128
128
@@ -165,7 +165,7 @@ func TestReconcile_add_read_role_binding(t *testing.T) {
165
165
},
166
166
}
167
167
for _ , tc := range testCases {
168
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
168
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
169
169
_ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
170
170
assert .NilError (t , err )
171
171
@@ -209,7 +209,7 @@ func TestReconcile_add_service_monitors(t *testing.T) {
209
209
},
210
210
}
211
211
for _ , tc := range testCases {
212
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
212
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
213
213
_ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
214
214
assert .NilError (t , err )
215
215
@@ -260,6 +260,45 @@ func TestReconcile_add_service_monitors(t *testing.T) {
260
260
}
261
261
}
262
262
263
+ func TestReconcile_remove_service_monitors (t * testing.T ) {
264
+ testCases := []struct {
265
+ instanceName string
266
+ namespace string
267
+ }{
268
+ {
269
+ instanceName : argoCDInstanceName ,
270
+ namespace : "openshift-gitops" ,
271
+ },
272
+ {
273
+ instanceName : "instance-two" ,
274
+ namespace : "namespace-two" ,
275
+ },
276
+ }
277
+ for _ , tc := range testCases {
278
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , false )
279
+ _ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
280
+ assert .NilError (t , err )
281
+
282
+ serviceMonitor := monitoringv1.ServiceMonitor {}
283
+ serviceMonitorName := tc .instanceName
284
+
285
+ err = r .Client .Get (context .TODO (), types.NamespacedName {Name : serviceMonitorName , Namespace : tc .namespace }, & serviceMonitor )
286
+ assert .Error (t , err , err .Error ())
287
+
288
+ serviceMonitor = monitoringv1.ServiceMonitor {}
289
+ serviceMonitorName = fmt .Sprintf ("%s-server" , tc .instanceName )
290
+
291
+ err = r .Client .Get (context .TODO (), types.NamespacedName {Name : serviceMonitorName , Namespace : tc .namespace }, & serviceMonitor )
292
+ assert .Error (t , err , err .Error ())
293
+
294
+ serviceMonitor = monitoringv1.ServiceMonitor {}
295
+ serviceMonitorName = fmt .Sprintf ("%s-repo-server" , tc .instanceName )
296
+
297
+ err = r .Client .Get (context .TODO (), types.NamespacedName {Name : serviceMonitorName , Namespace : tc .namespace }, & serviceMonitor )
298
+ assert .Error (t , err , err .Error ())
299
+ }
300
+ }
301
+
263
302
func TestReconciler_add_prometheus_rule (t * testing.T ) {
264
303
testCases := []struct {
265
304
instanceName string
@@ -275,7 +314,7 @@ func TestReconciler_add_prometheus_rule(t *testing.T) {
275
314
},
276
315
}
277
316
for _ , tc := range testCases {
278
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
317
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
279
318
_ , err := r .Reconcile (context .TODO (), newRequest (tc .namespace , tc .instanceName ))
280
319
assert .NilError (t , err )
281
320
@@ -323,7 +362,7 @@ func TestReconciler_add_dashboard(t *testing.T) {
323
362
},
324
363
}
325
364
for _ , tc := range testCases {
326
- r := newMetricsReconciler (t , tc .namespace , tc .instanceName )
365
+ r := newMetricsReconciler (t , tc .namespace , tc .instanceName , true )
327
366
// Create dashboard namespace
328
367
err := r .Client .Create (context .TODO (), & ns )
329
368
assert .NilError (t , err )
0 commit comments