From f54fb018b0f47c603046325159a1f17a08cab2af Mon Sep 17 00:00:00 2001 From: Robin Klostermeyer Date: Mon, 20 Feb 2023 13:27:55 +0100 Subject: Add ironic-prometheus-exporter This commit adds the ironic-prometheus-exporter, following the conventions used by the previously integrated exporters. '[The] Ironic Prometheus Exporter is a Tool to expose hardware sensor data in the Prometheus format through an HTTP endpoint.'[0] [0] https://opendev.org/openstack/ironic-prometheus-exporter Change-Id: If833f1f4a33c27cdc941dcc7cd5bbb06b26e1eaf --- docker/ironic/ironic-conductor/Dockerfile.j2 | 10 +++++- .../ironic-prometheus-exporter/Dockerfile.j2 | 41 ++++++++++++++++++++++ .../ironic-prometheus-exporter/extend_start.sh | 3 ++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 docker/ironic/ironic-prometheus-exporter/Dockerfile.j2 create mode 100644 docker/ironic/ironic-prometheus-exporter/extend_start.sh (limited to 'docker') diff --git a/docker/ironic/ironic-conductor/Dockerfile.j2 b/docker/ironic/ironic-conductor/Dockerfile.j2 index 63e48d1ea..ea488ee3c 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 000000000..dab4b397c --- /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 000000000..c55f0b199 --- /dev/null +++ b/docker/ironic/ironic-prometheus-exporter/extend_start.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/kolla_httpd_setup -- cgit v1.2.3