2015-06-29 18:17:17 +00:00
|
|
|
{% if pillar.get('is_systemd') %}
|
2014-07-14 17:50:04 +00:00
|
|
|
{% set environment_file = '/etc/sysconfig/docker' %}
|
|
|
|
{% else %}
|
|
|
|
{% set environment_file = '/etc/default/docker' %}
|
|
|
|
{% endif %}
|
|
|
|
|
2014-08-07 20:02:52 +00:00
|
|
|
bridge-utils:
|
|
|
|
pkg.installed
|
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
{% if grains.os_family == 'RedHat' %}
|
2015-06-02 01:19:38 +00:00
|
|
|
|
|
|
|
{{ environment_file }}:
|
|
|
|
file.managed:
|
|
|
|
- source: salt://docker/default
|
|
|
|
- template: jinja
|
|
|
|
- user: root
|
|
|
|
- group: root
|
|
|
|
- mode: 644
|
|
|
|
- makedirs: true
|
|
|
|
|
2015-07-01 04:36:33 +00:00
|
|
|
{% if grains.os == 'Fedora' and grains.osrelease_info[0] >= 22 %}
|
|
|
|
|
|
|
|
docker:
|
|
|
|
pkg:
|
|
|
|
- installed
|
|
|
|
service.running:
|
|
|
|
- enable: True
|
|
|
|
- require:
|
|
|
|
- pkg: docker
|
|
|
|
- watch:
|
|
|
|
- file: {{ environment_file }}
|
|
|
|
- pkg: docker
|
|
|
|
|
|
|
|
{% else %}
|
|
|
|
|
|
|
|
docker-io:
|
|
|
|
pkg:
|
|
|
|
- installed
|
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
docker:
|
|
|
|
service.running:
|
|
|
|
- enable: True
|
2014-06-06 23:40:48 +00:00
|
|
|
- require:
|
2014-10-31 17:22:24 +00:00
|
|
|
- pkg: docker-io
|
2015-06-02 01:19:38 +00:00
|
|
|
- watch:
|
|
|
|
- file: {{ environment_file }}
|
|
|
|
- pkg: docker-io
|
2014-06-06 23:40:48 +00:00
|
|
|
|
2015-07-01 04:36:33 +00:00
|
|
|
{% endif %}
|
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
{% else %}
|
|
|
|
|
|
|
|
{% if grains.cloud is defined
|
|
|
|
and grains.cloud == 'gce' %}
|
2014-06-06 23:40:48 +00:00
|
|
|
# The default GCE images have ip_forwarding explicitly set to 0.
|
|
|
|
# Here we take care of commenting that out.
|
|
|
|
/etc/sysctl.d/11-gce-network-security.conf:
|
|
|
|
file.replace:
|
|
|
|
- pattern: '^net.ipv4.ip_forward=0'
|
|
|
|
- repl: '# net.ipv4.ip_forward=0'
|
2014-10-29 19:39:07 +00:00
|
|
|
{% endif %}
|
2014-06-06 23:40:48 +00:00
|
|
|
|
2015-06-26 14:56:36 +00:00
|
|
|
# Work around Salt #18089: https://github.com/saltstack/salt/issues/18089
|
|
|
|
/etc/sysctl.d/99-salt.conf:
|
|
|
|
file.touch
|
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
# TODO: This should really be based on network strategy instead of os_family
|
2014-06-06 23:40:48 +00:00
|
|
|
net.ipv4.ip_forward:
|
|
|
|
sysctl.present:
|
|
|
|
- value: 1
|
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
{{ environment_file }}:
|
|
|
|
file.managed:
|
|
|
|
- source: salt://docker/docker-defaults
|
|
|
|
- template: jinja
|
|
|
|
- user: root
|
|
|
|
- group: root
|
|
|
|
- mode: 644
|
|
|
|
- makedirs: true
|
2014-07-14 17:50:04 +00:00
|
|
|
|
2015-05-04 21:28:01 +00:00
|
|
|
# Docker is on the ContainerVM image by default. The following
|
|
|
|
# variables are provided for other cloud providers, and for testing and dire circumstances, to allow
|
|
|
|
# overriding the Docker version that's in a ContainerVM image.
|
|
|
|
#
|
|
|
|
# To change:
|
|
|
|
#
|
2015-09-08 18:32:30 +00:00
|
|
|
# 1. Find new deb name at:
|
|
|
|
# http://apt.dockerproject.org/repo/pool/main/d/docker-engine
|
2014-10-31 17:22:24 +00:00
|
|
|
# 2. Download based on that:
|
2015-09-08 18:32:30 +00:00
|
|
|
# curl -O http://apt.dockerproject.org/repo/pool/main/d/docker-engine/<deb>
|
2014-11-07 21:43:07 +00:00
|
|
|
# 3. Upload to GCS:
|
2014-10-31 17:22:24 +00:00
|
|
|
# gsutil cp <deb> gs://kubernetes-release/docker/<deb>
|
|
|
|
# 4. Make it world readable:
|
|
|
|
# gsutil acl ch -R -g all:R gs://kubernetes-release/docker/<deb>
|
|
|
|
# 5. Get a hash of the deb:
|
|
|
|
# shasum <deb>
|
2015-05-04 21:28:01 +00:00
|
|
|
# 6. Update override_deb, override_deb_sha1, override_docker_ver with new
|
|
|
|
# deb name, new hash and new version
|
2014-07-14 17:50:04 +00:00
|
|
|
|
2014-10-31 17:22:24 +00:00
|
|
|
{% set storage_base='https://storage.googleapis.com/kubernetes-release/docker/' %}
|
2014-07-14 17:50:04 +00:00
|
|
|
|
2015-09-08 18:32:30 +00:00
|
|
|
{% if grains.get('cloud', '') == 'gce'
|
|
|
|
and grains.get('os_family', '') == 'Debian'
|
|
|
|
and grains.get('oscodename', '') == 'wheezy' -%}
|
2015-11-03 23:36:12 +00:00
|
|
|
{% set docker_pkg_name='' %}
|
|
|
|
{% set override_deb='' %}
|
|
|
|
{% set override_deb_sha1='' %}
|
|
|
|
{% set override_docker_ver='' %}
|
2015-09-08 18:32:30 +00:00
|
|
|
{% else %}
|
|
|
|
{% set docker_pkg_name='lxc-docker-1.7.1' %}
|
|
|
|
{% set override_docker_ver='1.7.1' %}
|
2015-07-30 20:50:36 +00:00
|
|
|
{% set override_deb='lxc-docker-1.7.1_1.7.1_amd64.deb' %}
|
|
|
|
{% set override_deb_sha1='81abef31dd2c616883a61f85bfb294d743b1c889' %}
|
2015-09-08 18:32:30 +00:00
|
|
|
{% endif %}
|
2015-08-11 00:30:11 +00:00
|
|
|
|
2015-05-04 21:28:01 +00:00
|
|
|
{% if override_docker_ver != '' %}
|
2015-08-11 00:30:11 +00:00
|
|
|
purge-old-docker-package:
|
|
|
|
pkg.removed:
|
|
|
|
- pkgs:
|
|
|
|
- lxc-docker-1.6.2
|
|
|
|
|
2015-05-04 21:28:01 +00:00
|
|
|
/var/cache/docker-install/{{ override_deb }}:
|
2014-10-31 17:22:24 +00:00
|
|
|
file.managed:
|
2015-05-04 21:28:01 +00:00
|
|
|
- source: {{ storage_base }}{{ override_deb }}
|
|
|
|
- source_hash: sha1={{ override_deb_sha1 }}
|
2014-10-31 17:22:24 +00:00
|
|
|
- user: root
|
|
|
|
- group: root
|
|
|
|
- mode: 644
|
|
|
|
- makedirs: true
|
2014-07-14 17:50:04 +00:00
|
|
|
|
2014-11-25 22:39:49 +00:00
|
|
|
# Drop the license file into /usr/share so that everything is crystal clear.
|
2014-10-31 17:22:24 +00:00
|
|
|
/usr/share/doc/docker/apache.txt:
|
2014-06-06 23:40:48 +00:00
|
|
|
file.managed:
|
2014-10-31 17:22:24 +00:00
|
|
|
- source: {{ storage_base }}apache2.txt
|
|
|
|
- source_hash: sha1=2b8b815229aa8a61e483fb4ba0588b8b6c491890
|
2014-06-06 23:40:48 +00:00
|
|
|
- user: root
|
|
|
|
- group: root
|
|
|
|
- mode: 644
|
|
|
|
- makedirs: true
|
|
|
|
|
2015-09-08 18:32:30 +00:00
|
|
|
docker-upgrade:
|
2014-10-31 17:22:24 +00:00
|
|
|
pkg.installed:
|
|
|
|
- sources:
|
2015-09-08 18:32:30 +00:00
|
|
|
- {{ docker_pkg_name }}: /var/cache/docker-install/{{ override_deb }}
|
2015-06-26 14:57:35 +00:00
|
|
|
- require:
|
|
|
|
- file: /var/cache/docker-install/{{ override_deb }}
|
2015-07-08 03:31:48 +00:00
|
|
|
{% endif %} # end override_docker_ver != ''
|
2014-06-06 23:40:48 +00:00
|
|
|
|
2015-06-29 18:17:17 +00:00
|
|
|
# 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:
|
2015-09-08 18:32:30 +00:00
|
|
|
- pkg: {{ docker_pkg_name }}-{{ override_docker_ver }}
|
2015-06-29 18:17:17 +00:00
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
|
2014-09-03 16:45:30 +00:00
|
|
|
docker:
|
|
|
|
service.running:
|
2015-07-08 03:31:48 +00:00
|
|
|
# Starting Docker is racy on aws for some reason. To be honest, since Monit
|
|
|
|
# is managing Docker restart we should probably just delete this whole thing
|
|
|
|
# but the kubernetes components use salt 'require' to set up a dag, and that
|
|
|
|
# complicated and scary to unwind.
|
|
|
|
{% if grains.cloud is defined and grains.cloud == 'aws' %}
|
|
|
|
- enable: False
|
|
|
|
{% else %}
|
2014-09-03 16:45:30 +00:00
|
|
|
- enable: True
|
2015-07-08 03:31:48 +00:00
|
|
|
{% endif %}
|
2014-09-03 16:45:30 +00:00
|
|
|
- watch:
|
|
|
|
- file: {{ environment_file }}
|
2015-07-30 20:50:36 +00:00
|
|
|
{% if override_docker_ver != '' %}
|
2015-09-08 18:32:30 +00:00
|
|
|
- pkg: docker-upgrade
|
2015-07-30 20:50:36 +00:00
|
|
|
{% endif %}
|
2015-07-01 10:47:55 +00:00
|
|
|
{% if pillar.get('is_systemd') %}
|
|
|
|
- file: {{ pillar.get('systemd_system_path') }}/docker.service
|
|
|
|
{% endif %}
|
2015-05-04 21:28:01 +00:00
|
|
|
{% if override_docker_ver != '' %}
|
|
|
|
- require:
|
2015-09-08 18:32:30 +00:00
|
|
|
- pkg: docker-upgrade
|
2015-05-04 21:28:01 +00:00
|
|
|
{% endif %}
|
2015-07-08 03:31:48 +00:00
|
|
|
{% endif %} # end grains.os_family != 'RedHat'
|