diff options
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/freezer/freezer-api/Dockerfile.j2 | 49 | ||||
| -rwxr-xr-x | docker/freezer/freezer-api/extend_start.sh | 18 | ||||
| -rw-r--r-- | docker/freezer/freezer-base/Dockerfile.j2 | 34 | ||||
| -rwxr-xr-x | docker/freezer/freezer-base/extend_start.sh | 15 | ||||
| -rw-r--r-- | docker/freezer/freezer-base/freezer_sudoers | 1 |
5 files changed, 117 insertions, 0 deletions
diff --git a/docker/freezer/freezer-api/Dockerfile.j2 b/docker/freezer/freezer-api/Dockerfile.j2 new file mode 100644 index 000000000..5596f550f --- /dev/null +++ b/docker/freezer/freezer-api/Dockerfile.j2 @@ -0,0 +1,49 @@ +FROM {{ namespace }}/{{ image_prefix }}freezer-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block freezer_api_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + + {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set freezer_api_packages = [ + 'mod_wsgi', + 'httpd' + ] %} + +{{ macros.install_packages(freezer_api_packages | customizable("packages")) }} + +RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf + {% elif base_distro in ['ubuntu', 'debian'] %} + {% set freezer_api_packages = [ + 'libapache2-mod-wsgi', + 'apache2' + ] %} + +{{ macros.install_packages(freezer_api_packages | customizable("packages")) }} + +RUN echo > /etc/apache2/ports.conf + {% endif %} + +ADD freezer-api-archive /freezer-api-source +RUN ln -s freezer-api-source/* freezer-api \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /freezer-api \ + && cp -r /freezer-api/etc/freezer/* /etc/freezer/ + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_freezer_extend_start +RUN chmod 755 /usr/local/bin/kolla_freezer_extend_start + +{% block freezer_api_footer %}{% endblock %} +{% block footer %}{% endblock %} +{{ include_footer }} + +USER freezer diff --git a/docker/freezer/freezer-api/extend_start.sh b/docker/freezer/freezer-api/extend_start.sh new file mode 100755 index 000000000..d12b6b7d4 --- /dev/null +++ b/docker/freezer/freezer-api/extend_start.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + freezer-manage db update + exit 0 +fi + +if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then + # Loading Apache2 ENV variables + . /etc/apache2/envvars + rm -rf /var/run/apache2/* + APACHE_DIR="apache2" +else + rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* + APACHE_DIR="httpd" +fi diff --git a/docker/freezer/freezer-base/Dockerfile.j2 b/docker/freezer/freezer-base/Dockerfile.j2 new file mode 100644 index 000000000..b4d42d24a --- /dev/null +++ b/docker/freezer/freezer-base/Dockerfile.j2 @@ -0,0 +1,34 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block freezer_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + +ADD freezer-base-archive /freezer-base-source +RUN ln -s freezer-base-source/* freezer \ + && useradd --user-group freezer \ + && mkdir -p /etc/freezer /home/freezer \ + && chown -R freezer: /etc/freezer /home/freezer \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /freezer \ + && cp -r /freezer/etc/* /etc/freezer + +{% endif %} + +COPY freezer_sudoers /etc/sudoers.d/kolla_freezer_sudoers +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN usermod -a -G kolla freezer \ + && chmod 750 /etc/sudoers.d \ + && chmod 640 /etc/sudoers.d/kolla_freezer_sudoers \ + && touch /usr/local/bin/kolla_freezer_extend_start \ + && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_freezer_extend_start + +{% block freezer_base_footer %}{% endblock %} diff --git a/docker/freezer/freezer-base/extend_start.sh b/docker/freezer/freezer-base/extend_start.sh new file mode 100755 index 000000000..44a641dd7 --- /dev/null +++ b/docker/freezer/freezer-base/extend_start.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Create log dir for freezer logs +LOG_DIR="/var/log/kolla/freezer" +if [[ ! -d "${LOG_DIR}" ]]; then + mkdir -p ${LOG_DIR} +fi +if [[ $(stat -c %U:%G ${LOG_DIR}) != "freezer:kolla" ]]; then + chown freezer:kolla ${LOG_DIR} +fi +if [[ $(stat -c %a ${LOG_DIR}) != "755" ]]; then + chmod 755 ${LOG_DIR} +fi + +. /usr/local/bin/kolla_freezer_extend_start diff --git a/docker/freezer/freezer-base/freezer_sudoers b/docker/freezer/freezer-base/freezer_sudoers new file mode 100644 index 000000000..8185fa507 --- /dev/null +++ b/docker/freezer/freezer-base/freezer_sudoers @@ -0,0 +1 @@ +%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R freezer\: /var/lib/freezer/, /bin/chown -R freezer\: /var/lib/freezer/ |
