From 2f657085c67302ab54dcb64b335a2f3732ba4de4 Mon Sep 17 00:00:00 2001 From: Eduardo Gonzalez Date: Fri, 26 Oct 2018 16:02:21 +0200 Subject: Split placement-api from nova This change breaks out the Placement service from Nova ahead of it's removal from the project later in Stein. For the time being the original Nova Placement images are left in place but they will be removed later in the cycle once the Placement code is removed from the Nova project by the following change: https://review.openstack.org/#/c/618215/ Co-Authored-By: Lee Yarwood Change-Id: I2bf6f5bf45b76e6900f41c21e9af30c69dc6e9c0 --- docker/placement/placement-api/Dockerfile.j2 | 62 +++++++++++++++++++++++++ docker/placement/placement-api/extend_start.sh | 18 +++++++ docker/placement/placement-base/Dockerfile.j2 | 47 +++++++++++++++++++ docker/placement/placement-base/extend_start.sh | 12 +++++ 4 files changed, 139 insertions(+) create mode 100644 docker/placement/placement-api/Dockerfile.j2 create mode 100644 docker/placement/placement-api/extend_start.sh create mode 100644 docker/placement/placement-base/Dockerfile.j2 create mode 100644 docker/placement/placement-base/extend_start.sh (limited to 'docker') diff --git a/docker/placement/placement-api/Dockerfile.j2 b/docker/placement/placement-api/Dockerfile.j2 new file mode 100644 index 000000000..0ef86d6b2 --- /dev/null +++ b/docker/placement/placement-api/Dockerfile.j2 @@ -0,0 +1,62 @@ +FROM {{ namespace }}/{{ image_prefix }}placement-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block placement_api_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + + {% set placement_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi', + 'openstack-placement-api' + ] %} + +{{ macros.install_packages(placement_api_packages | customizable("packages")) }} +RUN 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_distro in ['debian', 'ubuntu'] %} + + {% set placement_api_packages = [ + 'apache2', + 'libapache2-mod-wsgi', + 'placement-api' + ] %} + +{{ macros.install_packages(placement_api_packages | customizable("packages")) }} +RUN truncate -s 0 /etc/apache2/ports.conf + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + + {% set placement_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi' + ] %} + +{{ macros.install_packages(placement_api_packages | customizable("packages")) }} +RUN 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_distro in ['debian', 'ubuntu'] %} + + {% set placement_api_packages = [ + 'apache2', + 'libapache2-mod-wsgi' + ] %} + +{{ macros.install_packages(placement_api_packages | customizable("packages")) }} +RUN truncate -s 0 /etc/apache2/ports.conf + + {% endif %} +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_placement_extend_start + +{% block placement_api_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/placement/placement-api/extend_start.sh b/docker/placement/placement-api/extend_start.sh new file mode 100644 index 000000000..a8e9635d1 --- /dev/null +++ b/docker/placement/placement-api/extend_start.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# 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 + placement-manage db sync + exit 0 +fi + +# 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 + rm -rf /var/run/apache2/* +else + rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* +fi diff --git a/docker/placement/placement-base/Dockerfile.j2 b/docker/placement/placement-base/Dockerfile.j2 new file mode 100644 index 000000000..e108944b4 --- /dev/null +++ b/docker/placement/placement-base/Dockerfile.j2 @@ -0,0 +1,47 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block placement_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='placement') }} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + + {% set placement_base_packages = [ + 'openstack-placement-common', + ] %} + + {% elif base_distro in ['debian', 'ubuntu'] %} + + {% set placement_base_packages = [] %} + + {% endif %} + +{{ macros.install_packages(placement_base_packages | customizable("packages")) }} + +{% elif install_type == 'source' %} + +ADD placement-base-archive /placement-base-source +ADD plugins-archive / + +{% set placement_base_pip_packages = [ + '/placement' +] %} + +RUN ln -s placement-base-source/* placement \ + && {{ macros.install_pip(placement_base_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/placement/ \ + && cp -r /placement/etc/placement/* /etc/placement/ \ + && chown -R placement: /etc/placement/ + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN touch /usr/local/bin/kolla_placement_extend_start \ + && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_placement_extend_start + +{% block placement_base_footer %}{% endblock %} diff --git a/docker/placement/placement-base/extend_start.sh b/docker/placement/placement-base/extend_start.sh new file mode 100644 index 000000000..68a7b01c6 --- /dev/null +++ b/docker/placement/placement-base/extend_start.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/placement" ]]; then + mkdir -p /var/log/kolla/placement + touch /var/log/kolla/placement/placement-api.log +fi +if [[ $(stat -c %a /var/log/kolla/placement) != "755" ]]; then + chmod 755 /var/log/kolla/placement + chmod 644 /var/log/kolla/placement/placement-api.log +fi + +. /usr/local/bin/kolla_placement_extend_start -- cgit v1.2.3