From 0a1c94c33f84f123ea892aea27e35bc2abf622a9 Mon Sep 17 00:00:00 2001 From: akwasniewska Date: Mon, 17 Aug 2015 06:13:15 +0200 Subject: [PATCH] Add Dockerfile template for swift Change-Id: Ie500f9b8640129e464075e4bebd628cf4a4d7f86 Partially-Implements: blueprint dockerfile-template --- .../swift/swift-account-server/Dockerfile.j2 | 17 ++++++++++ .../swift-account-server/config-external.sh | 1 + .../swift/swift-account-server/start.sh | 1 + .../swift/swift-base/Dockerfile.j2 | 32 +++++++++++++++++++ .../swift/swift-base/build-swift-ring.py | 1 + .../swift/swift-base/config-swift.sh | 1 + .../swift-container-server/Dockerfile.j2 | 17 ++++++++++ .../swift-container-server/config-external.sh | 1 + .../swift/swift-container-server/start.sh | 1 + .../swift/swift-data/Dockerfile.j2 | 13 ++++++++ .../swift/swift-object-auditor/Dockerfile.j2 | 7 ++++ .../swift-object-auditor/config-external.sh | 1 + .../swift/swift-object-auditor/start.sh | 1 + .../swift/swift-object-base/Dockerfile.j2 | 14 ++++++++ .../swift-object-base/config-swift-object.sh | 1 + .../swift/swift-object-expirer/Dockerfile.j2 | 18 +++++++++++ .../swift-object-expirer/config-external.sh | 1 + .../swift/swift-object-expirer/start.sh | 1 + .../swift-object-replicator/Dockerfile.j2 | 7 ++++ .../config-external.sh | 1 + .../swift/swift-object-replicator/start.sh | 1 + .../swift/swift-object-server/Dockerfile.j2 | 7 ++++ .../swift-object-server/config-external.sh | 1 + .../swift/swift-object-server/start.sh | 1 + .../swift/swift-object-updater/Dockerfile.j2 | 7 ++++ .../swift-object-updater/config-external.sh | 1 + .../swift/swift-object-updater/start.sh | 1 + .../swift/swift-proxy-server/Dockerfile.j2 | 14 ++++++++ .../swift-proxy-server/config-external.sh | 1 + .../swift/swift-proxy-server/start.sh | 1 + 30 files changed, 172 insertions(+) create mode 100644 docker_templates/swift/swift-account-server/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-account-server/config-external.sh create mode 120000 docker_templates/swift/swift-account-server/start.sh create mode 100644 docker_templates/swift/swift-base/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-base/build-swift-ring.py create mode 120000 docker_templates/swift/swift-base/config-swift.sh create mode 100644 docker_templates/swift/swift-container-server/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-container-server/config-external.sh create mode 120000 docker_templates/swift/swift-container-server/start.sh create mode 100644 docker_templates/swift/swift-data/Dockerfile.j2 create mode 100644 docker_templates/swift/swift-object-auditor/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-auditor/config-external.sh create mode 120000 docker_templates/swift/swift-object-auditor/start.sh create mode 100644 docker_templates/swift/swift-object-base/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-base/config-swift-object.sh create mode 100644 docker_templates/swift/swift-object-expirer/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-expirer/config-external.sh create mode 120000 docker_templates/swift/swift-object-expirer/start.sh create mode 100644 docker_templates/swift/swift-object-replicator/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-replicator/config-external.sh create mode 120000 docker_templates/swift/swift-object-replicator/start.sh create mode 100644 docker_templates/swift/swift-object-server/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-server/config-external.sh create mode 120000 docker_templates/swift/swift-object-server/start.sh create mode 100644 docker_templates/swift/swift-object-updater/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-object-updater/config-external.sh create mode 120000 docker_templates/swift/swift-object-updater/start.sh create mode 100644 docker_templates/swift/swift-proxy-server/Dockerfile.j2 create mode 120000 docker_templates/swift/swift-proxy-server/config-external.sh create mode 120000 docker_templates/swift/swift-proxy-server/start.sh diff --git a/docker_templates/swift/swift-account-server/Dockerfile.j2 b/docker_templates/swift/swift-account-server/Dockerfile.j2 new file mode 100644 index 0000000000..809091d4d2 --- /dev/null +++ b/docker_templates/swift/swift-account-server/Dockerfile.j2 @@ -0,0 +1,17 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-swift-account \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-account-server/config-external.sh b/docker_templates/swift/swift-account-server/config-external.sh new file mode 120000 index 0000000000..2e64f572a8 --- /dev/null +++ b/docker_templates/swift/swift-account-server/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-account-server/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-account-server/start.sh b/docker_templates/swift/swift-account-server/start.sh new file mode 120000 index 0000000000..6e17dfe7f1 --- /dev/null +++ b/docker_templates/swift/swift-account-server/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-account-server/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-base/Dockerfile.j2 b/docker_templates/swift/swift-base/Dockerfile.j2 new file mode 100644 index 0000000000..eee2324d01 --- /dev/null +++ b/docker_templates/swift/swift-base/Dockerfile.j2 @@ -0,0 +1,32 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install openstack-swift && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN echo '{{ install_type}} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} + +{% elif install_type == 'source' %} + +ADD ./swift.tar / +RUN ln -s /swift-* /swift + +RUN cd /swift \ + && useradd --user-group swift \ + && pip install -r requirements.txt \ + && pip install /swift \ + && mkdir /etc/swift /var/log/swift \ + && cp -r /swift/etc/* /etc/swift/ \ + && rm -rf /root/.cache + +{% endif %} + +COPY config-swift.sh build-swift-ring.py /opt/kolla/ +RUN mkdir /opt/swift diff --git a/docker_templates/swift/swift-base/build-swift-ring.py b/docker_templates/swift/swift-base/build-swift-ring.py new file mode 120000 index 0000000000..de9cab77c4 --- /dev/null +++ b/docker_templates/swift/swift-base/build-swift-ring.py @@ -0,0 +1 @@ +../../../docker/common/swift/swift-base/build-swift-ring.py \ No newline at end of file diff --git a/docker_templates/swift/swift-base/config-swift.sh b/docker_templates/swift/swift-base/config-swift.sh new file mode 120000 index 0000000000..571e3b9ee1 --- /dev/null +++ b/docker_templates/swift/swift-base/config-swift.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-base/config-swift.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-container-server/Dockerfile.j2 b/docker_templates/swift/swift-container-server/Dockerfile.j2 new file mode 100644 index 0000000000..b4b43d8dc2 --- /dev/null +++ b/docker_templates/swift/swift-container-server/Dockerfile.j2 @@ -0,0 +1,17 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-swift-container \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-container-server/config-external.sh b/docker_templates/swift/swift-container-server/config-external.sh new file mode 120000 index 0000000000..880a5ca0e8 --- /dev/null +++ b/docker_templates/swift/swift-container-server/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-container-server/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-container-server/start.sh b/docker_templates/swift/swift-container-server/start.sh new file mode 120000 index 0000000000..bdce09ff9c --- /dev/null +++ b/docker_templates/swift/swift-container-server/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-container-server/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-data/Dockerfile.j2 b/docker_templates/swift/swift-data/Dockerfile.j2 new file mode 100644 index 0000000000..21bfc1d435 --- /dev/null +++ b/docker_templates/swift/swift-data/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +# NOTE(pbourke): This is emulating the Swift "all-in-one" setups where there are 3 disks/partitions +# on which to mirror data. This is extremely inefficient and is really only to prove everything +# works in an AIO setup. For production deploys the Ansible provisioned setup should be used. +VOLUME [ "/srv/node/sdb1" ] +VOLUME [ "/srv/node/sdb2" ] +VOLUME [ "/srv/node/sdb3" ] + +# Command needed to start the data container. +# Note: data containers do not need to be persistent. +CMD ["/bin/true"] diff --git a/docker_templates/swift/swift-object-auditor/Dockerfile.j2 b/docker_templates/swift/swift-object-auditor/Dockerfile.j2 new file mode 100644 index 0000000000..637501586d --- /dev/null +++ b/docker_templates/swift/swift-object-auditor/Dockerfile.j2 @@ -0,0 +1,7 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-object-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-object-auditor/config-external.sh b/docker_templates/swift/swift-object-auditor/config-external.sh new file mode 120000 index 0000000000..600658a32f --- /dev/null +++ b/docker_templates/swift/swift-object-auditor/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-auditor/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-auditor/start.sh b/docker_templates/swift/swift-object-auditor/start.sh new file mode 120000 index 0000000000..3ec3642221 --- /dev/null +++ b/docker_templates/swift/swift-object-auditor/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-auditor/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-base/Dockerfile.j2 b/docker_templates/swift/swift-object-base/Dockerfile.j2 new file mode 100644 index 0000000000..54997a1145 --- /dev/null +++ b/docker_templates/swift/swift-object-base/Dockerfile.j2 @@ -0,0 +1,14 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-swift-object \ + && yum clean all + + {% endif %} +{% endif %} + +COPY config-swift-object.sh /opt/kolla/ diff --git a/docker_templates/swift/swift-object-base/config-swift-object.sh b/docker_templates/swift/swift-object-base/config-swift-object.sh new file mode 120000 index 0000000000..615227fb40 --- /dev/null +++ b/docker_templates/swift/swift-object-base/config-swift-object.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-base/config-swift-object.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-expirer/Dockerfile.j2 b/docker_templates/swift/swift-object-expirer/Dockerfile.j2 new file mode 100644 index 0000000000..8b211f2e44 --- /dev/null +++ b/docker_templates/swift/swift-object-expirer/Dockerfile.j2 @@ -0,0 +1,18 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-object-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install \ + openstack-swift-proxy \ + openstack-swift-container \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-object-expirer/config-external.sh b/docker_templates/swift/swift-object-expirer/config-external.sh new file mode 120000 index 0000000000..5ddb51de9a --- /dev/null +++ b/docker_templates/swift/swift-object-expirer/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-expirer/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-expirer/start.sh b/docker_templates/swift/swift-object-expirer/start.sh new file mode 120000 index 0000000000..14c430192d --- /dev/null +++ b/docker_templates/swift/swift-object-expirer/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-expirer/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-replicator/Dockerfile.j2 b/docker_templates/swift/swift-object-replicator/Dockerfile.j2 new file mode 100644 index 0000000000..637501586d --- /dev/null +++ b/docker_templates/swift/swift-object-replicator/Dockerfile.j2 @@ -0,0 +1,7 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-object-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-object-replicator/config-external.sh b/docker_templates/swift/swift-object-replicator/config-external.sh new file mode 120000 index 0000000000..a38035ba22 --- /dev/null +++ b/docker_templates/swift/swift-object-replicator/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-replicator/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-replicator/start.sh b/docker_templates/swift/swift-object-replicator/start.sh new file mode 120000 index 0000000000..bd47778bec --- /dev/null +++ b/docker_templates/swift/swift-object-replicator/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-replicator/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-server/Dockerfile.j2 b/docker_templates/swift/swift-object-server/Dockerfile.j2 new file mode 100644 index 0000000000..637501586d --- /dev/null +++ b/docker_templates/swift/swift-object-server/Dockerfile.j2 @@ -0,0 +1,7 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-object-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-object-server/config-external.sh b/docker_templates/swift/swift-object-server/config-external.sh new file mode 120000 index 0000000000..b39b6afe5c --- /dev/null +++ b/docker_templates/swift/swift-object-server/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-server/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-server/start.sh b/docker_templates/swift/swift-object-server/start.sh new file mode 120000 index 0000000000..97c98b6faf --- /dev/null +++ b/docker_templates/swift/swift-object-server/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-server/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-updater/Dockerfile.j2 b/docker_templates/swift/swift-object-updater/Dockerfile.j2 new file mode 100644 index 0000000000..637501586d --- /dev/null +++ b/docker_templates/swift/swift-object-updater/Dockerfile.j2 @@ -0,0 +1,7 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-object-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-object-updater/config-external.sh b/docker_templates/swift/swift-object-updater/config-external.sh new file mode 120000 index 0000000000..c1ebd68089 --- /dev/null +++ b/docker_templates/swift/swift-object-updater/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-updater/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-object-updater/start.sh b/docker_templates/swift/swift-object-updater/start.sh new file mode 120000 index 0000000000..b0455b774e --- /dev/null +++ b/docker_templates/swift/swift-object-updater/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-object-updater/start.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-proxy-server/Dockerfile.j2 b/docker_templates/swift/swift-proxy-server/Dockerfile.j2 new file mode 100644 index 0000000000..b668f33e2b --- /dev/null +++ b/docker_templates/swift/swift-proxy-server/Dockerfile.j2 @@ -0,0 +1,14 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install openstack-swift-proxy && yum clean all + + {% endif %} +{% endif %} + +COPY ./start.sh /start.sh +COPY config-external.sh /opt/kolla/ +CMD ["/start.sh"] diff --git a/docker_templates/swift/swift-proxy-server/config-external.sh b/docker_templates/swift/swift-proxy-server/config-external.sh new file mode 120000 index 0000000000..9bb7410f47 --- /dev/null +++ b/docker_templates/swift/swift-proxy-server/config-external.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-proxy-server/config-external.sh \ No newline at end of file diff --git a/docker_templates/swift/swift-proxy-server/start.sh b/docker_templates/swift/swift-proxy-server/start.sh new file mode 120000 index 0000000000..be2f8abef2 --- /dev/null +++ b/docker_templates/swift/swift-proxy-server/start.sh @@ -0,0 +1 @@ +../../../docker/common/swift/swift-proxy-server/start.sh \ No newline at end of file