-
Notifications
You must be signed in to change notification settings - Fork 149
/
Copy pathsetup-swarm-labels.yml
32 lines (29 loc) · 1.03 KB
/
setup-swarm-labels.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
---
- name: Get list of labels.
command: >-
docker inspect
--format {% raw %}'{{ range $key, $value := .Spec.Labels }}{{ printf "%s\n" $key }}{{ end }}'{% endraw %}
{{ ansible_hostname|lower }}
register: docker_swarm_labels
changed_when: false
delegate_to: "{{ groups['docker_swarm_manager'][0] }}"
delegate_facts: true
tags:
- swarm_labels
- name: Remove labels from swarm node.
command: docker node update --label-rm {{ item }} {{ ansible_hostname|lower }}
with_items: "{{ docker_swarm_labels.stdout_lines }}"
when: item not in swarm_labels
delegate_to: "{{ groups['docker_swarm_manager'][0] }}"
delegate_facts: true
tags:
- swarm_labels
- name: Assign labels to swarm nodes if any.
command: docker node update --label-add {{ item }}=true {{ ansible_hostname|lower }}
when: item not in docker_swarm_labels.stdout_lines
with_items:
- "{{ swarm_labels | default([]) }}"
delegate_to: "{{ groups['docker_swarm_manager'][0] }}"
delegate_facts: true
tags:
- swarm_labels