Skip to content

Commit b4c75c4

Browse files
authored
Merge pull request #143 from stackhpc/xena-backports
Apply Xena backports from Wallaby
2 parents 2a9ccf0 + 7da8965 commit b4c75c4

File tree

8 files changed

+169
-7
lines changed

8 files changed

+169
-7
lines changed

docker/caso/Dockerfile.j2

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
2+
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
3+
4+
{% block caso_header %}{% endblock %}
5+
6+
{% import "macros.j2" as macros with context %}
7+
8+
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
9+
{% set caso_packages = [
10+
'cronie',
11+
] %}
12+
{% elif base_distro in ['debian', 'ubuntu'] %}
13+
{% set caso_packages = [
14+
'cron',
15+
] %}
16+
{% endif %}
17+
18+
{{ macros.install_packages(caso_packages | customizable("packages")) }}
19+
20+
{{ macros.configure_user(name='caso') }}
21+
22+
{% set caso_pip_packages = [
23+
'caso'
24+
] %}
25+
26+
# NOTE(wszumski:) Upgrade pip, otherwise we hit: ModuleNotFoundError: No module
27+
# named 'setuptools_rust' when install latest cryptography module. Doesn't
28+
# really make sense to use constraints as caso is not tied to an openstack
29+
# release.
30+
RUN mkdir -p /requirements \
31+
&& curl -sSL -o /requirements/upper-constraints.txt https://releases.openstack.org/constraints/upper/{{ openstack_release }}
32+
RUN {{ macros.install_pip(["pip"]) }}
33+
34+
RUN {{ macros.install_pip(caso_pip_packages | customizable("pip_packages"), constraints = false) }} \
35+
&& mkdir -p /etc/caso \
36+
&& chown -R caso: /etc/caso
37+
38+
COPY extend_start.sh /usr/local/bin/kolla_extend_start
39+
40+
RUN touch /usr/local/bin/kolla_caso_extend_start \
41+
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_caso_extend_start
42+
43+
{% block caso_base_footer %}{% endblock %}

docker/caso/extend_start.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
# Create log directory, with appropriate permissions
4+
CASO_LOG_DIR="/var/log/kolla/caso"
5+
if [[ ! -d "$CASO_LOG_DIR" ]]; then
6+
mkdir -p $CASO_LOG_DIR
7+
fi
8+
if [[ $(stat -c %U:%G ${CASO_LOG_DIR}) != "caso:kolla" ]]; then
9+
chown caso:kolla ${CASO_LOG_DIR}
10+
fi
11+
if [[ $(stat -c %a ${CASO_LOG_DIR}) != "755" ]]; then
12+
chmod 755 ${CASO_LOG_DIR}
13+
fi
14+
15+
. /usr/local/bin/kolla_caso_extend_start
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM {{ namespace }}/{{ infra_image_prefix }}prometheus-base:{{ tag }}
2+
{% block labels %}
3+
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
4+
{% endblock %}
5+
6+
{% import "macros.j2" as macros with context %}
7+
8+
{% block prometheus_jiralert_header %}{% endblock %}
9+
10+
{% if base_package_type == 'rpm' %}
11+
{% set prometheus_jiralert_packages = [
12+
'git',
13+
'go',
14+
'make',
15+
] %}
16+
{% elif base_package_type == 'deb' %}
17+
{% set prometheus_jiralert_packages = [
18+
'golang-go',
19+
] %}
20+
{% endif %}
21+
22+
{{ macros.install_packages(prometheus_jiralert_packages | customizable("packages")) }}
23+
24+
{% block prometheus_jiralert_version %}
25+
ARG prometheus_jiralert_version=master
26+
ARG prometheus_jiralert_url=https://github.com/stackhpc/jiralert/archive/refs/heads/${prometheus_jiralert_version}.tar.gz
27+
{% endblock %}
28+
29+
{% block prometheus_jiralert_install %}
30+
ENV GOPATH=/build
31+
RUN mkdir /build \
32+
&& cd /build \
33+
&& curl -o jiralert.tar.gz ${prometheus_jiralert_url} \
34+
&& tar xvf jiralert.tar.gz \
35+
&& cd jiralert-${prometheus_jiralert_version} \
36+
&& make build \
37+
&& mkdir /opt/jiralert \
38+
&& install -m 0755 jiralert /opt/jiralert/ \
39+
&& install -m 0644 LICENSE /opt/jiralert/ \
40+
&& install -m 0644 README.md /opt/jiralert/ \
41+
&& rm -rf /build
42+
{% endblock %}
43+
44+
{% block prometheus_jiralert_footer %}{% endblock %}
45+
{% block footer %}{% endblock %}
46+
47+
USER prometheus
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM {{ namespace }}/{{ infra_image_prefix }}prometheus-base:{{ tag }}
2+
{% block labels %}
3+
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
4+
{% endblock %}
5+
6+
{% block prometheus_msteams_header %}{% endblock %}
7+
8+
{% block prometheus_msteams_repository_version %}
9+
ARG prometheus_msteams_version=1.5.0
10+
ARG prometheus_msteams_sha256sum=74d1bedb12f6ec09fb65ddeb63328f691a9b2a56c92d7682ca152c867fc7c7a0
11+
{% endblock %}
12+
13+
{% block prometheus_msteams_install %}
14+
RUN curl -o /tmp/prometheus-msteams https://github.com/prometheus-msteams/prometheus-msteams/releases/download/v${prometheus_msteams_version}/prometheus-msteams-linux-{{debian_arch}} \
15+
&& echo "${prometheus_msteams_sha256sum} /tmp/prometheus-msteams" | sha256sum -c \
16+
&& mv /tmp/prometheus-msteams /opt \
17+
&& chmod 0755 /opt/prometheus-msteams \
18+
&& mkdir -p /etc/msteams
19+
{% endblock %}
20+
21+
{% block prometheus_msteams_footer %}{% endblock %}
22+
{% block footer %}{% endblock %}
23+
24+
USER prometheus

