From 0a1c94c33f84f123ea892aea27e35bc2abf622a9 Mon Sep 17 00:00:00 2001
From: akwasniewska <alicja.kwasniewska@intel.com>
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