Skip to content

Commit caa23e7

Browse files
Merge pull request #1236 from vyzigold/add_mysqld_exporter
[OSPRH-12079] Add mysqld exporter
2 parents cb18787 + bb1bbc4 commit caa23e7

11 files changed

Lines changed: 72 additions & 0 deletions

apis/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16750,6 +16750,8 @@ spec:
1675016750
type: string
1675116751
ceilometerIpmiImage:
1675216752
type: string
16753+
ceilometerMysqldExporterImage:
16754+
type: string
1675316755
ceilometerNotificationImage:
1675416756
type: string
1675516757
ceilometerProxyImage:

apis/bases/core.openstack.org_openstackversions.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ spec:
6464
type: string
6565
ceilometerIpmiImage:
6666
type: string
67+
ceilometerMysqldExporterImage:
68+
type: string
6769
ceilometerNotificationImage:
6870
type: string
6971
ceilometerSgcoreImage:
@@ -271,6 +273,8 @@ spec:
271273
type: string
272274
ceilometerIpmiImage:
273275
type: string
276+
ceilometerMysqldExporterImage:
277+
type: string
274278
ceilometerNotificationImage:
275279
type: string
276280
ceilometerSgcoreImage:
@@ -443,6 +447,8 @@ spec:
443447
type: string
444448
ceilometerIpmiImage:
445449
type: string
450+
ceilometerMysqldExporterImage:
451+
type: string
446452
ceilometerNotificationImage:
447453
type: string
448454
ceilometerProxyImage:

apis/core/v1beta1/openstackversion_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ type ContainerTemplate struct {
8989
CeilometerIpmiImage *string `json:"ceilometerIpmiImage,omitempty"`
9090
CeilometerNotificationImage *string `json:"ceilometerNotificationImage,omitempty"`
9191
CeilometerSgcoreImage *string `json:"ceilometerSgcoreImage,omitempty"`
92+
CeilometerMysqldExporterImage *string `json:"ceilometerMysqldExporterImage,omitempty"`
9293
CinderAPIImage *string `json:"cinderAPIImage,omitempty"`
9394
CinderBackupImage *string `json:"cinderBackupImage,omitempty"`
9495
CinderSchedulerImage *string `json:"cinderSchedulerImage,omitempty"`

apis/core/v1beta1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16750,6 +16750,8 @@ spec:
1675016750
type: string
1675116751
ceilometerIpmiImage:
1675216752
type: string
16753+
ceilometerMysqldExporterImage:
16754+
type: string
1675316755
ceilometerNotificationImage:
1675416756
type: string
1675516757
ceilometerProxyImage:

config/crd/bases/core.openstack.org_openstackversions.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ spec:
6464
type: string
6565
ceilometerIpmiImage:
6666
type: string
67+
ceilometerMysqldExporterImage:
68+
type: string
6769
ceilometerNotificationImage:
6870
type: string
6971
ceilometerSgcoreImage:
@@ -271,6 +273,8 @@ spec:
271273
type: string
272274
ceilometerIpmiImage:
273275
type: string
276+
ceilometerMysqldExporterImage:
277+
type: string
274278
ceilometerNotificationImage:
275279
type: string
276280
ceilometerSgcoreImage:
@@ -443,6 +447,8 @@ spec:
443447
type: string
444448
ceilometerIpmiImage:
445449
type: string
450+
ceilometerMysqldExporterImage:
451+
type: string
446452
ceilometerNotificationImage:
447453
type: string
448454
ceilometerProxyImage:

config/default/manager_default_images.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ spec:
3939
value: quay.io/podified-antelope-centos9/openstack-ceilometer-ipmi:current-podified
4040
- name: RELATED_IMAGE_CEILOMETER_NOTIFICATION_IMAGE_URL_DEFAULT
4141
value: quay.io/podified-antelope-centos9/openstack-ceilometer-notification:current-podified
42+
- name: RELATED_IMAGE_CEILOMETER_MYSQLD_EXPORTER_IMAGE_URL_DEFAULT
43+
value: quay.io/prometheus/mysqld-exporter:v0.16.0
4244
- name: RELATED_IMAGE_CEILOMETER_SGCORE_IMAGE_URL_DEFAULT
4345
value: quay.io/openstack-k8s-operators/sg-core:v6.0.0
4446
- name: RELATED_IMAGE_CINDER_API_IMAGE_URL_DEFAULT

hack/export_related_images.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export RELATED_IMAGE_CEILOMETER_COMPUTE_IMAGE_URL_DEFAULT=quay.io/podified-antel
3434
export RELATED_IMAGE_CEILOMETER_NOTIFICATION_IMAGE_URL_DEFAULT=quay.io/podified-antelope-centos9/openstack-ceilometer-notification:current-podified
3535
export RELATED_IMAGE_CEILOMETER_IPMI_IMAGE_URL_DEFAULT=quay.io/podified-antelope-centos9/openstack-ceilometer-ipmi:current-podified
3636
export RELATED_IMAGE_CEILOMETER_SGCORE_IMAGE_URL_DEFAULT=quay.io/openstack-k8s-operators/sg-core:v6.0.0
37+
export RELATED_IMAGE_CEILOMETER_MYSQLD_EXPORTER_IMAGE_URL_DEFAULT=quay.io/prometheus/mysqld-exporter:v0.16.0
3738
export RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT=quay.io/podified-antelope-centos9/openstack-aodh-api:current-podified
3839
export RELATED_IMAGE_AODH_EVALUATOR_IMAGE_URL_DEFAULT=quay.io/podified-antelope-centos9/openstack-aodh-evaluator:current-podified
3940
export RELATED_IMAGE_AODH_NOTIFIER_IMAGE_URL_DEFAULT=quay.io/podified-antelope-centos9/openstack-aodh-notifier:current-podified

pkg/openstack/telemetry.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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) ||

pkg/openstack/version.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ func GetContainerImages(defaults *corev1beta1.ContainerDefaults, instance corev1
9898
CeilometerIpmiImage: getImg(instance.Spec.CustomContainerImages.CeilometerIpmiImage, defaults.CeilometerIpmiImage),
9999
CeilometerNotificationImage: getImg(instance.Spec.CustomContainerImages.CeilometerNotificationImage, defaults.CeilometerNotificationImage),
100100
CeilometerSgcoreImage: getImg(instance.Spec.CustomContainerImages.CeilometerSgcoreImage, defaults.CeilometerSgcoreImage),
101+
CeilometerMysqldExporterImage: getImg(instance.Spec.CustomContainerImages.CeilometerMysqldExporterImage, defaults.CeilometerMysqldExporterImage),
101102
CinderAPIImage: getImg(instance.Spec.CustomContainerImages.CinderAPIImage, defaults.CinderAPIImage),
102103
CinderBackupImage: getImg(instance.Spec.CustomContainerImages.CinderBackupImage, defaults.CinderBackupImage),
103104
CinderSchedulerImage: getImg(instance.Spec.CustomContainerImages.CinderSchedulerImage, defaults.CinderSchedulerImage),

0 commit comments

Comments
 (0)