From 7b2dea5506375cb868d6acb6a99b0aca916fad6c Mon Sep 17 00:00:00 2001 From: Eduardo Gonzalez Date: Mon, 26 Jun 2017 13:05:24 +0200 Subject: [PATCH] Implement tacker-conductor image, rework all tacker Tacker is broken in pike without conductor images. Conductor is needed to communicate with mistral for VIM monitoring This change rework tacker image to allow tacker-conductor service image. Split tacker global image into tacker-server and tacker-conductor. Closes-Bug: #1710874 Change-Id: I52778e86e4f2c297ead8d4b09983e5e38ca88c70 --- docker/tacker/{ => tacker-base}/Dockerfile.j2 | 26 +++++++-------- docker/tacker/tacker-base/extend_start.sh | 10 ++++++ docker/tacker/tacker-conductor/Dockerfile.j2 | 29 +++++++++++++++++ docker/tacker/tacker-server/Dockerfile.j2 | 32 +++++++++++++++++++ .../{ => tacker-server}/extend_start.sh | 7 ---- kolla/common/config.py | 2 +- .../tacker-conductor-246d23f8c4a97de0.yaml | 8 +++++ tests/test_build.py | 4 +-- 8 files changed, 94 insertions(+), 24 deletions(-) rename docker/tacker/{ => tacker-base}/Dockerfile.j2 (54%) create mode 100644 docker/tacker/tacker-base/extend_start.sh create mode 100644 docker/tacker/tacker-conductor/Dockerfile.j2 create mode 100644 docker/tacker/tacker-server/Dockerfile.j2 rename docker/tacker/{ => tacker-server}/extend_start.sh (60%) create mode 100644 releasenotes/notes/tacker-conductor-246d23f8c4a97de0.yaml diff --git a/docker/tacker/Dockerfile.j2 b/docker/tacker/tacker-base/Dockerfile.j2 similarity index 54% rename from docker/tacker/Dockerfile.j2 rename to docker/tacker/tacker-base/Dockerfile.j2 index f549e8d0aa..d3a9f4701b 100644 --- a/docker/tacker/Dockerfile.j2 +++ b/docker/tacker/tacker-base/Dockerfile.j2 @@ -1,7 +1,7 @@ FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -{% block tacker_header %}{% endblock %} +{% block tacker_base_header %}{% endblock %} {% import "macros.j2" as macros with context %} @@ -10,29 +10,29 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if install_type == 'binary' %} {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} - {% set tacker_packages = [ - 'openstack-tacker' + {% set tacker_base_packages = [ + 'openstack-tacker-common' ] %} {% elif base_distro in ['debian', 'ubuntu'] %} RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ - && /bin/false + && /bin/false {% endif %} -{{ macros.install_packages(tacker_packages | customizable("packages")) }} +{{ macros.install_packages(tacker_base_packages | customizable("packages")) }} {% elif install_type == 'source' %} -ADD tacker-archive /tacker-source +ADD tacker-base-archive /tacker-base-source -{% set tacker_pip_packages = [ +{% set tacker_base_pip_packages = [ '/tacker' ] %} -RUN ln -s tacker-source/* tacker \ - && {{ macros.install_pip(tacker_pip_packages | customizable("pip_packages")) }} \ +RUN ln -s tacker-base-source/* tacker \ + && {{ macros.install_pip(tacker_base_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/tacker \ && cp -r /tacker/etc/tacker/* /etc/tacker \ && chown -R tacker: /etc/tacker @@ -41,9 +41,7 @@ RUN ln -s tacker-source/* tacker \ COPY extend_start.sh /usr/local/bin/kolla_extend_start -RUN chmod 755 /usr/local/bin/kolla_extend_start +RUN touch /usr/local/bin/kolla_tacker_extend_start \ + && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_tacker_extend_start -{% block tacker_footer %}{% endblock %} -{% block footer %}{% endblock %} - -USER tacker +{% block tacker_base_footer %}{% endblock %} diff --git a/docker/tacker/tacker-base/extend_start.sh b/docker/tacker/tacker-base/extend_start.sh new file mode 100644 index 0000000000..a3b7db8d3f --- /dev/null +++ b/docker/tacker/tacker-base/extend_start.sh @@ -0,0 +1,10 @@ +#!/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 + +. /usr/local/bin/kolla_tacker_extend_start diff --git a/docker/tacker/tacker-conductor/Dockerfile.j2 b/docker/tacker/tacker-conductor/Dockerfile.j2 new file mode 100644 index 0000000000..2fe717c019 --- /dev/null +++ b/docker/tacker/tacker-conductor/Dockerfile.j2 @@ -0,0 +1,29 @@ +FROM {{ namespace }}/{{ image_prefix }}tacker-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block tacker_conductor_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set tacker_conductor_packages = [ + 'openstack-tacker' + ] %} + + {% elif base_distro in ['debian', 'ubuntu'] %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} + +{{ macros.install_packages(tacker_conductor_packages | customizable("packages")) }} + +{% endif %} + +{% block tacker_conductor_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER tacker diff --git a/docker/tacker/tacker-server/Dockerfile.j2 b/docker/tacker/tacker-server/Dockerfile.j2 new file mode 100644 index 0000000000..1e7bae11c7 --- /dev/null +++ b/docker/tacker/tacker-server/Dockerfile.j2 @@ -0,0 +1,32 @@ +FROM {{ namespace }}/{{ image_prefix }}tacker-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block tacker_server_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set tacker_server_packages = [ + 'openstack-tacker' + ] %} + + {% elif base_distro in ['debian', 'ubuntu'] %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} + +{{ macros.install_packages(tacker_server_packages | customizable("packages")) }} + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_tacker_extend_start +RUN chmod 755 /usr/local/bin/kolla_tacker_extend_start + +{% block tacker_server_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER tacker diff --git a/docker/tacker/extend_start.sh b/docker/tacker/tacker-server/extend_start.sh similarity index 60% rename from docker/tacker/extend_start.sh rename to docker/tacker/tacker-server/extend_start.sh index ec45d83395..311d21f719 100644 --- a/docker/tacker/extend_start.sh +++ b/docker/tacker/tacker-server/extend_start.sh @@ -1,12 +1,5 @@ #!/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 diff --git a/kolla/common/config.py b/kolla/common/config.py index 811a06de6b..10d29e3c47 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -609,7 +609,7 @@ SOURCES = { 'type': 'url', 'location': ('$tarballs_base/swift/' 'swift-master.tar.gz')}, - 'tacker': { + 'tacker-base': { 'type': 'url', 'location': ('$tarballs_base/tacker/' 'tacker-master.tar.gz')}, diff --git a/releasenotes/notes/tacker-conductor-246d23f8c4a97de0.yaml b/releasenotes/notes/tacker-conductor-246d23f8c4a97de0.yaml new file mode 100644 index 0000000000..1a593c753a --- /dev/null +++ b/releasenotes/notes/tacker-conductor-246d23f8c4a97de0.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Tacker conductor image is implemented. +upgrade: + - | + Tacker image has been splitted into tacker-server and tacker-conductor + to support new conductor service. diff --git a/tests/test_build.py b/tests/test_build.py index 05d8f1dc99..02bd42f65c 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -130,7 +130,7 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase): "searchlight-base", "senlin-base", "solum-base", - "tacker", + "tacker-base", "vitrage-base", "vmtp", "zaqar", @@ -174,7 +174,7 @@ class BuildTestDebianBinary(BuildTest, base.BaseTestCase): "senlin-base", "sensu-base", "solum-base", - "tacker", + "tacker-base", "vitrage-base", "vmtp", "zaqar",