From c096825075baf278f0319f194604f3c2a6ab21ec Mon Sep 17 00:00:00 2001
From: Hui Kang <kangh@us.ibm.com>
Date: Sat, 13 Aug 2016 04:08:22 +0000
Subject: [PATCH] Add etcd container

Change-Id: Ib5a853c0048a45d9085c55804580c7ed2fd0fc07
Partially-implements: bp kuryr-docker-plugin
---
 docker/etcd/Dockerfile.j2                     | 25 +++++++++++++++++++
 docker/etcd/etcd_sudoers                      |  1 +
 docker/etcd/extend_start.sh                   |  8 ++++++
 kolla/common/config.py                        |  2 +-
 .../etcd-dockerfile-69b8bfc1df4bb2ab.yaml     |  3 +++
 5 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 docker/etcd/Dockerfile.j2
 create mode 100644 docker/etcd/etcd_sudoers
 create mode 100644 docker/etcd/extend_start.sh
 create mode 100644 releasenotes/notes/etcd-dockerfile-69b8bfc1df4bb2ab.yaml

diff --git a/docker/etcd/Dockerfile.j2 b/docker/etcd/Dockerfile.j2
new file mode 100644
index 0000000000..d03df41313
--- /dev/null
+++ b/docker/etcd/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% import "macros.j2" as macros with context %}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+    {% set etcd_packages = ['etcd'] %}
+{% elif base_distro in ['ubuntu', 'debian'] %}
+    {% set etcd_packages = ['etcd'] %}
+{% endif %}
+{{ macros.install_packages(etcd_packages | customizable("packages")) }}
+
+COPY etcd_sudoers /etc/sudoers.d/etcd_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+
+RUN chmod 755 /usr/local/bin/kolla_extend_start \
+    && chmod 750 /etc/sudoers.d \
+    && chmod 440 /etc/sudoers.d/etcd_sudoers \
+    && usermod -a -G kolla etcd
+
+{% block etcd_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER etcd
diff --git a/docker/etcd/etcd_sudoers b/docker/etcd/etcd_sudoers
new file mode 100644
index 0000000000..d3e244be05
--- /dev/null
+++ b/docker/etcd/etcd_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown etcd\: /var/lib/etcd/, /bin/chown etcd\: /var/lib/etcd/
diff --git a/docker/etcd/extend_start.sh b/docker/etcd/extend_start.sh
new file mode 100644
index 0000000000..485ee8e2de
--- /dev/null
+++ b/docker/etcd/extend_start.sh
@@ -0,0 +1,8 @@
+#!/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
+    sudo chown etcd: /var/lib/etcd/
+    exit 0
+fi
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 4be0bebcea..2d455ab1b8 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -34,7 +34,7 @@ INSTALL_TYPE_CHOICES = ['binary', 'source', 'rdo', 'rhos']
 
 _PROFILE_OPTS = [
     cfg.ListOpt('infra',
-                default=['ceph', 'cron', 'mariadb', 'haproxy',
+                default=['ceph', 'cron', 'etcd', 'mariadb', 'haproxy',
                          'keepalived', 'kolla-toolbox', 'memcached',
                          'mongodb', 'openvswitch', 'rabbitmq', 'heka'],
                 help='Infra images'),
diff --git a/releasenotes/notes/etcd-dockerfile-69b8bfc1df4bb2ab.yaml b/releasenotes/notes/etcd-dockerfile-69b8bfc1df4bb2ab.yaml
new file mode 100644
index 0000000000..ce23312b2f
--- /dev/null
+++ b/releasenotes/notes/etcd-dockerfile-69b8bfc1df4bb2ab.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Add etcd docker container