From 503120657e9e4def55a2d3397c44bd4d1e110c52 Mon Sep 17 00:00:00 2001 From: Shaun Smekel Date: Fri, 12 Aug 2016 07:16:19 +1000 Subject: [PATCH] Customizations for Swift This patchset contains customization of Dockerfile of Swift containers. Change-Id: I69250c4d9f6cc3949c9b9b52ea4b0cc2aec0231e Partially-implements: blueprint third-party-plugin-support --- docker/swift/swift-account/Dockerfile.j2 | 19 +++++------ docker/swift/swift-base/Dockerfile.j2 | 33 ++++++++----------- docker/swift/swift-container/Dockerfile.j2 | 19 +++++------ docker/swift/swift-object/Dockerfile.j2 | 19 +++++------ docker/swift/swift-proxy-server/Dockerfile.j2 | 19 +++++------ docker/swift/swift-rsyncd/Dockerfile.j2 | 17 ++++------ 6 files changed, 56 insertions(+), 70 deletions(-) diff --git a/docker/swift/swift-account/Dockerfile.j2 b/docker/swift/swift-account/Dockerfile.j2 index 72a609c24a..6fd31431f6 100644 --- a/docker/swift/swift-account/Dockerfile.j2 +++ b/docker/swift/swift-account/Dockerfile.j2 @@ -1,22 +1,21 @@ FROM {{ namespace }}/{{ image_prefix }}swift-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - openstack-swift-account \ - && yum clean all - + {% set swift_acount_packages = ['openstack-swift-account'] %} {% elif base_distro in ['ubuntu'] %} - -RUN apt-get -y install --no-install-recommends \ - swift-account \ - && apt-get clean - + {% set swift_acount_packages = ['swift-account'] %} {% endif %} + +RUN {{ macros.install_packages(swift_acount_packages | customizable("packages")) }} + {% endif %} +{% block swift_account_footer %}{% endblock %} +{% block footer %}{% endblock %} {{ include_footer }} USER swift diff --git a/docker/swift/swift-base/Dockerfile.j2 b/docker/swift/swift-base/Dockerfile.j2 index 2e05ac29ff..15bf9ee494 100644 --- a/docker/swift/swift-base/Dockerfile.j2 +++ b/docker/swift/swift-base/Dockerfile.j2 @@ -1,35 +1,25 @@ FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - openstack-swift \ - && yum clean all - + {% set swift_base_packages = ['openstack-swift'] %} {% elif base_distro in ['ubuntu'] %} - -RUN apt-get -y install --no-install-recommends \ - swift \ - && apt-get clean - + {% set swift_base_packages = ['swift'] %} {% endif %} + +RUN {{ macros.install_packages(swift_base_packages | customizable("packages")) }} + {% elif install_type == 'source' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - liberasurecode-devel \ - && yum clean all - + {% set swift_base_packages = ['liberasurecode-devel'] %} {% elif base_distro in ['ubuntu', 'debian'] %} - -RUN apt-get -y install --no-install-recommends \ - liberasurecode-dev \ - && apt-get clean - + {% set swift_base_packages = ['liberasurecode-dev'] %} {% endif %} +RUN {{ macros.install_packages(swift_base_packages | customizable("packages")) }} ADD swift-base-archive /swift-base-source RUN ln -s swift-base-source/* swift \ && useradd --user-group swift \ @@ -56,3 +46,6 @@ COPY build-swift-ring.py /usr/local/bin/kolla_build_swift_ring RUN mkdir -p /opt/swift RUN usermod -a -G kolla swift + +{% block swift_base_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/swift/swift-container/Dockerfile.j2 b/docker/swift/swift-container/Dockerfile.j2 index 1e56d6a015..cbce0c2bdb 100644 --- a/docker/swift/swift-container/Dockerfile.j2 +++ b/docker/swift/swift-container/Dockerfile.j2 @@ -1,22 +1,21 @@ FROM {{ namespace }}/{{ image_prefix }}swift-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - openstack-swift-container \ - && yum clean all - + {% set swift_container_packages = ['openstack-swift-container'] %} {% elif base_distro in ['ubuntu'] %} - -RUN apt-get -y install --no-install-recommends \ - swift-container \ - && apt-get clean - + {% set swift_container_packages = ['swift-container'] %} {% endif %} + +RUN {{ macros.install_packages(swift_container_packages | customizable("packages")) }} + {% endif %} +{% block swift_container_footer %}{% endblock %} +{% block footer %}{% endblock %} {{ include_footer }} USER swift diff --git a/docker/swift/swift-object/Dockerfile.j2 b/docker/swift/swift-object/Dockerfile.j2 index 0c88d18ce7..e169f4de0c 100644 --- a/docker/swift/swift-object/Dockerfile.j2 +++ b/docker/swift/swift-object/Dockerfile.j2 @@ -1,22 +1,21 @@ FROM {{ namespace }}/{{ image_prefix }}swift-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - openstack-swift-object \ - && yum clean all - + {% set swift_object_packages = ['openstack-swift-object'] %} {% elif base_distro in ['ubuntu'] %} - -RUN apt-get -y install --no-install-recommends \ - swift-object \ - && apt-get clean - + {% set swift_object_packages = ['swift-object'] %} {% endif %} + +RUN {{ macros.install_packages(swift_object_packages | customizable("packages")) }} + {% endif %} +{% block swift_object_footer %}{% endblock %} +{% block footer %}{% endblock %} {{ include_footer }} USER swift diff --git a/docker/swift/swift-proxy-server/Dockerfile.j2 b/docker/swift/swift-proxy-server/Dockerfile.j2 index 22e53b8450..6ba07b9026 100644 --- a/docker/swift/swift-proxy-server/Dockerfile.j2 +++ b/docker/swift/swift-proxy-server/Dockerfile.j2 @@ -1,22 +1,21 @@ FROM {{ namespace }}/{{ image_prefix }}swift-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - openstack-swift-proxy \ - && yum clean all - + {% set swift_proxy_server_packages = ['openstack-swift-proxy'] %} {% elif base_distro in ['ubuntu'] %} - -RUN apt-get -y install --no-install-recommends \ - swift-proxy \ - && apt-get clean - + {% set swift_proxy_server_packages = ['swift-proxy'] %} {% endif %} + +RUN {{ macros.install_packages(swift_proxy_server_packages | customizable("packages")) }} + {% endif %} +{% block swift_proxy_server_footer %}{% endblock %} +{% block footer %}{% endblock %} {{ include_footer }} USER swift diff --git a/docker/swift/swift-rsyncd/Dockerfile.j2 b/docker/swift/swift-rsyncd/Dockerfile.j2 index 4cb8b7fce1..74864edefe 100644 --- a/docker/swift/swift-rsyncd/Dockerfile.j2 +++ b/docker/swift/swift-rsyncd/Dockerfile.j2 @@ -1,23 +1,20 @@ FROM {{ namespace }}/{{ image_prefix }}swift-base:{{ tag }} MAINTAINER {{ maintainer }} +{% import "macros.j2" as macros with context %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %} - -RUN yum -y install \ - rsync \ - && yum clean all - + {% set swift_rsyncd_packages = ['rsync'] %} {% elif base_distro in ['ubuntu', 'debian'] %} - -RUN apt-get -y install --no-install-recommends \ - rsync \ - && apt-get clean - + {% set swift_rsyncd_packages = ['rsync'] %} {% endif %} +RUN {{ macros.install_packages(swift_rsyncd_packages | customizable("packages")) }} COPY extend_start.sh /usr/local/bin/kolla_extend_start RUN chmod 755 /usr/local/bin/kolla_extend_start +{% block swift_rsyncd_footer %}{% endblock %} +{% block footer %}{% endblock %} {{ include_footer }} USER swift