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
This commit is contained in:
Martin André 2017-10-18 18:19:58 +02:00
parent 0778e01419
commit b47e5e88a5
2 changed files with 52 additions and 4 deletions

View File

@ -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'] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set mistral_api_packages = ['mistral-api'] %}
{% endif %}
{% 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 = [
'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

View File

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