Skip to content

Commit 8ab4de5

Browse files
author
Miguel Lavalle
committed
Enable OVNDBCluster metrics collection
Add Prometheus metrics support to OVNDBCluster by configuring the openstack-network-exporter sidecar container. This enables monitoring of OVSDB server metrics through the same pattern used for OVNNorthd. Changes include: - Add ExporterImage assignment for OVNDBCluster reconciliation - Update container image status tracking for OpenstackNetworkExporter Resolves: https://issues.redhat.com/browse/OSPRH-12567 Assisted-by: Claude Signed-off-by: Miguel Lavalle <mlavalle@redhat.com>
1 parent 6523ec5 commit 8ab4de5

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

pkg/openstack/ovn.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack
136136
if !instance.Spec.Ovn.Enabled {
137137
instance.Status.ContainerImages.OvnNbDbclusterImage = nil
138138
instance.Status.ContainerImages.OvnSbDbclusterImage = nil
139+
instance.Status.ContainerImages.OpenstackNetworkExporterImage = nil
139140
if _, err := EnsureDeleted(ctx, helper, OVNDBCluster); err != nil {
140141
return false, conditions, err
141142
}
@@ -221,6 +222,8 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack
221222
OVNDBCluster.Spec.ContainerImage = *version.Status.ContainerImages.OvnSbDbclusterImage
222223
}
223224

225+
OVNDBCluster.Spec.ExporterImage = *getImg(version.Status.ContainerImages.OpenstackNetworkExporterImage, &missingImageDefault)
226+
224227
if OVNDBCluster.Spec.StorageClass == "" {
225228
OVNDBCluster.Spec.StorageClass = instance.Spec.StorageClass
226229
}
@@ -246,6 +249,7 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack
246249
if OVNDBClustersReady {
247250
instance.Status.ContainerImages.OvnNbDbclusterImage = version.Status.ContainerImages.OvnNbDbclusterImage
248251
instance.Status.ContainerImages.OvnSbDbclusterImage = version.Status.ContainerImages.OvnSbDbclusterImage
252+
instance.Status.ContainerImages.OpenstackNetworkExporterImage = version.Status.ContainerImages.OpenstackNetworkExporterImage
249253
}
250254

251255
return OVNDBClustersReady, conditions, nil

tests/kuttl/common/osp_check_noapi_service_certs.sh

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,21 @@ for service in "${!services_secrets[@]}"; do
3737
for port in $ports; do
3838
echo "Connecting to $service on port $port..."
3939

40+
# Use different secret for metrics port 1981
41+
current_secret="$secret"
42+
if [[ "$port" == "1981" && ("$service" == "ovsdbserver-nb-0" || "$service" == "ovsdbserver-sb-0") ]]; then
43+
current_secret="cert-ovn-metrics"
44+
# Fetch the certificate from the metrics secret
45+
current_secret_cert=$(oc get secret "$current_secret" -n "$NAMESPACE" -o jsonpath="{.data['tls\.crt']}" | base64 --decode 2>&1)
46+
else
47+
current_secret_cert="$secret_cert"
48+
fi
49+
50+
if [[ -z "$current_secret_cert" ]]; then
51+
echo "Error retrieving or decoding certificate from secret $current_secret for service $service port $port."
52+
continue
53+
fi
54+
4055
# Captures the certificate section from the openssl output
4156
pod_cert=$(oc rsh -n "$NAMESPACE" openstackclient openssl s_client -connect "$cluster_ip:$port" -servername "$cluster_ip" </dev/null 2>/dev/null | sed -ne '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p')
4257

@@ -45,7 +60,7 @@ for service in "${!services_secrets[@]}"; do
4560
continue
4661
fi
4762

48-
if [[ "$pod_cert" == "$secret_cert" ]]; then
63+
if [[ "$pod_cert" == "$current_secret_cert" ]]; then
4964
echo "Certificates for $service on port $port match the secret."
5065
else
5166
echo "Certificates for $service on port $port DO NOT match the secret."

0 commit comments

Comments
 (0)