@@ -47,6 +47,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
4747 instance .Status .ContainerImages .CeilometerNotificationImage = nil
4848 instance .Status .ContainerImages .CeilometerSgcoreImage = nil
4949 instance .Status .ContainerImages .CeilometerProxyImage = nil
50+ instance .Status .ContainerImages .CeilometerMysqldExporterImage = nil
5051 instance .Status .ContainerImages .AodhAPIImage = nil
5152 instance .Status .ContainerImages .AodhEvaluatorImage = nil
5253 instance .Status .ContainerImages .AodhNotifierImage = nil
@@ -97,6 +98,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
9798 }
9899 instance .Spec .Telemetry .Template .Autoscaling .Aodh .TLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
99100 instance .Spec .Telemetry .Template .Ceilometer .TLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
101+ instance .Spec .Telemetry .Template .Ceilometer .MysqldExporterTLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
100102 instance .Spec .Telemetry .Template .Ceilometer .KSMTLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
101103 instance .Spec .Telemetry .Template .MetricStorage .PrometheusTLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
102104
@@ -148,6 +150,16 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
148150 return ctrl.Result {}, err
149151 }
150152
153+ mysqldExporterSvcs , err := service .GetServicesListWithLabel (
154+ ctx ,
155+ helper ,
156+ instance .Namespace ,
157+ map [string ]string {common .AppSelector : "mysqld-exporter" },
158+ )
159+ if err != nil {
160+ return ctrl.Result {}, err
161+ }
162+
151163 // make sure to get to EndpointConfig when all service got created
152164 if len (aodhSvcs .Items ) == len (instance .Spec .Telemetry .Template .Autoscaling .Aodh .Override .Service ) {
153165 endpointDetails , ctrlResult , err := EnsureEndpointConfig (
@@ -236,6 +248,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
236248
237249 if telemetry .Status .Conditions .IsTrue (telemetryv1 .CeilometerReadyCondition ) {
238250 // NOTE: We don't have svc overrides for ceilometer objects.
251+ // Ceilometer
239252 endpointDetails , ctrlResult , err := EnsureEndpointConfig (
240253 ctx ,
241254 instance ,
@@ -256,6 +269,29 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
256269 // update TLS settings with cert secret
257270 instance .Spec .Telemetry .Template .Ceilometer .TLS .SecretName = endpointDetails .GetEndptCertSecret (service .EndpointInternal )
258271
272+ // MysqldExporter
273+ if telemetry .Spec .Ceilometer .MysqldExporterEnabled != nil && * telemetry .Spec .Ceilometer .MysqldExporterEnabled {
274+ endpointDetails , ctrlResult , err := EnsureEndpointConfig (
275+ ctx ,
276+ instance ,
277+ helper ,
278+ telemetry ,
279+ mysqldExporterSvcs ,
280+ nil ,
281+ corev1beta1.Override {},
282+ corev1beta1 .OpenStackControlPlaneExposeTelemetryReadyCondition ,
283+ false , // TODO (mschuppert) could be removed when all integrated service support TLS
284+ tls.API {},
285+ )
286+ if err != nil {
287+ return ctrlResult , err
288+ } else if (ctrlResult != ctrl.Result {}) {
289+ return ctrlResult , nil
290+ }
291+ // update TLS settings with cert secret
292+ instance .Spec .Telemetry .Template .Ceilometer .MysqldExporterTLS .SecretName = endpointDetails .GetEndptCertSecret (service .EndpointInternal )
293+ }
294+
259295 // NOTE: We don't have svc overrides for KSM objects too.
260296 ksmEpDetails , ctrlResult , err := EnsureEndpointConfig (
261297 ctx ,
@@ -307,6 +343,12 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
307343 telemetry .Spec .Ceilometer .KSMImage = ""
308344 }
309345
346+ if version .Status .ContainerImages .CeilometerMysqldExporterImage != nil {
347+ telemetry .Spec .Ceilometer .MysqldExporterImage = * version .Status .ContainerImages .CeilometerMysqldExporterImage
348+ } else {
349+ telemetry .Spec .Ceilometer .MysqldExporterImage = ""
350+ }
351+
310352 if telemetry .Spec .Ceilometer .Secret == "" {
311353 telemetry .Spec .Ceilometer .Secret = instance .Spec .Secret
312354 }
@@ -349,6 +391,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
349391 instance .Status .ContainerImages .CeilometerNotificationImage = version .Status .ContainerImages .CeilometerNotificationImage
350392 instance .Status .ContainerImages .CeilometerSgcoreImage = version .Status .ContainerImages .CeilometerSgcoreImage
351393 instance .Status .ContainerImages .CeilometerProxyImage = version .Status .ContainerImages .CeilometerProxyImage
394+ instance .Status .ContainerImages .CeilometerMysqldExporterImage = version .Status .ContainerImages .CeilometerMysqldExporterImage
352395 instance .Status .ContainerImages .KsmImage = version .Status .ContainerImages .KsmImage
353396 instance .Status .ContainerImages .AodhAPIImage = version .Status .ContainerImages .AodhAPIImage
354397 instance .Status .ContainerImages .AodhEvaluatorImage = version .Status .ContainerImages .AodhEvaluatorImage
@@ -376,6 +419,7 @@ func TelemetryImageMatch(ctx context.Context, controlPlane *corev1beta1.OpenStac
376419 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerNotificationImage , version .Status .ContainerImages .CeilometerNotificationImage ) ||
377420 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerSgcoreImage , version .Status .ContainerImages .CeilometerSgcoreImage ) ||
378421 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerProxyImage , version .Status .ContainerImages .CeilometerProxyImage ) ||
422+ ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerMysqldExporterImage , version .Status .ContainerImages .CeilometerMysqldExporterImage ) ||
379423 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhAPIImage , version .Status .ContainerImages .AodhAPIImage ) ||
380424 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhEvaluatorImage , version .Status .ContainerImages .AodhEvaluatorImage ) ||
381425 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhNotifierImage , version .Status .ContainerImages .AodhNotifierImage ) ||
0 commit comments