diff options
| author | Goutham Pacha Ravi <gouthampravi@gmail.com> | 2018-08-08 16:21:06 -0700 |
|---|---|---|
| committer | Goutham Pacha Ravi <gouthampravi@gmail.com> | 2018-09-05 19:11:42 +0000 |
| commit | 170be6d17a2e4b85e376a88131ca488c619bebaf (patch) | |
| tree | 2ac5a6e68c27d61ce473435662f318f5d74f84a5 | |
| parent | 966b0b1e38649fb1e71b1004aa356ab36afc2830 (diff) | |
| download | kolla-170be6d17a2e4b85e376a88131ca488c619bebaf.tar.gz kolla-170be6d17a2e4b85e376a88131ca488c619bebaf.zip | |
Add support to deploy manila-api with Apache/wsgi
- Add required packages to run the manila-api service
with Apache/mod_wsgi, the mod_ssl package has been
added for RHEL/centos/oraclelinux only.
- Add necessary cleanup to the start script of the container.
- Add directories and configuration files that can be
optionally used via Docker entrypoints.
Change-Id: Id88760655b3419e7b6bec012ebfda16fb92e5ea3
Implements: bp apache-packages-for-manila-api
| -rw-r--r-- | docker/manila/manila-api/Dockerfile.j2 | 51 | ||||
| -rw-r--r-- | docker/manila/manila-api/extend_start.sh | 13 | ||||
| -rw-r--r-- | releasenotes/notes/add-manila-api-httpd-packages-and-conf-1bea1364037cd64e.yaml | 8 |
3 files changed, 68 insertions, 4 deletions
diff --git a/docker/manila/manila-api/Dockerfile.j2 b/docker/manila/manila-api/Dockerfile.j2 index a7be7444d..9ff110283 100644 --- a/docker/manila/manila-api/Dockerfile.j2 +++ b/docker/manila/manila-api/Dockerfile.j2 @@ -6,19 +6,62 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} {% if install_type == 'binary' %} - {% if base_distro in ['debian', 'ubuntu'] %} + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set manila_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi' + ] %} +{{ macros.install_packages(manila_api_packages | customizable("packages")) }} +RUN mkdir -p /var/www/cgi-bin/manila \ + && cp -a /usr/bin/manila-wsgi /var/www/cgi-bin/manila/manila-wsgi \ + && 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 manila_api_packages = [ + 'apache2', + 'libapache2-mod-wsgi', 'manila-api' ] %} +{{ macros.install_packages(manila_api_packages | customizable("packages")) }} +RUN mkdir -p /var/www/cgi-bin/manila \ + && cp -a /usr/bin/manila-wsgi /var/www/cgi-bin/manila/manila-wsgi \ + && echo > /etc/apache2/ports.conf + {% endif %} + + +{% elif install_type == 'source' %} + + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set manila_api_packages = [ + 'httpd', + 'mod_ssl', + 'mod_wsgi' + ] %} +{{ macros.install_packages(manila_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 manila_api_packages = [ + 'apache2', + 'libapache2-mod-wsgi' + ] %} {{ macros.install_packages(manila_api_packages | customizable("packages")) }} +RUN echo > /etc/apache2/ports.conf + + {% endif %} + +RUN mkdir -p /var/www/cgi-bin/manila \ + && cp -a /var/lib/kolla/venv/bin/manila-wsgi /var/www/cgi-bin/manila/manila-wsgi - {% endif%} -{% endif%} +{% endif %} COPY extend_start.sh /usr/local/bin/kolla_manila_extend_start -RUN chmod 755 /usr/local/bin/kolla_manila_extend_start +RUN chmod 755 /usr/local/bin/kolla_manila_extend_start \ + && chown -R manila: /var/www/cgi-bin/manila \ + && chmod 755 /var/www/cgi-bin/manila/manila-wsgi {% block manila_api_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/manila/manila-api/extend_start.sh b/docker/manila/manila-api/extend_start.sh index bea77dbba..3e5347ac5 100644 --- a/docker/manila/manila-api/extend_start.sh +++ b/docker/manila/manila-api/extend_start.sh @@ -7,3 +7,16 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then manila-manage db sync 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/add-manila-api-httpd-packages-and-conf-1bea1364037cd64e.yaml b/releasenotes/notes/add-manila-api-httpd-packages-and-conf-1bea1364037cd64e.yaml new file mode 100644 index 000000000..fbaafc5ec --- /dev/null +++ b/releasenotes/notes/add-manila-api-httpd-packages-and-conf-1bea1364037cd64e.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + The manila-api dockerfile now contains support for httpd and mod_wsgi + packages for all supported platforms. It also contains the mod_ssl + package for RHEL/centos and oraclelinux. Docker entrypoints can now use + the httpd configuration seeded to run the manila-api service with + httpd/mod_wsgi. |
