diff options
| author | Zuul <zuul@review.openstack.org> | 2019-04-13 14:57:40 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2019-04-13 14:57:40 +0000 |
| commit | 32693b83385c3b76ba0edf7e426bb110c6c335ae (patch) | |
| tree | c687b63e3e37128de0e72695c7d4f2a0563190f2 | |
| parent | 68b17a2bed7bf47a0fdc63c9e47354cc6c0300fa (diff) | |
| parent | fb4cb9efda5a522ba0d837047385b61275d09150 (diff) | |
| download | kolla-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.j2 | 6 | ||||
| -rw-r--r-- | docker/mariadb/Dockerfile.j2 | 5 | ||||
| -rwxr-xr-x | kolla/common/config.py | 2 | ||||
| -rwxr-xr-x | kolla/image/build.py | 2 | ||||
| -rw-r--r-- | releasenotes/notes/add-use-dumb-init-config-option-26b47f6d97d7585c.yaml | 15 |
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. |
