@@ -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