Skip to content

Commit 9541fd4

Browse files
committed
Remove exporter config map if it exists and exporter is disabled
1 parent 0cc489f commit 9541fd4

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

internal/controller/ols_app_server_reconciliator.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,20 @@ func (r *OLSConfigReconciler) reconcileExporterConfigMap(ctx context.Context, cr
150150
}
151151

152152
if !dataCollectorEnabled {
153-
r.logger.Info("Data collector not enabled, exporter configmap reconciliation skipped")
153+
// Attempt to delete exporter configmap if it exists
154+
foundCm := &corev1.ConfigMap{}
155+
err := r.Client.Get(ctx, client.ObjectKey{Name: ExporterConfigCmName, Namespace: r.Options.Namespace}, foundCm)
156+
if err != nil && !errors.IsNotFound(err) {
157+
return fmt.Errorf("failed to get exporter configmap: %w", err)
158+
}
159+
if err == nil {
160+
if delErr := r.Delete(ctx, foundCm); delErr != nil && !errors.IsNotFound(delErr) {
161+
return fmt.Errorf("failed to delete exporter configmap: %w", delErr)
162+
}
163+
r.logger.Info("Data collector not enabled, exporter configmap deleted", "configmap", foundCm.Name)
164+
} else {
165+
r.logger.Info("Data collector not enabled, exporter configmap does not exist")
166+
}
154167
return nil
155168
}
156169

internal/controller/ols_app_server_reconciliator_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,46 @@ var _ = Describe("App server reconciliator", Ordered, func() {
451451
Expect(err).NotTo(HaveOccurred())
452452
})
453453

454+
It("should create exporter configmap when data collector is enabled", func() {
455+
By("Enable telemetry via pull secret and reconcile")
456+
// Ensure exporter container has a valid image when enabled
457+
reconciler.Options.DataverseExporterImage = DataverseExporterImageDefault
458+
reconciler.Options.OpenShiftMCPServerImage = OpenShiftMCPServerImageDefault
459+
createTelemetryPullSecret()
460+
defer deleteTelemetryPullSecret()
461+
err := reconciler.reconcileAppServer(ctx, cr)
462+
Expect(err).NotTo(HaveOccurred())
463+
464+
By("Verify exporter configmap exists")
465+
cm := &corev1.ConfigMap{}
466+
err = k8sClient.Get(ctx, types.NamespacedName{Name: ExporterConfigCmName, Namespace: OLSNamespaceDefault}, cm)
467+
Expect(err).NotTo(HaveOccurred())
468+
})
469+
470+
It("should delete exporter configmap when data collector is disabled", func() {
471+
By("Ensure exporter configmap exists by enabling telemetry and reconciling")
472+
// Ensure exporter container has a valid image when enabled
473+
reconciler.Options.DataverseExporterImage = DataverseExporterImageDefault
474+
reconciler.Options.OpenShiftMCPServerImage = OpenShiftMCPServerImageDefault
475+
createTelemetryPullSecret()
476+
err := reconciler.reconcileAppServer(ctx, cr)
477+
Expect(err).NotTo(HaveOccurred())
478+
479+
By("Verify exporter configmap exists")
480+
cm := &corev1.ConfigMap{}
481+
err = k8sClient.Get(ctx, types.NamespacedName{Name: ExporterConfigCmName, Namespace: OLSNamespaceDefault}, cm)
482+
Expect(err).NotTo(HaveOccurred())
483+
484+
By("Disable telemetry and reconcile to trigger deletion")
485+
deleteTelemetryPullSecret()
486+
err = reconciler.reconcileAppServer(ctx, cr)
487+
Expect(err).NotTo(HaveOccurred())
488+
489+
By("Verify exporter configmap has been deleted")
490+
err = k8sClient.Get(ctx, types.NamespacedName{Name: ExporterConfigCmName, Namespace: OLSNamespaceDefault}, &corev1.ConfigMap{})
491+
Expect(errors.IsNotFound(err)).To(BeTrue())
492+
})
493+
454494
It("should return error when the LLM provider token secret does not have required keys", func() {
455495
By("General provider: the token secret miss 'apitoken' key")
456496
secret, _ := generateRandomSecret()

0 commit comments

Comments
 (0)