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
This commit is contained in:
Eduardo Gonzalez 2017-06-26 13:05:24 +02:00
parent 2d983f1ac7
commit 7b2dea5506
8 changed files with 94 additions and 24 deletions

View File

@ -1,7 +1,7 @@
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" 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 %} {% import "macros.j2" as macros with context %}
@ -10,8 +10,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %} {% if install_type == 'binary' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set tacker_packages = [ {% set tacker_base_packages = [
'openstack-tacker' 'openstack-tacker-common'
] %} ] %}
{% elif base_distro in ['debian', 'ubuntu'] %} {% elif base_distro in ['debian', 'ubuntu'] %}
@ -21,18 +21,18 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% endif %} {% endif %}
{{ macros.install_packages(tacker_packages | customizable("packages")) }} {{ macros.install_packages(tacker_base_packages | customizable("packages")) }}
{% elif install_type == 'source' %} {% 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' '/tacker'
] %} ] %}
RUN ln -s tacker-source/* tacker \ RUN ln -s tacker-base-source/* tacker \
&& {{ macros.install_pip(tacker_pip_packages | customizable("pip_packages")) }} \ && {{ macros.install_pip(tacker_base_pip_packages | customizable("pip_packages")) }} \
&& mkdir -p /etc/tacker \ && mkdir -p /etc/tacker \
&& cp -r /tacker/etc/tacker/* /etc/tacker \ && cp -r /tacker/etc/tacker/* /etc/tacker \
&& chown -R 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 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 tacker_base_footer %}{% endblock %}
{% block footer %}{% endblock %}
USER tacker

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,12 +1,5 @@
#!/bin/bash #!/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 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
# of the KOLLA_BOOTSTRAP variable being set, including empty. # of the KOLLA_BOOTSTRAP variable being set, including empty.
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then

View File

@ -609,7 +609,7 @@ SOURCES = {
'type': 'url', 'type': 'url',
'location': ('$tarballs_base/swift/' 'location': ('$tarballs_base/swift/'
'swift-master.tar.gz')}, 'swift-master.tar.gz')},
'tacker': { 'tacker-base': {
'type': 'url', 'type': 'url',
'location': ('$tarballs_base/tacker/' 'location': ('$tarballs_base/tacker/'
'tacker-master.tar.gz')}, 'tacker-master.tar.gz')},

View File

@ -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.

View File

@ -130,7 +130,7 @@ class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase):
"searchlight-base", "searchlight-base",
"senlin-base", "senlin-base",
"solum-base", "solum-base",
"tacker", "tacker-base",
"vitrage-base", "vitrage-base",
"vmtp", "vmtp",
"zaqar", "zaqar",
@ -174,7 +174,7 @@ class BuildTestDebianBinary(BuildTest, base.BaseTestCase):
"senlin-base", "senlin-base",
"sensu-base", "sensu-base",
"solum-base", "solum-base",
"tacker", "tacker-base",
"vitrage-base", "vitrage-base",
"vmtp", "vmtp",
"zaqar", "zaqar",