aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/prometheus
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/prometheus')
-rw-r--r--kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j221
-rw-r--r--kolla/docker/prometheus/prometheus-base/Dockerfile.j217
-rw-r--r--kolla/docker/prometheus/prometheus-base/extend_start.sh9
-rw-r--r--kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j236
-rw-r--r--kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j220
-rw-r--r--kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j223
-rw-r--r--kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j225
-rw-r--r--kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j223
-rw-r--r--kolla/docker/prometheus/prometheus-mtail/Dockerfile.j225
-rw-r--r--kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j223
-rw-r--r--kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j223
-rw-r--r--kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j222
-rw-r--r--kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j224
-rw-r--r--kolla/docker/prometheus/prometheus-server/Dockerfile.j224
-rw-r--r--kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j225
15 files changed, 340 insertions, 0 deletions
diff --git a/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2
new file mode 100644
index 000000000..8f2df0492
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-alertmanager/Dockerfile.j2
@@ -0,0 +1,21 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_alertmanager_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_alertmanager_install %}
+ADD prometheus-alertmanager-archive /prometheus-alertmanager-source
+RUN cp -r /prometheus-alertmanager-source/* /opt/ \
+ && ln -s /opt/alertmanager* /opt/prometheus_alertmanager
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_alertmanager_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-base/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-base/Dockerfile.j2
new file mode 100644
index 000000000..123bd4ba3
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-base/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_base_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='prometheus') }}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_base_footer %}{% endblock %}
diff --git a/kolla/docker/prometheus/prometheus-base/extend_start.sh b/kolla/docker/prometheus/prometheus-base/extend_start.sh
new file mode 100644
index 000000000..8613330c6
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-base/extend_start.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Create log directory, with appropriate permissions
+if [[ ! -d "/var/log/kolla/prometheus" ]]; then
+ mkdir -p /var/log/kolla/prometheus
+fi
+if [[ $(stat -c %a /var/log/kolla/prometheus) != "755" ]]; then
+ chmod 755 /var/log/kolla/prometheus
+fi
diff --git a/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2
new file mode 100644
index 000000000..95018facf
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2
@@ -0,0 +1,36 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_blackbox_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% if base_package_type == 'rpm' %}
+ {% set blackbox_packages = [
+ 'libcap'
+ ] %}
+{% elif base_package_type == 'deb' %}
+ {% set blackbox_packages = [
+ 'libcap2-bin'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(blackbox_packages | customizable("packages")) }}
+
+{% block prometheus_blackbox_exporter_install %}
+ADD prometheus-blackbox-exporter-archive /prometheus-blackbox-exporter-source
+
+RUN ln -s /prometheus-blackbox-exporter-source/* prometheus-blackbox-exporter \
+ && mkdir -p /opt/blackbox_exporter/ \
+ && cp /prometheus-blackbox-exporter/blackbox_exporter /opt/blackbox_exporter/ \
+ && setcap cap_net_raw+ep /opt/blackbox_exporter/blackbox_exporter
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_blackbox_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2
new file mode 100644
index 000000000..884f4acd2
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-cadvisor/Dockerfile.j2
@@ -0,0 +1,20 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_cadvisor_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_cadvisor_install %}
+ADD prometheus-cadvisor-archive /prometheus-cadvisor-source
+
+RUN cp /prometheus-cadvisor-source /opt/cadvisor \
+ && chmod 0755 /opt/cadvisor
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_cadvisor_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2
new file mode 100644
index 000000000..63d09409c
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-elasticsearch-exporter/Dockerfile.j2
@@ -0,0 +1,23 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_elasticsearch_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_elasticsearch_exporter_install %}
+ADD prometheus-elasticsearch-exporter-archive /prometheus-elasticsearch-exporter-source
+
+RUN ln -s /prometheus-elasticsearch-exporter-source/* prometheus-elasticsearch-exporter \
+ && mkdir -p /opt/elasticsearch_exporter \
+ && cp /prometheus-elasticsearch-exporter/elasticsearch_exporter /opt/elasticsearch_exporter/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_elasticsearch_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
new file mode 100644
index 000000000..c32b2f8c7
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_libvirt_exporter_header %}{% endblock %}
+
+{{ macros.install_packages(prometheus_libvirt_exporter_packages | customizable("packages")) }}
+
+{% block prometheus_libvirt_exporter_install %}
+ADD prometheus-libvirt-exporter-archive /prometheus-libvirt-exporter-source
+
+RUN ln -s /prometheus-libvirt-exporter-source/* prometheus-libvirt-exporter \
+ && cp /prometheus-libvirt-exporter/prometheus-libvirt-exporter /opt/libvirt-exporter
+
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_libvirt_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER root
diff --git a/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2
new file mode 100644
index 000000000..cb50c2095
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-memcached-exporter/Dockerfile.j2
@@ -0,0 +1,23 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_memcached_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_memcached_exporter_install %}
+ADD prometheus-memcached-exporter-archive /prometheus-memcached-exporter-source
+
+RUN ln -s /prometheus-memcached-exporter-source/* prometheus-memcached-exporter \
+ && mkdir -p /opt/memcached_exporter/ \
+ && cp /prometheus-memcached-exporter/memcached_exporter /opt/memcached_exporter/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_memcached_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2
new file mode 100644
index 000000000..a562bfd71
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-mtail/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_mtail_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_mtail_install %}
+ADD prometheus-mtail-archive /prometheus-mtail-source
+
+RUN cp /prometheus-mtail-source/* /opt/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_mtail_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+# NOTE(dszumski): We run as root so that mtail can scrape root owned logs
+# such as /var/log/secure which are mounted into the container as read only
+# for auditing purposes. Longer term we should use a more secure mechanism
+# for tailing these logs.
+USER root
diff --git a/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2
new file mode 100644
index 000000000..f8d2abaa6
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-mysqld-exporter/Dockerfile.j2
@@ -0,0 +1,23 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block mysqld_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block mysqld_exporter_install %}
+ADD prometheus-mysqld-exporter-archive /prometheus-mysqld-exporter-source
+
+RUN ln -s /prometheus-mysqld-exporter-source/* prometheus-mysqld-exporter \
+ && mkdir -p /opt/mysqld_exporter \
+ && cp /prometheus-mysqld-exporter/mysqld_exporter /opt/mysqld_exporter/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block mysqld_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2
new file mode 100644
index 000000000..3250d3d7a
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-node-exporter/Dockerfile.j2
@@ -0,0 +1,23 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block node_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block node_exporter_install %}
+ADD prometheus-node-exporter-archive /prometheus-node-exporter-source
+
+RUN ln -s /prometheus-node-exporter-source/* prometheus-node-exporter \
+ && mkdir -p /opt/node_exporter/ \
+ && cp /prometheus-node-exporter/node_exporter /opt/node_exporter/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block node_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2
new file mode 100644
index 000000000..437f3a6cd
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2
@@ -0,0 +1,22 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_openstack_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_openstack_exporter_install %}
+ADD prometheus-openstack-exporter-archive /prometheus-openstack-exporter-source
+
+RUN mkdir /opt/openstack-exporter \
+ && cp /prometheus-openstack-exporter-source/openstack-exporter /opt/openstack-exporter/
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_openstack_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2
new file mode 100644
index 000000000..3d4d9197b
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-openstack-network-exporter/Dockerfile.j2
@@ -0,0 +1,24 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_openstack_network_exporter_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_openstack_network_exporter_install %}
+ADD prometheus-openstack-network-exporter-archive /prometheus-openstack-network-exporter-source
+
+RUN mkdir /opt/openstack-network-exporter \
+ && cp /prometheus-openstack-network-exporter-source /opt/openstack-network-exporter/openstack-network-exporter \
+ && chmod 0755 /opt/openstack-network-exporter/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/docker/prometheus/prometheus-server/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-server/Dockerfile.j2
new file mode 100644
index 000000000..a3b227d7e
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-server/Dockerfile.j2
@@ -0,0 +1,24 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block prometheus_server_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_server_install %}
+ADD prometheus-server-archive /prometheus-server-source
+
+RUN ln -s /prometheus-server-source/* prometheus-server \
+ && mkdir -p /opt/prometheus \
+ && cp -r /prometheus-server/* /opt/prometheus/ \
+ && mkdir -p /etc/prometheus /data
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_server_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus
diff --git a/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2 b/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2
new file mode 100644
index 000000000..c6cf79ac3
--- /dev/null
+++ b/kolla/docker/prometheus/prometheus-valkey-exporter/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% block prometheus_valkey_exporter_header %}{% endblock %}
+
+{{ macros.install_packages(prometheus_valkey_exporter_packages | customizable("packages")) }}
+
+{% block prometheus_valkey_exporter_install %}
+ADD prometheus-valkey-exporter-archive /prometheus-valkey-exporter-source
+
+RUN ln -s /prometheus-valkey-exporter-source/* prometheus-valkey-exporter \
+ && cp /prometheus-valkey-exporter/redis_exporter /opt/valkey-exporter
+
+{% endblock %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block prometheus_valkey_exporter_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER prometheus