blob: 380b3a9423577a7a6720eb644de8165e9c3cb21a [file] [log] [blame]
Filip Pytlounab52ede2016-11-02 16:59:49 +01001{% from "docker/map.jinja" import client with context %}
2
3include:
4 - docker.client
5
6{%- for name, service in client.get('service', {}).iteritems() %}
7{%- if service.get('enabled', True) %}
8
9docker_service_{{ name }}_create:
10 cmd.run:
11 - name: >
12 docker service create
13 --name {{ name }}
14 --with-registry-auth
15 {%- for env, value in service.get('environment', {}).iteritems() %} -e {{ env }}="{{ value }}"{%- endfor %}
16 {%- for port in service.get('ports', []) %} -p {{ port }}{%- endfor %}
17 {%- for label, value in service.get('label', {}).iteritems() %} -l {{ label }}="{{ value }}"{%- endfor %}
18 {%- if service.network is defined %} --network {{ service.network }}{%- endif %}
19 {%- if service.replicas is defined %} --replicas {{ service.replicas }}{%- endif %}
20 {%- if service.user is defined %} --user {{ service.user }}{%- endif %}
21 {%- if service.workdir is defined %} --workdir {{ service.workdir }}{%- endif %}
22 {%- if service.mode is defined %} --mode {{ service.mode }}{%- endif %}
23 {%- if service.endpoint is defined %} --endpoint-mode {{ service.endpoint }}{%- endif %}
24 {%- if service.constraint is defined %} --constraint {{ service.constraint }}{%- endif %}
25 {%- for name, volume in service.get('volume', {}).iteritems() %} --mount {% for key, value in volume.iteritems() %}{{ key }}={{ value }}{% if not loop.last %},{% endif %}{% endfor %}{%- endfor %}
26 {%- for param, value in service.get('restart', {}).iteritems() %} --restart-{{ param }} {{ value }}{%- endfor %}
27 {%- for param, value in service.get('update', {}).iteritems() %} --update-{{ param }} {{ value }}{%- endfor %}
28 {%- for param, value in service.get('log', {}).iteritems() %} --log-{{ param }} {{ value }}{%- endfor %}
29 {%- for param, value in service.get('limit', {}).iteritems() %} --limit-{{ param }} {{ value }}{%- endfor %}
30 {%- for param, value in service.get('reserve', {}).iteritems() %} --reserve-{{ param }} {{ value }}{%- endfor %}
31 {{ service.image }}
Filip Pytloun5fb8cd12016-11-14 13:33:40 +010032 {%- if service.command is defined %} {{ service.command }}{%- endif %}
33 {%- for arg in service.get('args', []) %} {{ arg }}{%- endfor %}
Filip Pytlounab52ede2016-11-02 16:59:49 +010034 - unless: "docker service ls | grep {{ name }}"
35
36{%- if service.get('update_service', False) %}
37docker_service_{{ name }}_update:
38 cmd.run:
39 - name: >
40 docker service update
41 --name {{ name }}
42 --with-registry-auth
43 {%- if service.replicas is defined %} --replicas {{ service.replicas }}{%- endif %}
44 {%- if service.user is defined %} --user {{ service.user }}{%- endif %}
45 {%- if service.workdir is defined %} --workdir {{ service.workdir }}{%- endif %}
46 {%- if service.endpoint is defined %} --endpoint-mode {{ service.endpoint }}{%- endif %}
47 {%- for param, value in service.get('restart', {}).iteritems() %} --restart-{{ param }} {{ value }}{%- endfor %}
48 {%- for param, value in service.get('update', {}).iteritems() %} --update-{{ param }} {{ value }}{%- endfor %}
49 {%- for param, value in service.get('log', {}).iteritems() %} --log-{{ param }} {{ value }}{%- endfor %}
50 {%- for param, value in service.get('limit', {}).iteritems() %} --limit-{{ param }} {{ value }}{%- endfor %}
51 {%- for param, value in service.get('reserve', {}).iteritems() %} --reserve-{{ param }} {{ value }}{%- endfor %}
52 --image {{ service.image }}
53 {{ name }}
54 - require:
55 - cmd: docker_service_{{ name }}_create
56{%- endif %}
57
58{%- else %}
59
60docker_service_{{ name }}_rm:
61 cmd.run:
62 - name: docker service rm {{ name }}
63 - onlyif: "docker service ls | grep {{ name }}"
64
65{%- endif %}
66{%- endfor %}