Rework systemd service units
* Add for docker system units: ExecReload=/bin/kill -s HUP $MAINPID Delegate=yes KillMode=process. * Add missed DOCKER_OPTIONS for calico/weave docker systemd unit. * Change Requires= to a less strict and non-faily Wants=, add missing Wants= for After=. * Align wants/after in a wat if Wants=foo, After= has foo as well. * Make wants/after docker.service to ask for the docker.socket as well. * Move "docker rm -f" commands from ExecStartPre= to ExecStopPost=. hooks to ensure non-destructive start attempts issued by Wants=. Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
This commit is contained in:
parent
4662b41de6
commit
2af71f31b4
10 changed files with 37 additions and 26 deletions
|
@ -1,7 +1,7 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=etcd docker wrapper
|
Description=etcd docker wrapper
|
||||||
Wants=docker.socket
|
Wants=docker.service docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=root
|
User=root
|
||||||
|
@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always
|
||||||
{% if etcd_after_v3 %}
|
{% if etcd_after_v3 %}
|
||||||
{{ etcd_container_bin_dir }}etcd
|
{{ etcd_container_bin_dir }}etcd
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }}
|
ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_member_name | default("etcd-proxy") }}
|
||||||
ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }}
|
ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_member_name | default("etcd-proxy") }}
|
||||||
ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }}
|
ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_member_name | default("etcd-proxy") }}
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=etcd-proxy docker wrapper
|
Description=etcd-proxy docker wrapper
|
||||||
Wants=docker.socket
|
Wants=docker.service docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=root
|
User=root
|
||||||
|
@ -18,7 +18,7 @@ ExecStart={{ docker_bin_dir | default("/usr/bin") }}/docker run --restart=always
|
||||||
{% if etcd_after_v3 %}
|
{% if etcd_after_v3 %}
|
||||||
{{ etcd_container_bin_dir }}etcd
|
{{ etcd_container_bin_dir }}etcd
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ExecStartPre=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
ExecStopPost=-{{ docker_bin_dir | default("/usr/bin") }}/docker rm -f {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
||||||
ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
ExecReload={{ docker_bin_dir | default("/usr/bin") }}/docker restart {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
||||||
ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
ExecStop={{ docker_bin_dir | default("/usr/bin") }}/docker stop {{ etcd_proxy_member_name | default("etcd-proxy") }}
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
|
@ -2,9 +2,11 @@
|
||||||
Description=Kubernetes Kubelet Server
|
Description=Kubernetes Kubelet Server
|
||||||
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
||||||
{% if kube_network_plugin is defined and kube_network_plugin == "calico" %}
|
{% if kube_network_plugin is defined and kube_network_plugin == "calico" %}
|
||||||
After=docker.service calico-node.service
|
After=docker.service docker.socket calico-node.service
|
||||||
|
Wants=docker.service docker.socket calico-node.service
|
||||||
{% else %}
|
{% else %}
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
Wants=docker.service docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -22,7 +24,7 @@ ExecStart={{ bin_dir }}/kubelet \
|
||||||
$KUBELET_REGISTER_NODE \
|
$KUBELET_REGISTER_NODE \
|
||||||
$KUBELET_NETWORK_PLUGIN \
|
$KUBELET_NETWORK_PLUGIN \
|
||||||
$KUBELET_CLOUDPROVIDER
|
$KUBELET_CLOUDPROVIDER
|
||||||
ExecStartPre=-/usr/bin/docker rm -f kubelet
|
ExecStopPost=-/usr/bin/docker rm -f kubelet
|
||||||
ExecReload=/usr/bin/docker restart kubelet
|
ExecReload=/usr/bin/docker restart kubelet
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10s
|
RestartSec=10s
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Calico per-node agent
|
Description=Calico per-node agent
|
||||||
Documentation=https://github.com/projectcalico/calico-docker
|
Documentation=https://github.com/projectcalico/calico-docker
|
||||||
After=docker.service etcd-proxy.service
|
After=docker.service docker.socket etcd-proxy.service
|
||||||
Wants=docker.socket
|
Wants=docker.service docker.socket etcd-proxy.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=root
|
User=root
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
Description=Docker Application Container Engine
|
Description=Docker Application Container Engine
|
||||||
Documentation=http://docs.docker.com
|
Documentation=http://docs.docker.com
|
||||||
{% if ansible_os_family == "RedHat" %}
|
{% if ansible_os_family == "RedHat" %}
|
||||||
After=network.target
|
After=network.target docker-storage-setup.service
|
||||||
Wants=docker-storage-setup.service
|
Wants=docker-storage-setup.service
|
||||||
{% elif ansible_os_family == "Debian" %}
|
{% elif ansible_os_family == "Debian" %}
|
||||||
After=network.target docker.socket
|
After=network.target docker.socket
|
||||||
Requires=docker.socket
|
Wants=docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -20,6 +20,9 @@ EnvironmentFile=-/etc/sysconfig/docker-storage
|
||||||
EnvironmentFile=-/etc/default/docker
|
EnvironmentFile=-/etc/default/docker
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Environment=GOTRACEBACK=crash
|
Environment=GOTRACEBACK=crash
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
Delegate=yes
|
||||||
|
KillMode=process
|
||||||
ExecStart=/usr/bin/docker daemon \
|
ExecStart=/usr/bin/docker daemon \
|
||||||
$OPTIONS \
|
$OPTIONS \
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
$DOCKER_STORAGE_OPTIONS \
|
||||||
|
|
|
@ -2,22 +2,26 @@
|
||||||
Description=Docker Application Container Engine
|
Description=Docker Application Container Engine
|
||||||
Documentation=http://docs.docker.com
|
Documentation=http://docs.docker.com
|
||||||
{% if ansible_os_family == "RedHat" %}
|
{% if ansible_os_family == "RedHat" %}
|
||||||
After=network.target
|
After=network.target docker-storage-setup.service
|
||||||
Wants=docker-storage-setup.service
|
Wants=docker-storage-setup.service
|
||||||
{% elif ansible_os_family == "Debian" %}
|
{% elif ansible_os_family == "Debian" %}
|
||||||
After=network.target docker.socket
|
After=network.target docker.socket
|
||||||
Requires=docker.socket
|
Wants=docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
EnvironmentFile=-/etc/default/docker
|
EnvironmentFile=-/etc/default/docker
|
||||||
Environment=GOTRACEBACK=crash
|
Environment=GOTRACEBACK=crash
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
Delegate=yes
|
||||||
|
KillMode=process
|
||||||
ExecStart=/usr/bin/docker daemon \
|
ExecStart=/usr/bin/docker daemon \
|
||||||
$OPTIONS \
|
$OPTIONS \
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
$DOCKER_STORAGE_OPTIONS \
|
||||||
$DOCKER_NETWORK_OPTIONS \
|
$DOCKER_NETWORK_OPTIONS \
|
||||||
$INSECURE_REGISTRY
|
$INSECURE_REGISTRY \
|
||||||
|
$DOCKER_OPTS
|
||||||
LimitNOFILE=1048576
|
LimitNOFILE=1048576
|
||||||
LimitNPROC=1048576
|
LimitNPROC=1048576
|
||||||
LimitCORE=infinity
|
LimitCORE=infinity
|
||||||
|
|
|
@ -6,18 +6,22 @@ After=network.target
|
||||||
Wants=docker-storage-setup.service
|
Wants=docker-storage-setup.service
|
||||||
{% elif ansible_os_family == "Debian" %}
|
{% elif ansible_os_family == "Debian" %}
|
||||||
After=network.target docker.socket
|
After=network.target docker.socket
|
||||||
Requires=docker.socket
|
Wants=docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
EnvironmentFile=-/etc/default/docker
|
EnvironmentFile=-/etc/default/docker
|
||||||
Environment=GOTRACEBACK=crash
|
Environment=GOTRACEBACK=crash
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
Delegate=yes
|
||||||
|
KillMode=process
|
||||||
ExecStart=/usr/bin/docker daemon \
|
ExecStart=/usr/bin/docker daemon \
|
||||||
$OPTIONS \
|
$OPTIONS \
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
$DOCKER_STORAGE_OPTIONS \
|
||||||
$DOCKER_NETWORK_OPTIONS \
|
$DOCKER_NETWORK_OPTIONS \
|
||||||
$INSECURE_REGISTRY
|
$INSECURE_REGISTRY \
|
||||||
|
$DOCKER_OPTS
|
||||||
LimitNOFILE=1048576
|
LimitNOFILE=1048576
|
||||||
LimitNPROC=1048576
|
LimitNPROC=1048576
|
||||||
LimitCORE=infinity
|
LimitCORE=infinity
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Weave Network
|
Description=Weave Network
|
||||||
Documentation=http://docs.weave.works/weave/latest_release/
|
Documentation=http://docs.weave.works/weave/latest_release/
|
||||||
Requires=docker.service
|
Wants=docker.service docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
EnvironmentFile=-/etc/weave.env
|
EnvironmentFile=-/etc/weave.env
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Documentation=http://docs.weave.works/
|
Documentation=http://docs.weave.works/
|
||||||
Requires=docker.service
|
Wants=docker.service docker.socket weave.service
|
||||||
Requires=weave.service
|
After=docker.service docker.socket weave.service
|
||||||
After=weave.service
|
|
||||||
After=docker.service
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Weave proxy for Docker API
|
Description=Weave proxy for Docker API
|
||||||
Documentation=http://docs.weave.works/
|
Documentation=http://docs.weave.works/
|
||||||
Requires=docker.service
|
Wants=docker.service docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
EnvironmentFile=-/etc/weave.%H.env
|
EnvironmentFile=-/etc/weave.%H.env
|
||||||
|
|
Loading…
Reference in a new issue