docker/prometheus/prometheus-openstack-exporter/Dockerfile.j2

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,40 @@ FROM {{ namespace }}/{{ infra_image_prefix }}prometheus-base:{{ tag }}
33
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
44
{% endblock %}
55

6+
{% import "macros.j2" as macros with context %}
7+
68
{% block prometheus_openstack_exporter_header %}{% endblock %}
79

8-
{% block prometheus_openstack_exporter_repository_version %}
9-
ENV prometheus_openstack_exporter_version=1.3.0
10-
{% endblock %}
10+
{% if base_package_type == 'rpm' %}
11+
{% set prometheus_openstack_exporter_packages = [
12+
'git',
13+
'go',
14+
'make',
15+
] %}
16+
{% elif base_package_type == 'deb' %}
17+
{% set prometheus_openstack_exporter_packages = [
18+
'build-essential',
19+
'git',
20+
'golang-go',
21+
] %}
22+
{% endif %}
23+
24+
{{ macros.install_packages(prometheus_openstack_exporter_packages | customizable("packages")) }}
1125

1226
{% block prometheus_openstack_exporter_install %}
13-
RUN curl -o /tmp/prometheus_openstack_exporter.tar.gz https://github.com/openstack-exporter/openstack-exporter/releases/download/v${prometheus_openstack_exporter_version}/openstack-exporter-${prometheus_openstack_exporter_version}.linux-{{debian_arch}}.tar.gz \
14-
&& tar xvf /tmp/prometheus_openstack_exporter.tar.gz -C /opt/ \
15-
&& rm -f /tmp/prometheus_openstack_exporter.tar.gz \
16-
&& ln -s /opt/openstack-exporter* /opt/openstack-exporter
27+
ARG prometheus_openstack_exporter_url=https://github.com/stackhpc/openstack-exporter/archive/refs/heads
28+
ARG prometheus_openstack_exporter_version=project-parent-id
29+
ENV GOPATH=/build
30+
RUN mkdir /build \
31+
&& cd /build \
32+
&& curl -o openstack-exporter.tar.gz ${prometheus_openstack_exporter_url}/${prometheus_openstack_exporter_version}.tar.gz \
33+
&& tar xvf openstack-exporter.tar.gz \
34+
&& cd openstack-exporter-${prometheus_openstack_exporter_version} \
35+
&& make common-build \
36+
&& mv openstack-exporter-${prometheus_openstack_exporter_version} openstack-exporter \
37+
&& mkdir /opt/openstack-exporter \
38+
&& install -m 0755 openstack-exporter /opt/openstack-exporter/ \
39+
&& rm -rf /build
1740
{% endblock %}
1841

1942
{% block prometheus_openstack_exporter_footer %}{% endblock %}

kolla/common/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,10 @@
664664
'uid': 42404,
665665
'gid': 42404,
666666
},
667+
'caso-user': {
668+
'uid': 52400,
669+
'gid': 52400,
670+
},
667671
'ceilometer-user': {
668672
'uid': 42405,
669673
'gid': 42405,

kolla/image/build.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ class Status(Enum):
8181
UNBUILDABLE_IMAGES = {
8282
'aarch64': {
8383
"bifrost-base", # someone need to get upstream working first
84+
"prometheus-msteams", # no aarch64 binary
8485
"prometheus-mtail", # no aarch64 binary
8586
"skydive-base", # no aarch64 binary
8687
},
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
features:
3+
- |
4+
Adds ``prometheus-msteams`` image, which can be used to forward Prometheus
5+
Alertmanager notifications to Microsoft Teams.

0 commit comments

Comments
 (0)