Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate IRIS and stackhpc branches #80

Open
wants to merge 5 commits into
base: stackhpc/victoria
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions docker/caso/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"

{% block caso_header %}{% endblock %}

{% import "macros.j2" as macros with context %}

{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set caso_packages = [
'cronie',
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set caso_packages = [
'cron',
] %}
{% endif %}

{{ macros.install_packages(caso_packages | customizable("packages")) }}

{{ macros.configure_user(name='caso') }}

{% set caso_pip_packages = [
'caso'
] %}

# NOTE(wszumski:) Upgrade pip, otherwise we hit: ModuleNotFoundError: No module
# named 'setuptools_rust' when install latest cryptography module. Doesn't
# really make sense to use constraints as caso is not tied to an openstack
# release.
RUN mkdir -p /requirements \
&& curl -sSL -o /requirements/upper-constraints.txt https://releases.openstack.org/constraints/upper/{{ openstack_release }}
RUN {{ macros.install_pip(["pip"]) }}

RUN {{ macros.install_pip(caso_pip_packages | customizable("pip_packages"), constraints = false) }} \
&& mkdir -p /etc/caso \
&& chown -R caso: /etc/caso

COPY extend_start.sh /usr/local/bin/kolla_extend_start

RUN touch /usr/local/bin/kolla_caso_extend_start \
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_caso_extend_start

{% block caso_base_footer %}{% endblock %}
15 changes: 15 additions & 0 deletions docker/caso/extend_start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

# Create log directory, with appropriate permissions
CASO_LOG_DIR="/var/log/kolla/caso"
if [[ ! -d "$CASO_LOG_DIR" ]]; then
mkdir -p $CASO_LOG_DIR
fi
if [[ $(stat -c %U:%G ${CASO_LOG_DIR}) != "caso:kolla" ]]; then
chown caso:kolla ${CASO_LOG_DIR}
fi
if [[ $(stat -c %a ${CASO_LOG_DIR}) != "755" ]]; then
chmod 755 ${CASO_LOG_DIR}
fi

. /usr/local/bin/kolla_caso_extend_start
37 changes: 37 additions & 0 deletions docker/prometheus/prometheus-jiralert/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"

{% import "macros.j2" as macros with context %}

{% block prometheus_jiralert_header %}{% endblock %}

{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set prometheus_jiralert_packages = [
'go',
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set prometheus_jiralert_packages = [
'golang-go',
] %}
{% endif %}

{{ macros.install_packages(prometheus_jiralert_packages | customizable("packages")) }}

{% block prometheus_jiralert_version %}
ARG prometheus_jiralert_version=1.0
ARG prometheus_jiralert_url=https://github.com/free/jiralert/releases/download/${prometheus_jiralert_version}/jiralert-${prometheus_jiralert_version}.linux-{{debian_arch}}.tar.gz
{% endblock %}

{% block prometheus_jiralert_install %}
ENV GOPATH=/tmp
RUN curl -sSL -o /tmp/jiralert.tar.gz ${prometheus_jiralert_url} \
&& mkdir /opt/jiralert \
&& tar --strip 1 -xvf /tmp/jiralert.tar.gz -C /opt/jiralert \
&& rm -f /tmp/jiralert.tar.gz \
&& mkdir -p /etc/jiralert
{% endblock %}

{% block prometheus_jiralert_footer %}{% endblock %}
{% block footer %}{% endblock %}

USER prometheus
45 changes: 45 additions & 0 deletions docker/prometheus/prometheus-libvirt-exporter/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
FROM {{ namespace }}/{{ image_prefix }}prometheus-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"

{% import "macros.j2" as macros with context %}

{% block prometheus_libvirt_exporter_header %}{% endblock %}

{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set prometheus_libvirt_exporter_packages = [
'go',
'libvirt-devel',
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set prometheus_libvirt_exporter_packages = [
'golang-go',
'libvirt-dev',
] %}
{% endif %}

{{ macros.install_packages(prometheus_libvirt_exporter_packages | customizable("packages")) }}

{% block prometheus_libvirt_exporter_version %}
ARG prometheus_libvirt_exporter_version=v0.2.0
ARG prometheus_libvirt_exporter_url=https://github.com/kumina/libvirt_exporter/archive/refs/tags/${prometheus_libvirt_exporter_version}.tar.gz
{% endblock %}

{% block prometheus_libvirt_exporter_install %}
ENV GOPATH=/tmp
RUN curl -sSL -o /tmp/libvirt_exporter.tar.gz ${prometheus_libvirt_exporter_url} \
&& mkdir /tmp/libvirt_exporter \
&& tar --strip 1 -xvf /tmp/libvirt_exporter.tar.gz -C /tmp/libvirt_exporter \
&& cd /tmp/libvirt_exporter \
&& go get -d ./... \
&& go build \
&& install -m 0755 libvirt_exporter /opt/ \
&& rm -rf /tmp/libvirt_exporter*
{% endblock %}

{% block prometheus_libvirt_exporter_footer %}{% endblock %}
{% block footer %}{% endblock %}

# TODO: Root level access is currently required to read libvirt metrics. In
# the future we should investigate read only access as a non-root user. See
# https://libvirt.org/auth.html#ACL_server_polkit.
USER root
6 changes: 5 additions & 1 deletion kolla/common/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -1133,7 +1133,11 @@
'masakari-user': {
'uid': 42485,
'gid': 42485,
}
},
'caso-user': {
'uid': 52400,
'gid': 52400,
},
}


Expand Down
1 change: 0 additions & 1 deletion kolla/template/repos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ rhel:

# NOTE(mnasiadka): Erlang repo - Debian Buster/Bullseye needs to use bionic as per RabbitMQ docs
debian:

elasticsearch: "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main"
erlang: "deb http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu bionic main"
grafana: "deb https://packages.grafana.com/oss/deb stable main"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
features:
- Added a container image for Prometheus libvirt exporter, to be used
for monitoring deployments which provide VMs with libvirt.