homelab/roles/docker/tasks/swarm_worker.yaml

15 lines
687 B
YAML

# yaml-language-server: $schema=https://raw.githubusercontent.com/ansible/ansible-lint/refs/heads/main/src/ansiblelint/schemas/tasks.json
---
- name: Join node to swarm
vars:
key: "{{ groups[managers_group] | map('extract', hostvars, ['swarm_info', 'swarm_facts', 'JoinTokens', 'Worker']) | list | first }}"
community.docker.docker_swarm:
state: join
join_token: "{{ key }}"
remote_addrs: "{{ groups[managers_group] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) }}"
- name: Set node labels
delegate_to: "{{ groups[managers_group] | first }}"
community.docker.docker_node:
hostname: "{{ ansible_hostname }}"
labels: "{{ node_labels }}"