diff options
| author | Kien Nguyen <kiennt65@viettel.com.vn> | 2018-11-05 11:24:55 +0700 |
|---|---|---|
| committer | Gaƫtan Trellu <gaetan.trellu@incloudus.com> | 2019-07-11 19:05:13 -0400 |
| commit | ce74eb0d7b4c01e1fcdb432e5605835caac6c1d0 (patch) | |
| tree | cdee50613c90fd843585c2060ee34e4a16071000 /docker/masakari | |
| parent | 008aa957f27b26caff3be8b18110e71cdaf70772 (diff) | |
| download | kolla-ce74eb0d7b4c01e1fcdb432e5605835caac6c1d0.tar.gz kolla-ce74eb0d7b4c01e1fcdb432e5605835caac6c1d0.zip | |
Add Masakari containers
Masakari provides Instances High Availability Service for
OpenStack clouds by automatically recovering failed Instances.
Change-Id: I279d6b43f8e4d4e30b39deb607823ceca272a4b8
Implements: blueprint masakari-support
Diffstat (limited to 'docker/masakari')
| -rw-r--r-- | docker/masakari/masakari-api/Dockerfile.j2 | 17 | ||||
| -rwxr-xr-x | docker/masakari/masakari-api/extend_start.sh | 19 | ||||
| -rw-r--r-- | docker/masakari/masakari-base/Dockerfile.j2 | 72 | ||||
| -rwxr-xr-x | docker/masakari/masakari-base/extend_start.sh | 10 | ||||
| -rw-r--r-- | docker/masakari/masakari-engine/Dockerfile.j2 | 16 | ||||
| -rw-r--r-- | docker/masakari/masakari-monitors/Dockerfile.j2 | 58 | ||||
| -rw-r--r-- | docker/masakari/masakari-monitors/masakari_monitors_sudoers | 2 |
7 files changed, 194 insertions, 0 deletions
diff --git a/docker/masakari/masakari-api/Dockerfile.j2 b/docker/masakari/masakari-api/Dockerfile.j2 new file mode 100644 index 000000000..28b836e1c --- /dev/null +++ b/docker/masakari/masakari-api/Dockerfile.j2 @@ -0,0 +1,17 @@ +FROM {{ namespace }}/{{ image_prefix }}masakari-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block masakari_api_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_masakari_extend_start +RUN chmod 755 /usr/local/bin/kolla_masakari_extend_start + +{% block masakari_api_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/masakari/masakari-api/extend_start.sh b/docker/masakari/masakari-api/extend_start.sh new file mode 100755 index 000000000..1c372881d --- /dev/null +++ b/docker/masakari/masakari-api/extend_start.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# NOTE(pbourke): httpd will not clean up after itself in some cases which +# results in the container not being able to restart. (bug #1489676, 1557036) +if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then + # Loading Apache2 ENV variables + . /etc/apache2/envvars + install -d /var/run/apache2/ + rm -rf /var/run/apache2/* +else + rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* +fi + +# 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 + masakari-manage db sync + exit 0 +fi diff --git a/docker/masakari/masakari-base/Dockerfile.j2 b/docker/masakari/masakari-base/Dockerfile.j2 new file mode 100644 index 000000000..65b944e6f --- /dev/null +++ b/docker/masakari/masakari-base/Dockerfile.j2 @@ -0,0 +1,72 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block masakari_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='masakari') }} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + + {% if base_package_type == 'rpm' %} + + {% set masakari_base_packages = [ + 'httpd', + 'mod_ssl', + ] %} + {% if distro_python_version.startswith('3') %} + {% set masakari_base_packages = masakari_base_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set masakari_base_packages = masakari_base_packages + [ + 'mod_wsgi', + 'python2-ldappool' + ] %} + {% endif %} + +{{ macros.install_packages(masakari_base_packages | customizable("packages")) }} +RUN mkdir -p /var/www/cgi-bin/masakari \ + && 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 masakari_base_packages = [ + 'apache2', + 'libapache2-mod-wsgi-py3', + 'python3-ldappool' + ] %} + +{{ macros.install_packages(masakari_base_packages | customizable("packages")) }} +RUN mkdir -p /var/www/cgi-bin/masakari \ + && echo > /etc/apache2/ports.conf + {% endif %} + +ADD masakari-base-archive /masakari-base-source + +{% set masakari_base_pip_packages = [ + '/masakari' +] %} + +RUN ln -s masakari-base-source/* masakari \ + && {{ macros.install_pip(masakari_base_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/masakari /var/www/cgi-bin/masakari \ + && chown -R masakari: /etc/masakari /var/www/cgi-bin/masakari + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN touch /usr/local/bin/kolla_masakari_extend_start \ + && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_masakari_extend_start \ + && chmod 755 /var/www/cgi-bin/masakari + +{% block masakari_base_footer %}{% endblock %} diff --git a/docker/masakari/masakari-base/extend_start.sh b/docker/masakari/masakari-base/extend_start.sh new file mode 100755 index 000000000..d4fdcc86a --- /dev/null +++ b/docker/masakari/masakari-base/extend_start.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/masakari" ]]; then + mkdir -p /var/log/kolla/masakari +fi +if [[ $(stat -c %a /var/log/kolla/masakari) != "755" ]]; then + chmod 755 /var/log/kolla/masakari +fi + +. /usr/local/bin/kolla_masakari_extend_start diff --git a/docker/masakari/masakari-engine/Dockerfile.j2 b/docker/masakari/masakari-engine/Dockerfile.j2 new file mode 100644 index 000000000..4de51bcf6 --- /dev/null +++ b/docker/masakari/masakari-engine/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}masakari-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block masakari_engine_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block masakari_engine_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER masakari diff --git a/docker/masakari/masakari-monitors/Dockerfile.j2 b/docker/masakari/masakari-monitors/Dockerfile.j2 new file mode 100644 index 000000000..8ed265b17 --- /dev/null +++ b/docker/masakari/masakari-monitors/Dockerfile.j2 @@ -0,0 +1,58 @@ +FROM {{ namespace }}/{{ image_prefix }}masakari-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block masakari_monitors_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='masakari') }} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + + {% set masakari_monitors_packages = [ + 'libvirt-devel', + 'pacemaker-cli', + 'tcpdump', + ] %} + + {% elif base_distro in ['debian', 'ubuntu'] %} + + {% set masakari_monitors_packages = [ + 'libvirt-dev', + 'pacemaker-cli-utils', + 'tcpdump', + ] %} + + {% endif %} + +{{ macros.install_packages(masakari_monitors_packages | customizable("packages")) }} + +ADD masakari-monitors-archive /masakari-monitors-source + +{% set masakari_monitors_pip_packages = [ + '/masakari-monitors' +] %} + +RUN ln -s masakari-monitors-source/* masakari-monitors \ + && {{ macros.install_pip(masakari_monitors_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/masakari-monitors \ + && chown -R masakari: /etc/masakari-monitors + +COPY masakari_monitors_sudoers /etc/sudoers.d/kolla_masakari_monitors_sudoers + +RUN chmod 750 /etc/sudoers.d \ + && chmod 640 /etc/sudoers.d/kolla_masakari_monitors_sudoers + +{% endif %} + +{% block masakari_monitors_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER masakari diff --git a/docker/masakari/masakari-monitors/masakari_monitors_sudoers b/docker/masakari/masakari-monitors/masakari_monitors_sudoers new file mode 100644 index 000000000..4778f7e43 --- /dev/null +++ b/docker/masakari/masakari-monitors/masakari_monitors_sudoers @@ -0,0 +1,2 @@ +masakari ALL=(root) NOPASSWD: /var/lib/kolla/venv/bin/privsep-helper +masakari ALL=(root) NOPASSWD: /usr/sbin/tcpdump * |
