From e9b78fc2d283f2eb4eb408a45e41575b4359fe64 Mon Sep 17 00:00:00 2001 From: Eduardo Gonzalez Date: Thu, 10 Nov 2016 20:12:44 +0000 Subject: [PATCH] Tacker Docker configuration Add necessary Docker configuration for Tacker NFV service. Change-Id: I9a5750d4616551828c0fa0e51302fd80fa4d33f7 Partially-Implements: blueprint tacker-support --- docker/tacker/Dockerfile.j2 | 31 +++++++++++++++++++++++++++++++ docker/tacker/extend_start.sh | 15 +++++++++++++++ kolla/common/config.py | 7 ++++++- tests/test_build.py | 9 ++++++--- 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 docker/tacker/Dockerfile.j2 create mode 100644 docker/tacker/extend_start.sh diff --git a/docker/tacker/Dockerfile.j2 b/docker/tacker/Dockerfile.j2 new file mode 100644 index 0000000000..6a367607cf --- /dev/null +++ b/docker/tacker/Dockerfile.j2 @@ -0,0 +1,31 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block tacker_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + +ADD tacker-archive /tacker-source +RUN ln -s tacker-source/* tacker \ + && useradd --user-group --create-home --home-dir /var/lib/tacker tacker \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /tacker \ + && mkdir -p /etc/tacker \ + && cp -r /tacker/etc/tacker/* /etc/tacker \ + && chown -R tacker: /etc/tacker + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN usermod -a -G kolla tacker \ + && chmod 755 /usr/local/bin/kolla_extend_start + +{% block tacker_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER tacker diff --git a/docker/tacker/extend_start.sh b/docker/tacker/extend_start.sh new file mode 100644 index 0000000000..ec45d83395 --- /dev/null +++ b/docker/tacker/extend_start.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/tacker" ]]; then + mkdir -p /var/log/kolla/tacker +fi +if [[ $(stat -c %a /var/log/kolla/tacker) != "755" ]]; then + chmod 755 /var/log/kolla/tacker +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 + tacker-db-manage --config-file /etc/tacker/tacker.conf upgrade head + exit 0 +fi diff --git a/kolla/common/config.py b/kolla/common/config.py index 934cf1b4e0..3f6d6ee113 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -49,7 +49,8 @@ _PROFILE_OPTS = [ 'freezer', 'gnocchi', 'influxdb', 'ironic', 'karbor', 'kuryr', 'magnum', 'manila', 'mistral', 'murano', 'octavia', 'panko', 'rally', 'sahara', 'searchlight', - 'senlin', 'solum', 'telegraf', 'trove', 'zaqar'], + 'senlin', 'solum', 'tacker' 'telegraf', 'trove', + 'zaqar'], help='Aux Images'), cfg.ListOpt('default', default=['chrony', 'cron', 'kolla-toolbox', 'glance', @@ -358,6 +359,10 @@ SOURCES = { 'type': 'url', 'location': ('http://tarballs.openstack.org/swift/' 'swift-master.tar.gz')}, + 'tacker': { + 'type': 'url', + 'location': ('http://tarballs.openstack.org/tacker/' + 'tacker-master.tar.gz')}, 'tempest': { 'type': 'url', 'location': ('http://tarballs.openstack.org/tempest/' diff --git a/tests/test_build.py b/tests/test_build.py index a032c458b1..032cb26d42 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -77,7 +77,8 @@ class BuildTestCentosBinary(BuildTest, base.BaseTestCase): "congress-base", "bifrost-base", "cloudkitty-base", - "freezer-base"] + "freezer-base", + "tacker"] def setUp(self): super(BuildTestCentosBinary, self).setUp() @@ -109,7 +110,8 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): "bifrost-base", "cloudkitty-base", "freezer-base", - "panko-base"] + "panko-base", + "tacker"] def setUp(self): super(BuildTestUbuntuBinary, self).setUp() @@ -139,7 +141,8 @@ class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase): "congress-base", "bifrost-base", "cloudkitty-base", - "freezer-base"] + "freezer-base", + "tacker"] def setUp(self): super(BuildTestOracleLinuxBinary, self).setUp()