From fd0af55cb105d53e77caa5ac5072a2b2e34fefd4 Mon Sep 17 00:00:00 2001 From: Juan Antonio Osorio Robles Date: Mon, 31 Jul 2017 12:27:18 +0300 Subject: [PATCH] Add httpd to the Barbican API image We are running barbican over httpd in TripleO, and would like to continue doing so when using containerized barbican. Thus, we need this package in the image as well. Change-Id: I7001855cffeed264cb45305e2aa6fac139ea05c9 --- docker/barbican/barbican-api/Dockerfile.j2 | 26 ++++++++++++++----- docker/barbican/barbican-api/extend_start.sh | 13 ++++++++++ ...-barbican-with-httpd-d6d7599c07315e32.yaml | 4 +++ 3 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 releasenotes/notes/use-barbican-with-httpd-d6d7599c07315e32.yaml diff --git a/docker/barbican/barbican-api/Dockerfile.j2 b/docker/barbican/barbican-api/Dockerfile.j2 index 39cefda417..4a0d53faa8 100644 --- a/docker/barbican/barbican-api/Dockerfile.j2 +++ b/docker/barbican/barbican-api/Dockerfile.j2 @@ -8,18 +8,32 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if install_type == 'binary' %} {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} {% set barbican_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi', 'openstack-barbican-api', 'uwsgi-plugin-python' ] %} - {% elif base_distro in ['debian', 'ubuntu'] %} - {% set barbican_api_packages = [ - 'barbican-api', - 'uwsgi-plugin-python' - ] %} - {% endif %} {{ macros.install_packages(barbican_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 barbican_api_packages = [ + 'apache2', + 'barbican-api', + 'libapache2-mod-wsgi', + 'uwsgi-plugin-python' + ] %} + +{{ macros.install_packages(barbican_api_packages | customizable("packages")) }} + +RUN echo > /etc/apache2/ports.conf + + {% endif %} + {% endif %} COPY extend_start.sh /usr/local/bin/kolla_barbican_extend_start diff --git a/docker/barbican/barbican-api/extend_start.sh b/docker/barbican/barbican-api/extend_start.sh index c541d0343e..687c66ddb9 100755 --- a/docker/barbican/barbican-api/extend_start.sh +++ b/docker/barbican/barbican-api/extend_start.sh @@ -6,3 +6,16 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then barbican-db-manage upgrade 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 diff --git a/releasenotes/notes/use-barbican-with-httpd-d6d7599c07315e32.yaml b/releasenotes/notes/use-barbican-with-httpd-d6d7599c07315e32.yaml new file mode 100644 index 0000000000..12782ef74c --- /dev/null +++ b/releasenotes/notes/use-barbican-with-httpd-d6d7599c07315e32.yaml @@ -0,0 +1,4 @@ +--- +other: + - | + HTTPd was added to the barbican-api image.