54c3d1c24e
* add docker_stack module + tests
99 lines
2.1 KiB
YAML
99 lines
2.1 KiB
YAML
- name: Create a Swarm cluster
|
|
docker_swarm:
|
|
state: present
|
|
advertise_addr: "{{ansible_default_ipv4.address}}"
|
|
|
|
- name: install docker_swarm python requirements
|
|
pip:
|
|
name: jsondiff,pyyaml
|
|
|
|
- name: Create a stack without name
|
|
register: output
|
|
docker_stack:
|
|
state: present
|
|
ignore_errors: yes
|
|
|
|
- name: assert failure when name not set
|
|
assert:
|
|
that:
|
|
- output is failed
|
|
- 'output.msg == "missing required arguments: name"'
|
|
|
|
- name: Create a stack without compose
|
|
register: output
|
|
docker_stack:
|
|
name: test_stack
|
|
ignore_errors: yes
|
|
|
|
- name: assert failure when compose not set
|
|
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
|
|
docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: Copy compose files
|
|
copy:
|
|
src: "{{item}}"
|
|
dest: "{{output_dir}}/"
|
|
with_items:
|
|
- stack_compose_base.yml
|
|
- stack_compose_overrides.yml
|
|
|
|
- name: Create stack with compose file
|
|
register: output
|
|
docker_stack:
|
|
state: present
|
|
name: test_stack
|
|
compose:
|
|
- "{{output_dir}}/stack_compose_base.yml"
|
|
|
|
- name: assert test_stack changed on stack creation with compose file
|
|
assert:
|
|
that:
|
|
- output is changed
|
|
|
|
- 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.docker_stack_spec_diff == stack_update_expected_diff
|
|
|
|
- name: Delete stack
|
|
register: output
|
|
docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: assert delete of existing stack returns changed
|
|
assert:
|
|
that:
|
|
- output is changed
|
|
|
|
- name: Delete stack again
|
|
register: output
|
|
docker_stack:
|
|
state: absent
|
|
name: test_stack
|
|
absent_retries: 30
|
|
|
|
- name: assert state=absent idempotency
|
|
assert:
|
|
that:
|
|
- output is not changed
|