Salt: support systemd (don't assume Redhat <=> systemd)
Also work around problems with Salt & systemd services, in particular that Salt doesn't issue a daemon-reload.
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
DOCKER_OPTS=""
|
||||
{% if grains.docker_opts is defined and grains.docker_opts %}
|
||||
DOCKER_OPTS="${DOCKER_OPTS} {{grains.docker_opts}}"
|
||||
{% endif %}
|
||||
DOCKER_OPTS="${DOCKER_OPTS} --bridge=cbr0 --iptables=false --ip-masq=false"
|
||||
{% set grains_opts = grains.get('docker_opts', '') -%}
|
||||
DOCKER_OPTS="{{grains_opts}} --bridge=cbr0 --iptables=false --ip-masq=false"
|
||||
DOCKER_NOFILE=1000000
|
||||
|
20
cluster/saltbase/salt/docker/docker.service
Normal file
20
cluster/saltbase/salt/docker/docker.service
Normal file
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Docker Application Container Engine
|
||||
Documentation=http://docs.docker.com
|
||||
After=network.target docker.socket
|
||||
Requires=docker.socket
|
||||
|
||||
[Service]
|
||||
EnvironmentFile={{ environment_file }}
|
||||
ExecStart=/usr/bin/docker -d -H fd:// "$DOCKER_OPTS"
|
||||
MountFlags=slave
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=1048576
|
||||
LimitCORE=infinity
|
||||
Restart=always
|
||||
RestartSec=2s
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% if pillar.get('is_systemd') %}
|
||||
{% set environment_file = '/etc/sysconfig/docker' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/docker' %}
|
||||
@@ -116,6 +116,36 @@ lxc-docker-{{ override_docker_ver }}:
|
||||
- file: /var/cache/docker-install/{{ override_deb }}
|
||||
{% endif %}
|
||||
|
||||
# Default docker systemd unit file doesn't use an EnvironmentFile; replace it with one that does.
|
||||
{% if pillar.get('is_systemd') %}
|
||||
|
||||
{{ pillar.get('systemd_system_path') }}/docker.service:
|
||||
file.managed:
|
||||
- source: salt://docker/docker.service
|
||||
- template: jinja
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 644
|
||||
- defaults:
|
||||
environment_file: {{ environment_file }}
|
||||
|
||||
# The docker service.running block below doesn't work reliably
|
||||
# Instead we run our script which e.g. does a systemd daemon-reload
|
||||
# But we keep the service block below, so it can be used by dependencies
|
||||
# TODO: Fix this
|
||||
fix-service-docker:
|
||||
cmd.wait:
|
||||
- name: /opt/kubernetes/helpers/services bounce docker
|
||||
- watch:
|
||||
- file: {{ pillar.get('systemd_system_path') }}/docker.service
|
||||
- file: {{ environment_file }}
|
||||
{% if override_docker_ver != '' %}
|
||||
- require:
|
||||
- pkg: lxc-docker-{{ override_docker_ver }}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
docker:
|
||||
service.running:
|
||||
- enable: True
|
||||
|
Reference in New Issue
Block a user