@@ -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
@@ -84,9 +85,11 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
8485 instance .Spec .Telemetry .Template .Autoscaling .Aodh .TLS = telemetry .Spec .Autoscaling .Aodh .TLS
8586 instance .Spec .Telemetry .Template .MetricStorage .PrometheusTLS = telemetry .Spec .MetricStorage .PrometheusTLS
8687 instance .Spec .Telemetry .Template .Ceilometer .TLS = telemetry .Spec .Ceilometer .TLS
88+ instance .Spec .Telemetry .Template .Ceilometer .MysqldExporterTLS = telemetry .Spec .Ceilometer .MysqldExporterTLS
8789 }
8890 instance .Spec .Telemetry .Template .Autoscaling .Aodh .TLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
8991 instance .Spec .Telemetry .Template .Ceilometer .TLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
92+ instance .Spec .Telemetry .Template .Ceilometer .MysqldExporterTLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
9093 instance .Spec .Telemetry .Template .MetricStorage .PrometheusTLS .CaBundleSecretName = instance .Status .TLS .CaBundleSecretName
9194
9295 aodhSvcs , err := service .GetServicesListWithLabel (
@@ -128,6 +131,16 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
128131 return ctrl.Result {}, err
129132 }
130133
134+ mysqldExporterSvcs , err := service .GetServicesListWithLabel (
135+ ctx ,
136+ helper ,
137+ instance .Namespace ,
138+ map [string ]string {common .AppSelector : "mysqld-exporter" },
139+ )
140+ if err != nil {
141+ return ctrl.Result {}, err
142+ }
143+
131144 // make sure to get to EndpointConfig when all service got created
132145 if len (aodhSvcs .Items ) == len (instance .Spec .Telemetry .Template .Autoscaling .Aodh .Override .Service ) {
133146 endpointDetails , ctrlResult , err := EnsureEndpointConfig (
@@ -216,6 +229,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
216229
217230 if telemetry .Status .Conditions .IsTrue (telemetryv1 .CeilometerReadyCondition ) {
218231 // NOTE: We don't have svc overrides for ceilometer objects.
232+ // Ceilometer
219233 endpointDetails , ctrlResult , err := EnsureEndpointConfig (
220234 ctx ,
221235 instance ,
@@ -235,6 +249,29 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
235249 }
236250 // update TLS settings with cert secret
237251 instance .Spec .Telemetry .Template .Ceilometer .TLS .SecretName = endpointDetails .GetEndptCertSecret (service .EndpointInternal )
252+
253+ // MysqldExporter
254+ if telemetry .Spec .Ceilometer .MysqldExporterEnabled != nil && * telemetry .Spec .Ceilometer .MysqldExporterEnabled {
255+ endpointDetails , ctrlResult , err := EnsureEndpointConfig (
256+ ctx ,
257+ instance ,
258+ helper ,
259+ telemetry ,
260+ mysqldExporterSvcs ,
261+ nil ,
262+ corev1beta1.Override {},
263+ corev1beta1 .OpenStackControlPlaneExposeTelemetryReadyCondition ,
264+ false , // TODO (mschuppert) could be removed when all integrated service support TLS
265+ tls.API {},
266+ )
267+ if err != nil {
268+ return ctrlResult , err
269+ } else if (ctrlResult != ctrl.Result {}) {
270+ return ctrlResult , nil
271+ }
272+ // update TLS settings with cert secret
273+ instance .Spec .Telemetry .Template .Ceilometer .MysqldExporterTLS .SecretName = endpointDetails .GetEndptCertSecret (service .EndpointInternal )
274+ }
238275 }
239276
240277 helper .GetLogger ().Info ("Reconciling Telemetry" , telemetryNamespaceLabel , instance .Namespace , telemetryNameLabel , telemetryName )
@@ -260,6 +297,12 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
260297 telemetry .Spec .Autoscaling .AutoscalingSpec .Aodh .NotifierImage = * version .Status .ContainerImages .AodhNotifierImage
261298 telemetry .Spec .Autoscaling .AutoscalingSpec .Aodh .ListenerImage = * version .Status .ContainerImages .AodhListenerImage
262299
300+ if version .Status .ContainerImages .CeilometerMysqldExporterImage != nil {
301+ telemetry .Spec .Ceilometer .MysqldExporterImage = * version .Status .ContainerImages .CeilometerMysqldExporterImage
302+ } else {
303+ telemetry .Spec .Ceilometer .MysqldExporterImage = ""
304+ }
305+
263306 if telemetry .Spec .Ceilometer .Secret == "" {
264307 telemetry .Spec .Ceilometer .Secret = instance .Spec .Secret
265308 }
@@ -302,6 +345,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont
302345 instance .Status .ContainerImages .CeilometerNotificationImage = version .Status .ContainerImages .CeilometerNotificationImage
303346 instance .Status .ContainerImages .CeilometerSgcoreImage = version .Status .ContainerImages .CeilometerSgcoreImage
304347 instance .Status .ContainerImages .CeilometerProxyImage = version .Status .ContainerImages .CeilometerProxyImage
348+ instance .Status .ContainerImages .CeilometerMysqldExporterImage = version .Status .ContainerImages .CeilometerMysqldExporterImage
305349 instance .Status .ContainerImages .AodhAPIImage = version .Status .ContainerImages .AodhAPIImage
306350 instance .Status .ContainerImages .AodhEvaluatorImage = version .Status .ContainerImages .AodhEvaluatorImage
307351 instance .Status .ContainerImages .AodhNotifierImage = version .Status .ContainerImages .AodhNotifierImage
@@ -328,6 +372,7 @@ func TelemetryImageMatch(ctx context.Context, controlPlane *corev1beta1.OpenStac
328372 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerNotificationImage , version .Status .ContainerImages .CeilometerNotificationImage ) ||
329373 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerSgcoreImage , version .Status .ContainerImages .CeilometerSgcoreImage ) ||
330374 ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerProxyImage , version .Status .ContainerImages .CeilometerProxyImage ) ||
375+ ! stringPointersEqual (controlPlane .Status .ContainerImages .CeilometerMysqldExporterImage , version .Status .ContainerImages .CeilometerMysqldExporterImage ) ||
331376 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhAPIImage , version .Status .ContainerImages .AodhAPIImage ) ||
332377 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhEvaluatorImage , version .Status .ContainerImages .AodhEvaluatorImage ) ||
333378 ! stringPointersEqual (controlPlane .Status .ContainerImages .AodhNotifierImage , version .Status .ContainerImages .AodhNotifierImage ) ||
0 commit comments