blob: f436349abc37ee5ddb2895a164bdece5bd1cc5a7 [file] [log] [blame]
Ales Komarek16d97032014-06-14 13:31:57 +02001{% from "docker/map.jinja" import host with context %}
Martin Polreich48ae3e12017-04-13 10:53:32 +02002
Petr Michalece2e889c2018-07-11 10:13:25 +02003{%- if host.get('enabled', False) %}
Ales Komarek16d97032014-06-14 13:31:57 +02004
Ales Komarekad7fffa2014-06-15 08:47:01 +02005docker_packages:
marco1f5db282016-07-19 22:01:32 +02006 pkg.installed:
Ales Komarekad7fffa2014-06-15 08:47:01 +02007 - pkgs: {{ host.pkgs }}
Ales Komarek16d97032014-06-14 13:31:57 +02008
Martin Polreich48ae3e12017-04-13 10:53:32 +02009{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
10
marco7c1333c2016-04-11 12:12:45 +020011network.ipv4.ip_forward:
Jakub Pavlikd97f4a82015-12-02 16:06:25 +010012 sysctl.present:
marco86561582016-04-11 12:15:09 +020013 - name: net.ipv4.ip_forward
Jakub Pavlikd97f4a82015-12-02 16:06:25 +010014 - value: 1
15
Martin Polreich48ae3e12017-04-13 10:53:32 +020016{%- endif %}
17
Jakub Pavlikd97f4a82015-12-02 16:06:25 +010018{%- if grains.os == 'Ubuntu' %}
19
20/etc/default/docker:
21 file.managed:
22 - source: salt://docker/files/default
23 - template: jinja
24 - require:
25 - pkg: docker_packages
26 - watch_in:
27 - service: docker_service
28
29{%- endif %}
30
Filip Pytloun972294d2016-09-15 17:52:32 +020031/etc/docker/daemon.json:
32 file.managed:
33 - source: salt://docker/files/daemon.json
34 - template: jinja
Martin Polreich48ae3e12017-04-13 10:53:32 +020035 - makedirs: True
Filip Pytloun972294d2016-09-15 17:52:32 +020036 - require:
37 - pkg: docker_packages
38 - watch_in:
39 - service: docker_service
40
Consatntine Kalinovskiy3a319312017-11-02 21:28:08 +020041{%- if host.get('proxy', {}).get('enabled', False) %}
Tomáš Kukrál19a39602017-08-27 22:21:47 +020042{%- if host.proxy.get('http') or host.proxy.get('https') or host.proxy.get('no_proxy') %}
43
44/etc/systemd/system/docker.service.d/http-proxy.conf:
45 file.managed:
46 - source: salt://docker/files/http-proxy.conf
47 - template: jinja
48 - makedirs: True
49 - require_in:
50 - service: docker_service
Andrey6d305c22017-10-25 17:25:41 -050051 - watch_in:
52 - service: docker_service
Tomáš Kukrál19a39602017-08-27 22:21:47 +020053
54{% else %}
55
56/etc/systemd/system/docker.service.d/http-proxy.conf:
57 file.absent
58
59{%- endif %}
60
61systemd_reload_due_proxy:
62 module.run:
63 - name: service.systemctl_reload
64 - onchanges:
65 - file: /etc/systemd/system/docker.service.d/http-proxy.conf
66
67{%- endif %}
68
69
Ales Komarekad7fffa2014-06-15 08:47:01 +020070docker_service:
71 service.running:
72 - name: {{ host.service }}
Filip Pytloun9d0e8df2016-07-13 23:22:20 +020073 - enable: true
Martin Polreich36e842d2017-06-08 14:12:53 +020074 {%- if grains.get('noservices') %}
75 - onlyif: /bin/false
76 {%- endif %}
Ales Komarekad7fffa2014-06-15 08:47:01 +020077 - require:
78 - pkg: docker_packages
79
marco85b72a62016-07-07 13:08:33 +020080{%- if host.registry is defined %}
81
82{%- for name,registry in host.registry.iteritems() %}
83
Filip Pytlounffc82df2017-12-03 15:35:54 +010084docker_{{ registry.get('address', name) }}_login:
marco85b72a62016-07-07 13:08:33 +020085 cmd.run:
Filip Pytlounffc82df2017-12-03 15:35:54 +010086 - name: 'docker login -u {{ registry.user }} -p {{ registry.password }}{% if registry.get('address') %} {{ registry.address }}{% endif %}'
87 - user: {{ registry.get('system_user', 'root') }}
88 - unless: grep {{ registry.address|default('https://index.docker.io/v1/') }} {{ salt['user.info'](registry.get('system_user', 'root')).home }}/.docker/config.json
marco85b72a62016-07-07 13:08:33 +020089
90{%- endfor %}
91
92{%- endif %}
Michael Kutý17649402016-03-19 23:57:43 +010093
Filip Pytloun9d0e8df2016-07-13 23:22:20 +020094{%- endif %}