aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/ironic/ironic-conductor/Dockerfile.j210
-rw-r--r--docker/ironic/ironic-prometheus-exporter/Dockerfile.j241
-rw-r--r--docker/ironic/ironic-prometheus-exporter/extend_start.sh3
-rw-r--r--kolla/common/sources.py5
-rw-r--r--releasenotes/notes/add-ironic-prometheus-exporter-c793478ee5938bee.yaml8
5 files changed, 66 insertions, 1 deletions
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
diff --git a/kolla/common/sources.py b/kolla/common/sources.py
index abc5d1844..57de5d5c9 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 000000000..d3eeacf31
--- /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.