From e0dbeffb85126796cb6ece6ae755587d42a808a9 Mon Sep 17 00:00:00 2001 From: Doug Szumski Date: Fri, 6 Jun 2025 17:18:23 +0100 Subject: [PATCH 1/4] Add Prometheus network exporter This exporter comes from https://github.com/openstack-k8s-operators and will replace the existing OVN exporter which was archived at the end of 2024. It can gather metrics from both OVN and OVS based OpenStack clouds. Change-Id: Idb070d5e5469abd472481f7e19614ee2a78c85d0 Signed-off-by: Doug Szumski --- .../Dockerfile.j2 | 45 +++++++++++++++++++ kolla/common/sources.py | 6 +++ ...ack-network-exporter-fd37c9bbe2fe387d.yaml | 5 +++ 3 files changed, 56 insertions(+) create mode 100644 docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 create mode 100644 releasenotes/notes/add-openstack-network-exporter-fd37c9bbe2fe387d.yaml diff --git a/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 new file mode 100644 index 0000000000..389f7c6181 --- /dev/null +++ b/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 @@ -0,0 +1,45 @@ +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} AS build-stage + +{% import "macros.j2" as macros with context %} + +{% if base_package_type == 'rpm' %} + + {% set prometheus_openstack_network_exporter_build_packages = [ + 'golang', + 'make', + ] %} + +{% elif base_package_type == 'deb' %} + + {% set prometheus_openstack_network_exporter_build_packages = [ + 'golang', + 'make', + ] %} + +{% endif %} + +{{ macros.install_packages(prometheus_openstack_network_exporter_build_packages | customizable("packages")) }} + +ADD prometheus-openstack-network-exporter-archive / + +RUN cd openstack-network-exporter* && make + +FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }} AS final-stage +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block prometheus_openstack_network_exporter_header %}{% endblock %} + +{% block prometheus_openstack_network_exporter_install %} +RUN mkdir /opt/openstack-network-exporter +COPY --from=build-stage /openstack-network-exporter*/dataplane-node-exporter /opt/openstack-network-exporter/ +{% endblock %} + +{{ macros.kolla_patch_sources() }} + +{% block prometheus_openstack_network_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} + +# NOTE: OVN/OVS are running as root. Since we need to read sockets owned by +# these services we don't switch to the Prometheus user here. diff --git a/kolla/common/sources.py b/kolla/common/sources.py index 24a0d7851a..9e2e53874f 100644 --- a/kolla/common/sources.py +++ b/kolla/common/sources.py @@ -384,6 +384,12 @@ 'releases/download/v${version}/' 'openstack-exporter' '_${version}_linux_${debian_arch}.tar.gz')}, + 'prometheus-openstack-network-exporter': { + 'version': '0.0.2', + 'type': 'url', + 'location': ('https://github.com/' + 'openstack-k8s-operators/openstack-network-exporter/' + 'archive/v${version}.tar.gz')}, 'prometheus-server': { 'version': '3.5.1', 'type': 'url', diff --git a/releasenotes/notes/add-openstack-network-exporter-fd37c9bbe2fe387d.yaml b/releasenotes/notes/add-openstack-network-exporter-fd37c9bbe2fe387d.yaml new file mode 100644 index 0000000000..6e9692ea47 --- /dev/null +++ b/releasenotes/notes/add-openstack-network-exporter-fd37c9bbe2fe387d.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Adds a Prometheus network exporter which can collect + metrics from both OVN and OVS based deployments. From 5096d8bff2519e983cb1c1b06a96a55f1849d87a Mon Sep 17 00:00:00 2001 From: Victor Chembaev Date: Mon, 13 Apr 2026 17:03:22 +0300 Subject: [PATCH 2/4] Return missing systemd-udev into cinder and glance containers systemd-udev package provides /usr/lib/udev/scsi_id tool, required for operating with scsi-attached storage Closes-Bug: #2148205 Change-Id: I7b0c25d361fc61992089ee88625fb3ab63c12fb4 Signed-off-by: Victor Chembaev --- docker/cinder/cinder-base/Dockerfile.j2 | 3 ++- docker/glance/glance-api/Dockerfile.j2 | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/cinder/cinder-base/Dockerfile.j2 b/docker/cinder/cinder-base/Dockerfile.j2 index e868f53853..d1f42a18bd 100644 --- a/docker/cinder/cinder-base/Dockerfile.j2 +++ b/docker/cinder/cinder-base/Dockerfile.j2 @@ -18,7 +18,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'cryptsetup', 'lvm2', 'nvme-cli', - 'qemu-img' + 'qemu-img', + 'systemd-udev' ] %} {% elif base_package_type == 'deb' %} {% set cinder_base_packages = [ diff --git a/docker/glance/glance-api/Dockerfile.j2 b/docker/glance/glance-api/Dockerfile.j2 index 045efb6aee..79289a4bcc 100644 --- a/docker/glance/glance-api/Dockerfile.j2 +++ b/docker/glance/glance-api/Dockerfile.j2 @@ -12,7 +12,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'lsscsi', 'device-mapper-multipath', 'nvme-cli', - 'qemu-img' + 'qemu-img', + 'systemd-udev' ] %} {% elif base_package_type == 'deb' %} {% set glance_api_packages = [ From c1fc912b7a15d7ac5801468f38ccb100c9bbd101 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Fri, 17 Apr 2026 02:35:31 +0000 Subject: [PATCH 3/4] Updated ansible-lint in test-requirements.txt parseable option has been retired in ansible-lint 26 [1] [1]: https://github.com/ansible/ansible-lint/commit/9f63dd10e4500c7537be6e488067f41a014d1540 Change-Id: Ic3efb973b92d5a0dadd6412a482c079daad4ff01 Co-Authored-By: Michal Nasiadka Signed-off-by: OpenStack Proposal Bot Generated-By: openstack/project-config:playbooks/proposal/propose_update.sh --- .ansible-lint | 1 - test-requirements.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index 0e51220542..6b5f1f15c5 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -4,7 +4,6 @@ exclude_paths: - zuul.d/ - kolla/template/repos.yaml offline: true -parseable: true profile: basic skip_list: - package-latest diff --git a/test-requirements.txt b/test-requirements.txt index 7e3178bd66..49e97f376e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,7 +1,7 @@ # NOTE(mnasiadka): Keeping 2.17 to satisfy py310 job ansible-core>=2.17; python_version < '3.11' # GPLv3 ansible-core>=2.18,<2.20; python_version >= '3.11' # GPLv3 -ansible-lint<26 # MIT +ansible-lint===26.4.0 # MIT bandit!=1.6.0,>=1.1.0 # Apache-2.0 bashate>=0.5.1 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 From a9bae9fe56dced112e71de51bd9f382f00d584ff Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Fri, 17 Apr 2026 10:25:45 +0200 Subject: [PATCH 4/4] Remove tox-py310 ansible-core version in test-reqs We're not running tox-py310 anymore, so it's safe to drop it Change-Id: Ie642b0261e0e01bfd35609470356d660f5a95430 Signed-off-by: Michal Nasiadka --- test-requirements.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index 49e97f376e..19e65b2d60 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1,3 @@ -# NOTE(mnasiadka): Keeping 2.17 to satisfy py310 job -ansible-core>=2.17; python_version < '3.11' # GPLv3 ansible-core>=2.18,<2.20; python_version >= '3.11' # GPLv3 ansible-lint===26.4.0 # MIT bandit!=1.6.0,>=1.1.0 # Apache-2.0