aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/ceilometer
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2026-07-06 15:26:00 +0200
committerMichal Nasiadka <mnasiadka@gmail.com>2026-07-06 19:59:40 +0000
commitdb35ac8d793506bc43b62e7e39d27a75de1043ed (patch)
treefeec28d13a43490f5fd4260374144a1abfc20331 /kolla/docker/ceilometer
parent1ae1850557e3b99902f73b32c9005618537a1f2d (diff)
downloadkolla-db35ac8d793506bc43b62e7e39d27a75de1043ed.tar.gz
kolla-db35ac8d793506bc43b62e7e39d27a75de1043ed.zip
Migrate to pyproject.toml
[tool.setuptools.data-files] does not support recursive directory installation. The old setup.cfg [files] worked because PBR's FilesConfig.expand_globs() used os.walk() to expand docker/*, but this hook is not triggered by the pbr.build PEP-517 backend. Move docker/ into kolla/ and use [tool.setuptools.package-data] instead. Update kolla_worker._get_images_dir() to check the kolla package directory first so both editable and regular installs work. Change-Id: I4fc452c03740ef22ebbb4e8d0d86c4f4783e2d09 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
Diffstat (limited to 'kolla/docker/ceilometer')
-rw-r--r--kolla/docker/ceilometer/ceilometer-base/Dockerfile.j243
-rw-r--r--kolla/docker/ceilometer/ceilometer-base/ceilometer_sudoers1
-rw-r--r--kolla/docker/ceilometer/ceilometer-base/extend_start.sh15
-rw-r--r--kolla/docker/ceilometer/ceilometer-central/Dockerfile.j215
-rw-r--r--kolla/docker/ceilometer/ceilometer-compute/Dockerfile.j234
-rw-r--r--kolla/docker/ceilometer/ceilometer-ipmi/Dockerfile.j227
-rw-r--r--kolla/docker/ceilometer/ceilometer-notification/Dockerfile.j218
-rw-r--r--kolla/docker/ceilometer/ceilometer-notification/extend_start.sh11
8 files changed, 164 insertions, 0 deletions
diff --git a/kolla/docker/ceilometer/ceilometer-base/Dockerfile.j2 b/kolla/docker/ceilometer/ceilometer-base/Dockerfile.j2
new file mode 100644
index 000000000..18bd7600a
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-base/Dockerfile.j2
@@ -0,0 +1,43 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ceilometer_base_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='ceilometer') }}
+
+{% set ceilometer_base_pip_packages = [
+ '/ceilometer'
+] %}
+
+{% set ceilometer_base_plugins_pip_packages = [
+ '/plugins/*'
+] %}
+
+ADD ceilometer-base-archive /ceilometer-base-source
+ADD plugins-archive /
+
+COPY ceilometer_sudoers /etc/sudoers.d/kolla_ceilometer_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+
+# NOTE(egonzalez): Remove ceilometer from constraint or will fail.
+RUN ln -s ceilometer-base-source/* ceilometer \
+ && {{ macros.upper_constraints_remove("ceilometer") }} \
+ && {{ macros.install_pip(ceilometer_base_pip_packages | customizable("pip_packages")) }} \
+ && mkdir -p /etc/ceilometer \
+ && cp -r /ceilometer/etc/ceilometer/* /etc/ceilometer/ \
+ && sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/ceilometer/rootwrap.conf \
+ && if [ "$(ls /plugins)" ]; then \
+ {{ macros.install_pip(ceilometer_base_plugins_pip_packages) }}; \
+ fi \
+ && chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/kolla_ceilometer_sudoers \
+ && touch /usr/local/bin/kolla_ceilometer_extend_start \
+ && chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_ceilometer_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ceilometer_base_footer %}{% endblock %}
diff --git a/kolla/docker/ceilometer/ceilometer-base/ceilometer_sudoers b/kolla/docker/ceilometer/ceilometer-base/ceilometer_sudoers
new file mode 100644
index 000000000..dd861bb58
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-base/ceilometer_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R ceilometer\: /var/lib/ceilometer/, /bin/chown -R ceilometer\: /var/lib/ceilometer/
diff --git a/kolla/docker/ceilometer/ceilometer-base/extend_start.sh b/kolla/docker/ceilometer/ceilometer-base/extend_start.sh
new file mode 100644
index 000000000..4d3fe6b61
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-base/extend_start.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+CEILOMETER_LOG_DIR=/var/log/kolla/ceilometer
+
+if [[ ! -d "${CEILOMETER_LOG_DIR}" ]]; then
+ mkdir -p "${CEILOMETER_LOG_DIR}"
+fi
+if [[ $(stat -c %U:%G "${CEILOMETER_LOG_DIR}") != "ceilometer:kolla" ]]; then
+ chown ceilometer:kolla "${CEILOMETER_LOG_DIR}"
+fi
+if [[ $(stat -c %a "${CEILOMETER_LOG_DIR}") != "755" ]]; then
+ chmod 755 "${CEILOMETER_LOG_DIR}"
+fi
+
+. /usr/local/bin/kolla_ceilometer_extend_start
diff --git a/kolla/docker/ceilometer/ceilometer-central/Dockerfile.j2 b/kolla/docker/ceilometer/ceilometer-central/Dockerfile.j2
new file mode 100644
index 000000000..df96d8ed3
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-central/Dockerfile.j2
@@ -0,0 +1,15 @@
+FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ceilometer_central_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ceilometer_central_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER ceilometer
diff --git a/kolla/docker/ceilometer/ceilometer-compute/Dockerfile.j2 b/kolla/docker/ceilometer/ceilometer-compute/Dockerfile.j2
new file mode 100644
index 000000000..879c4fb01
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-compute/Dockerfile.j2
@@ -0,0 +1,34 @@
+FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ceilometer_compute_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% if base_package_type == 'rpm' %}
+ {% set ceilometer_compute_packages = [
+ 'python3-libvirt'
+ ] %}
+{% elif base_package_type == 'deb' %}
+ {% set ceilometer_compute_packages = [
+ 'python3-libvirt'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(ceilometer_compute_packages | customizable("packages")) }}
+
+# NOTE(jeffrey4l): just for back compatibility
+{% set ceilometer_compute_pip_packages = [] %}
+
+RUN {{ macros.install_pip(ceilometer_compute_pip_packages | customizable("pip_packages")) }}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ceilometer_compute_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+# NOTE(huikang): non-root user does not work with libvirt.sock.
+# Need configuration in nova-libvirt container to allow
+# USER ceilometer to access libvirt.sock
diff --git a/kolla/docker/ceilometer/ceilometer-ipmi/Dockerfile.j2 b/kolla/docker/ceilometer/ceilometer-ipmi/Dockerfile.j2
new file mode 100644
index 000000000..a767dc842
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-ipmi/Dockerfile.j2
@@ -0,0 +1,27 @@
+FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ceilometer_ipmi_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% if base_package_type == 'rpm' %}
+ {% set ceilometer_ipmi_packages = [
+ 'ipmitool'
+ ] %}
+{% elif base_package_type == 'deb' %}
+ {% set ceilometer_ipmi_packages = [
+ 'ipmitool'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(ceilometer_ipmi_packages | customizable("packages")) }}
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ceilometer_ipmi_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER ceilometer
diff --git a/kolla/docker/ceilometer/ceilometer-notification/Dockerfile.j2 b/kolla/docker/ceilometer/ceilometer-notification/Dockerfile.j2
new file mode 100644
index 000000000..1fc03ffc4
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-notification/Dockerfile.j2
@@ -0,0 +1,18 @@
+FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ceilometer_notification_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+COPY extend_start.sh /usr/local/bin/kolla_ceilometer_extend_start
+RUN chmod 644 /usr/local/bin/kolla_ceilometer_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ceilometer_notification_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER ceilometer
diff --git a/kolla/docker/ceilometer/ceilometer-notification/extend_start.sh b/kolla/docker/ceilometer/ceilometer-notification/extend_start.sh
new file mode 100644
index 000000000..0abeeb1e1
--- /dev/null
+++ b/kolla/docker/ceilometer/ceilometer-notification/extend_start.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
+# of the KOLLA_BOOTSTRAP variable being set, including empty.
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+ if [[ "${CEILOMETER_DATABASE_TYPE}" == "gnocchi" ]]; then
+ ceilometer-upgrade ${CEILOMETER_UPGRADE_PARAMS}
+ fi
+ sudo chown -R ceilometer: /var/lib/ceilometer/
+ exit 0
+fi