aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorEduardo Gonzalez <dabarren@gmail.com>2018-10-26 16:02:21 +0200
committerLee Yarwood <lyarwood@redhat.com>2018-12-19 14:41:20 +0000
commit2f657085c67302ab54dcb64b335a2f3732ba4de4 (patch)
tree4a15dda81596d5a8238ca464d4343ba892aae1eb /docker
parent772b52572289832de68c75adea458dc88aedfec9 (diff)
downloadkolla-2f657085c67302ab54dcb64b335a2f3732ba4de4.tar.gz
kolla-2f657085c67302ab54dcb64b335a2f3732ba4de4.zip
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 <lyarwood@redhat.com> Change-Id: I2bf6f5bf45b76e6900f41c21e9af30c69dc6e9c0
Diffstat (limited to 'docker')
-rw-r--r--docker/placement/placement-api/Dockerfile.j262
-rw-r--r--docker/placement/placement-api/extend_start.sh18
-rw-r--r--docker/placement/placement-base/Dockerfile.j247
-rw-r--r--docker/placement/placement-base/extend_start.sh12
4 files changed, 139 insertions, 0 deletions
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