diff options
| author | Brent Eagles <beagles@redhat.com> | 2019-02-13 17:34:32 -0330 |
|---|---|---|
| committer | Brent Eagles <beagles@redhat.com> | 2019-02-20 08:02:02 -0330 |
| commit | 2c75a2429b26eeabeb9d3f0b39a1fffd9cee00af (patch) | |
| tree | 785017cb55d0c1c75482299644689b8966575ada | |
| parent | 5922c22d8af6c34eb5c34250c3fa90dc3f853688 (diff) | |
| download | kolla-2c75a2429b26eeabeb9d3f0b39a1fffd9cee00af.tar.gz kolla-2c75a2429b26eeabeb9d3f0b39a1fffd9cee00af.zip | |
Install packages into octavia-api image to support wsgi
This patch adds packages to the octavia-api container to support running
it under apache instead of under simple server. This resolves an issue
with haproxy as well as support IPv6.
Change-Id: I72e0a44f081747ebaec25fd5049db83ea6f418ff
Related-Bug: #1815811
| -rw-r--r-- | docker/octavia/octavia-api/Dockerfile.j2 | 27 | ||||
| -rw-r--r-- | docker/octavia/octavia-api/extend_start.sh | 14 |
2 files changed, 40 insertions, 1 deletions
diff --git a/docker/octavia/octavia-api/Dockerfile.j2 b/docker/octavia/octavia-api/Dockerfile.j2 index 65e2c03ce..6c1666c55 100644 --- a/docker/octavia/octavia-api/Dockerfile.j2 +++ b/docker/octavia/octavia-api/Dockerfile.j2 @@ -8,15 +8,40 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if install_type == 'binary' %} {% if base_package_type == 'rpm' %} {% set octavia_api_packages = [ - 'openstack-octavia-api' + 'openstack-octavia-api', + 'httpd', + 'mod_ssl', + 'mod_wsgi' ] %} {% elif base_package_type == 'deb' %} RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ && /bin/false {% endif %} + +{% elif install_type == 'source' %} + {% if base_package_type == 'rpm' %} + {% set octavia_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi' + ] %} + {% elif base_package_type == 'deb' %} + {% set octavia_api_packages = [ + 'apache2', + 'libapache2-mod-wsgi' + ] %} + {% endif %} + +{% endif %} + {{ macros.install_packages(octavia_api_packages | customizable("packages")) }} +{% if base_package_type == 'rpm' %} +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_package_type == 'deb' %} +RUN echo > /etc/apache2/ports.conf {% endif %} COPY extend_start.sh /usr/local/bin/kolla_octavia_extend_start diff --git a/docker/octavia/octavia-api/extend_start.sh b/docker/octavia/octavia-api/extend_start.sh index 2692046c9..fd0e1cf96 100644 --- a/docker/octavia/octavia-api/extend_start.sh +++ b/docker/octavia/octavia-api/extend_start.sh @@ -6,3 +6,17 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then octavia-db-manage upgrade head 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 +~ |
