diff --git a/docker/ironic/ironic-conductor/Dockerfile.j2 b/docker/ironic/ironic-conductor/Dockerfile.j2 index 63e48d1ea9..ea488ee3c0 100644 --- a/docker/ironic/ironic-conductor/Dockerfile.j2 +++ b/docker/ironic/ironic-conductor/Dockerfile.j2 @@ -46,7 +46,15 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'ironic-staging-drivers', ] %} -RUN {{ macros.install_pip(ironic_conductor_pip_packages | customizable("pip_packages")) }} +{% set ironic_conductor_plugins_pip_packages = [ +'/plugins/*' +] %} + +ADD plugins-archive / +RUN {{ macros.install_pip(ironic_conductor_pip_packages | customizable("pip_packages")) }} \ + && if [ "$(ls /plugins)" ]; then \ + {{ macros.install_pip(ironic_conductor_plugins_pip_packages) }}; \ + fi {{ macros.install_packages(ironic_conductor_packages | customizable("packages")) }} diff --git a/docker/ironic/ironic-prometheus-exporter/Dockerfile.j2 b/docker/ironic/ironic-prometheus-exporter/Dockerfile.j2 new file mode 100644 index 0000000000..dab4b397cd --- /dev/null +++ b/docker/ironic/ironic-prometheus-exporter/Dockerfile.j2 @@ -0,0 +1,41 @@ +FROM {{ namespace }}/{{ image_prefix }}ironic-conductor:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +USER root + +{% block ironic_prometheus_exporter_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if base_package_type == 'rpm' %} + + {% set ironic_prometheus_exporter_packages = [ + 'httpd', + 'mod_ssl', + 'python3-mod_wsgi' + ] %} + +{{ macros.install_packages(ironic_prometheus_exporter_packages | customizable("packages")) }} +RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ + && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf + +{% elif base_package_type == 'deb' %} + {% set ironic_prometheus_exporter_packages = [ + 'apache2', + 'libapache2-mod-wsgi-py3' + ] %} + +{{ macros.install_packages(ironic_prometheus_exporter_packages | customizable("packages")) }} +RUN echo > /etc/apache2/ports.conf + +{% endif %} + +ENV IRONIC_CONFIG /etc/ironic/ironic.conf + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block ironic_prometheus_exporter_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/ironic/ironic-prometheus-exporter/extend_start.sh b/docker/ironic/ironic-prometheus-exporter/extend_start.sh new file mode 100644 index 0000000000..c55f0b1995 --- /dev/null +++ b/docker/ironic/ironic-prometheus-exporter/extend_start.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/kolla_httpd_setup diff --git a/kolla/common/sources.py b/kolla/common/sources.py index abc5d18449..57de5d5c9e 100644 --- a/kolla/common/sources.py +++ b/kolla/common/sources.py @@ -172,6 +172,11 @@ SOURCES = { 'type': 'url', 'location': ('$tarballs_base/openstack/ironic-inspector/' 'ironic-inspector-${openstack_branch}.tar.gz')}, + 'ironic-conductor-plugin-prometheus-exporter': { + 'type': 'url', + 'location': ( + '$tarballs_base/openstack/ironic-prometheus-exporter/' + 'ironic-prometheus-exporter-${openstack_branch}.tar.gz')}, 'keystone-base': { 'type': 'url', 'location': ('$tarballs_base/openstack/keystone/' diff --git a/releasenotes/notes/add-ironic-prometheus-exporter-c793478ee5938bee.yaml b/releasenotes/notes/add-ironic-prometheus-exporter-c793478ee5938bee.yaml new file mode 100644 index 0000000000..d3eeacf31c --- /dev/null +++ b/releasenotes/notes/add-ironic-prometheus-exporter-c793478ee5938bee.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Adds an image and further support for the ironic-prometheus-exporter, 'a + Tool to expose hardware sensor data in the Prometheus format through an HTTP + endpoint'. + See https://opendev.org/openstack/ironic-prometheus-exporter for more details + about the exporter.