aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-04-13 14:57:40 +0000
committerGerrit Code Review <review@openstack.org>2019-04-13 14:57:40 +0000
commit32693b83385c3b76ba0edf7e426bb110c6c335ae (patch)
treec687b63e3e37128de0e72695c7d4f2a0563190f2
parent68b17a2bed7bf47a0fdc63c9e47354cc6c0300fa (diff)
parentfb4cb9efda5a522ba0d837047385b61275d09150 (diff)
downloadkolla-32693b83385c3b76ba0edf7e426bb110c6c335ae.tar.gz
kolla-32693b83385c3b76ba0edf7e426bb110c6c335ae.zip
Merge "Add config option use_dumb_init to add it to container images"
-rw-r--r--docker/base/Dockerfile.j26
-rw-r--r--docker/mariadb/Dockerfile.j25
-rwxr-xr-xkolla/common/config.py2
-rwxr-xr-xkolla/image/build.py2
-rw-r--r--releasenotes/notes/add-use-dumb-init-config-option-26b47f6d97d7585c.yaml15
5 files changed, 27 insertions, 3 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index c9d18b296..a26ba63fc 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -407,8 +407,9 @@ COPY start.sh /usr/local/bin/kolla_start
COPY sudoers /etc/sudoers
COPY curlrc /root/.curlrc
-{% block dumb_init_installation %}
+{% if use_dumb_init %}
+{% block dumb_init_installation %}
{% if base_arch == 'x86_64' %}
RUN curl -sSL https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_{{debian_arch}} -o /usr/local/bin/dumb-init \
@@ -428,10 +429,11 @@ RUN curl -sSL http://deb.debian.org/debian/pool/main/d/dumb-init/{{dumb_init_pac
&& rm data.tar.xz {{dumb_init_package_name}}
{% endif %}
+{% endblock %}
ENTRYPOINT ["dumb-init", "--single-child", "--"]
-{% endblock %}
+{% endif %}
RUN touch /usr/local/bin/kolla_extend_start \
&& chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_set_configs \
diff --git a/docker/mariadb/Dockerfile.j2 b/docker/mariadb/Dockerfile.j2
index cc7b27194..4e2f57f48 100644
--- a/docker/mariadb/Dockerfile.j2
+++ b/docker/mariadb/Dockerfile.j2
@@ -52,15 +52,18 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start \
RUN mkdir -p /var/run/mysqld && chown mysql /var/run/mysqld && chmod 755 /var/run/mysqld
{% endif %}
+{% if use_dumb_init %}
{% block mariadb_entrypoint %}
# NOTE(mgoddard): Override the dumb-init arguments to avoid passing
# --single-child. This does not play well with mysqld_safe, which ignores
# SIGTERM, meaning Docker needs to forcibly kill the container to stop it.
# Without --single-child, the TERM signal is sent to all subprocesses,
# including mysqld.
-ENTRYPOINT ["dumb-init"]
+
+ENTRYPOINT ["dumb-init", "--"]
CMD ["kolla_start"]
{% endblock %}
+{% endif %}
{% block mariadb_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 4946e80ba..f760e3210 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -184,6 +184,8 @@ _CLI_OPTS = [
cfg.StrOpt('base-arch', default=hostarch,
choices=BASE_ARCH,
help='The base architecture. Default is same as host.'),
+ cfg.BoolOpt('use-dumb-init', default=True,
+ help='Use dumb-init as init system in containers'),
cfg.BoolOpt('debug', short='d', default=False,
help='Turn on debugging log level'),
cfg.BoolOpt('skip-parents', default=False,
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 7683d7904..8e7b546e3 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -681,6 +681,7 @@ class KollaWorker(object):
else:
self.namespace = conf.namespace
self.base = conf.base
+ self.use_dumb_init = conf.use_dumb_init
self.base_tag = conf.base_tag
self.install_type = conf.install_type
self.tag = conf.tag
@@ -926,6 +927,7 @@ class KollaWorker(object):
'base_image': self.conf.base_image,
'base_distro_tag': self.base_tag,
'base_arch': self.base_arch,
+ 'use_dumb_init': self.use_dumb_init,
'base_package_type': self.base_package_type,
'debian_arch': self.debian_arch,
'supported_distro_release': supported_distro_release,
diff --git a/releasenotes/notes/add-use-dumb-init-config-option-26b47f6d97d7585c.yaml b/releasenotes/notes/add-use-dumb-init-config-option-26b47f6d97d7585c.yaml
new file mode 100644
index 000000000..cf10b3f43
--- /dev/null
+++ b/releasenotes/notes/add-use-dumb-init-config-option-26b47f6d97d7585c.yaml
@@ -0,0 +1,15 @@
+---
+features:
+ - |
+ Adds configration option ``use_dumb_init``, with default value of ``True``.
+ This can be use to avoid the of ``dumb-init`` as the container entrypoint,
+ using ``kolla_start`` directly instead. This option can also be disabled
+ via the ``kolla-build --nouse-dumb-init`` CLI argument.
+upgrade:
+ - |
+ Moves the ``ENTRYPOINT`` statement outside of the
+ ``dumb_init_installation`` Jinja block in the base image. Overriding this
+ block to install ``dumb-init`` by another method no longer requires
+ repeating the ``ENTRYPOINT`` statement. Users wishing to avoid the use of
+ ``dumb-init`` altogether can now use the ``use_dumb_init`` configuration
+ option.