aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorMartin André <m.andre@redhat.com>2017-10-18 18:19:58 +0200
committerMartin André <m.andre@redhat.com>2017-10-26 11:08:44 +0200
commitb47e5e88a5359c19cf8417d959c8aa1a23be9216 (patch)
tree2d0e1e71106170e26443fc0f91b7f16d1a808dc9 /docker
parent0778e014195cb50e15f33e9cf75b34e9ab652f8e (diff)
downloadkolla-b47e5e88a5359c19cf8417d959c8aa1a23be9216.tar.gz
kolla-b47e5e88a5359c19cf8417d959c8aa1a23be9216.zip
Add Apache packages to mistral-api container
Some projects that use Kolla docker containers (TripleO) run mistral-api under httpd. This patch adds the httpd package so that it exists in the container and can optionally by used via Docker entrypoints. As many of these projects do not require the use of Apache (it is opt-in) at this point not all deployment frameworks support the use of it so the existing configuration defaults have been left as-is for now. Change-Id: I07ffd0b398e20065fff27c30d0842b94090ca0ad Related-Bug: #1724607 Partially-Implements: blueprint apache-packages-for-apis
Diffstat (limited to 'docker')
-rw-r--r--docker/mistral/mistral-api/Dockerfile.j239
-rw-r--r--docker/mistral/mistral-api/extend_start.sh13
2 files changed, 50 insertions, 2 deletions
diff --git a/docker/mistral/mistral-api/Dockerfile.j2 b/docker/mistral/mistral-api/Dockerfile.j2
index 4cb3a0156..2c8c76247 100644
--- a/docker/mistral/mistral-api/Dockerfile.j2
+++ b/docker/mistral/mistral-api/Dockerfile.j2
@@ -7,11 +7,46 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
- {% set mistral_api_packages = ['openstack-mistral-api'] %}
+ {% set mistral_api_packages = [
+ 'httpd',
+ 'mod_ssl',
+ 'mod_wsgi',
+ 'openstack-mistral-api'
+ ] %}
+{{ macros.install_packages(mistral_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 mistral_api_packages = ['mistral-api'] %}
+ {% set mistral_api_packages = [
+ 'apache2',
+ 'libapache2-mod-wsgi',
+ 'mistral-api'
+ ] %}
+{{ macros.install_packages(mistral_api_packages | customizable("packages")) }}
+RUN echo > /etc/apache2/ports.conf
{% endif %}
+
+{% elif install_type == 'source' %}
+ {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set mistral_api_packages = [
+ 'httpd',
+ 'mod_ssl',
+ 'mod_wsgi'
+ ] %}
{{ macros.install_packages(mistral_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 mistral_api_packages = [
+ 'apache2',
+ 'libapache2-mod-wsgi'
+ ] %}
+
+{{ macros.install_packages(mistral_api_packages | customizable("packages")) }}
+RUN echo > /etc/apache2/ports.conf
+ {% endif %}
{% endif %}
COPY extend_start.sh /usr/local/bin/kolla_mistral_extend_start
diff --git a/docker/mistral/mistral-api/extend_start.sh b/docker/mistral/mistral-api/extend_start.sh
index 113adb8a2..4953802b1 100644
--- a/docker/mistral/mistral-api/extend_start.sh
+++ b/docker/mistral/mistral-api/extend_start.sh
@@ -7,3 +7,16 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
mistral-db-manage --config-file /etc/mistral/mistral.conf populate
exit 0
fi
+
+# Assume the service runs on top of Apache when user is root
+if [[ "$(whoami)" == 'root' ]]; then
+ # 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
+fi