diff --git a/docker/vitrage/vitrage-api/Dockerfile.j2 b/docker/vitrage/vitrage-api/Dockerfile.j2 new file mode 100644 index 0000000000..929db5ae44 --- /dev/null +++ b/docker/vitrage/vitrage-api/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}vitrage-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block vitrage_api_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block vitrage_api_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER vitrage diff --git a/docker/vitrage/vitrage-base/Dockerfile.j2 b/docker/vitrage/vitrage-base/Dockerfile.j2 new file mode 100644 index 0000000000..7507111f54 --- /dev/null +++ b/docker/vitrage/vitrage-base/Dockerfile.j2 @@ -0,0 +1,30 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block vitrage_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='vitrage') }} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + +ADD vitrage-base-archive /vitrage-base-source +RUN ln -s vitrage-base-source/* vitrage \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /vitrage \ + && mkdir -p /etc/vitrage \ + && cp -r /vitrage/etc/vitrage/* /etc/vitrage/ \ + && chown -R vitrage: /etc/vitrage + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block vitrage_base_footer %}{% endblock %} diff --git a/docker/vitrage/vitrage-base/extend_start.sh b/docker/vitrage/vitrage-base/extend_start.sh new file mode 100755 index 0000000000..d796350579 --- /dev/null +++ b/docker/vitrage/vitrage-base/extend_start.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +VITRAGE_LOG_DIR="/var/log/kolla/vitrage" +if [[ ! -d "${VITRAGE_LOG_DIR}" ]]; then + mkdir -p ${VITRAGE_LOG_DIR} +fi +if [[ $(stat -c %U:%G ${VITRAGE_LOG_DIR}) != "vitrage:kolla" ]]; then + chown vitrage:kolla ${VITRAGE_LOG_DIR} +fi +if [[ $(stat -c %a ${VITRAGE_LOG_DIR}) != "755" ]]; then + chmod 755 ${VITRAGE_LOG_DIR} +fi diff --git a/docker/vitrage/vitrage-graph/Dockerfile.j2 b/docker/vitrage/vitrage-graph/Dockerfile.j2 new file mode 100644 index 0000000000..412063fcdb --- /dev/null +++ b/docker/vitrage/vitrage-graph/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}vitrage-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block vitrage_graph_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block vitrage_graph_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER vitrage diff --git a/docker/vitrage/vitrage-notifier/Dockerfile.j2 b/docker/vitrage/vitrage-notifier/Dockerfile.j2 new file mode 100644 index 0000000000..8b699de78a --- /dev/null +++ b/docker/vitrage/vitrage-notifier/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}vitrage-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block vitrage_notifier_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block vitrage_notifier_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER vitrage diff --git a/kolla/common/config.py b/kolla/common/config.py index baafb7a92e..75b1613dba 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -96,6 +96,7 @@ _PROFILE_OPTS = [ 'tacker', 'telegraf', 'trove', + 'vitrage', 'zaqar', 'zookeeper', 'zun', @@ -485,6 +486,10 @@ SOURCES = { 'type': 'url', 'location': ('$tarballs_base/trove/' 'trove-master.tar.gz')}, + 'vitrage-base': { + 'type': 'url', + 'location': ('$tarballs_base/vitrage/' + 'vitrage-master.tar.gz')}, 'watcher-base': { 'type': 'url', 'location': ('$tarballs_base/watcher/' @@ -731,6 +736,10 @@ USERS = { 'uid': 42458, 'gid': 42458, }, + 'vitrage-user': { + 'uid': 42459, + 'gid': 42459, + }, } diff --git a/releasenotes/notes/vitrage-containers-3bfb360357aa628b.yaml b/releasenotes/notes/vitrage-containers-3bfb360357aa628b.yaml new file mode 100644 index 0000000000..3d2f1743e0 --- /dev/null +++ b/releasenotes/notes/vitrage-containers-3bfb360357aa628b.yaml @@ -0,0 +1,6 @@ +--- +features: + - Add Vitrage Dockerfile, Vitrage is the OpenStack RCA (Root Cause Analysis) service for + organizing, analyzing and expanding OpenStack alarms & events, yielding insights + regarding the root cause of problems and deducing their existence before they are + directly detected. Also, it is in the big-tent. diff --git a/tests/test_build.py b/tests/test_build.py index b71d26f9d4..de2199b628 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -79,6 +79,7 @@ class BuildTestCentosBinary(BuildTest, base.BaseTestCase): "senlin-base", "solum-base", "tacker", + "vitrage-base", "vmtp", "zun-base", ] @@ -117,6 +118,7 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): "senlin-base", "solum-base", "tacker", + "vitrage-base", "vmtp", "zaqar", "zun-base", @@ -152,6 +154,7 @@ class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase): "senlin-base", "solum-base", "tacker", + "vitrage-base", "vmtp", "zun-base", ]