mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-12-15 11:32:05 +00:00
118 lines
3.3 KiB
YAML
118 lines
3.3 KiB
YAML
---
|
|
# Copyright (c) Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
- block:
|
|
- name: Make sure we're not already using Docker swarm
|
|
community.docker.docker_swarm:
|
|
state: absent
|
|
force: true
|
|
|
|
- name: Create a Swarm cluster
|
|
community.docker.docker_swarm:
|
|
state: present
|
|
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
|
|
|
- name: install docker_stack python requirements
|
|
ansible.builtin.pip:
|
|
name: jsondiff,pyyaml
|
|
|
|
- name: Create a stack without name
|
|
register: output
|
|
community.docker.docker_stack: # noqa: args[module]
|
|
state: present
|
|
ignore_errors: true
|
|
|
|
- name: assert failure when name not set
|
|
ansible.builtin.assert:
|
|
that:
|
|
- output is failed
|
|
- 'output.msg == "missing required arguments: name"'
|
|
|
|
- name: Create a stack without compose
|
|
register: output
|
|
community.docker.docker_stack:
|
|
name: test_stack
|
|
ignore_errors: true
|
|
|
|
- name: assert failure when compose not set
|
|
ansible.builtin.assert:
|
|
that:
|
|
- output is failed
|
|
- 'output.msg == "compose parameter must be a list containing at least one element"'
|
|
|
|
- name: Ensure stack is absent
|
|
register: output
|
|
community.docker.docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: Template compose files
|
|
ansible.builtin.template:
|
|
src: "{{ item }}"
|
|
dest: "{{ remote_tmp_dir }}/"
|
|
with_items:
|
|
- stack_compose_base.yml
|
|
- stack_compose_overrides.yml
|
|
|
|
- name: Create stack with compose file
|
|
register: output
|
|
community.docker.docker_stack:
|
|
state: present
|
|
name: test_stack
|
|
compose:
|
|
- "{{ remote_tmp_dir }}/stack_compose_base.yml"
|
|
|
|
- name: assert test_stack changed on stack creation with compose file
|
|
ansible.builtin.assert:
|
|
that:
|
|
- output is changed
|
|
|
|
# FIXME: updating the stack prevents leaving the swarm on Shippable
|
|
# - name: Update stack with YAML
|
|
# register: output
|
|
# docker_stack:
|
|
# state: present
|
|
# name: test_stack
|
|
# compose:
|
|
# - "{{ stack_compose_base }}"
|
|
# - "{{ stack_compose_overrides }}"
|
|
#
|
|
# - name: assert test_stack correctly changed on update with yaml
|
|
# assert:
|
|
# that:
|
|
# - output is changed
|
|
# - output.stack_spec_diff == stack_update_expected_diff
|
|
|
|
- name: Delete stack
|
|
register: output
|
|
community.docker.docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: assert delete of existing stack returns changed
|
|
ansible.builtin.assert:
|
|
that:
|
|
- output is changed
|
|
|
|
- name: Delete stack again
|
|
register: output
|
|
community.docker.docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: assert state=absent idempotency
|
|
ansible.builtin.assert:
|
|
that:
|
|
- output is not changed
|
|
|
|
always:
|
|
- name: Remove a Swarm cluster
|
|
community.docker.docker_swarm:
|
|
state: absent
|
|
force: true
|