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