---
- name: manage networks
  community.docker.docker_network:
    name: '{{ item.name }}'
    driver: '{{ item.driver|default("bridge") }}'
    scope: swarm
    state: '{{ item.state|default("present") }}'
  loop: '{{ docker_networks }}'
  tags: docker

- name: manage services
  community.docker.docker_swarm_service:
    name: '{{ item.name }}'
    image: '{{ item.image }}'
    command: '{{ item.command|default([]) }}'
    args: '{{ item.args|default([]) }}'
    mounts: '{{ item.mounts|default([]) }}'
    networks: '{{ item.networks|default([]) }}'
    publish: '{{ item.publish|default([]) }}'
    replicas: '{{ item.replicas|default(1) }}'
    limits: '{{ item.limits|default({}) }}'
    env: '{{ item.env|default({}) }}'
    container_labels: '{{ item.labels|default({}) }}'
    state: present
  loop: '{{ docker_services }}'
  when: '"state" not in item or item.state != "absent"'
  no_log: false
  tags: docker

- name: remove services
  community.docker.docker_swarm_service:
    name: '{{ item.name }}'
    state: absent
  loop: '{{ docker_services }}'
  when: '"state" in item and item.state == "absent"'
  no_log: true
  tags: docker