ansible/test/integration/targets/docker_swarm_service/tasks/tests/placement.yml
Hannes Ljungberg 139abd0849 docker_swarm_service: Add option groups (#53213)
* Add logging option

* Add limits option

* Add reservations option

* Add restart_config option

* Add update_config option

* Add placement option and remove placement_preferences

* Yaml indentation

* Use correct PR number for change log

* Handle grouper fallbacks better

* Add removed_in_version to argument spec

* Fix broken suboption usage check

* Reduce duplicate deprecated option tests

* Clearer deprecation documentation

* Compare bytes with MiB

* Use correct test service suffix
2019-03-05 16:07:27 +00:00

152 lines
3.9 KiB
YAML

---
- name: Registering service name
set_fact:
service_name: "{{ name_prefix ~ '-placement' }}"
- name: Registering service name
set_fact:
service_names: "{{ service_names }} + [service_name]"
####################################################################
## placement.preferences ###########################################
####################################################################
- name: placement.preferences
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
preferences:
- spread: "node.labels.test"
register: placement_preferences_1
- name: placement.preferences (idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
preferences:
- spread: "node.labels.test"
register: placement_preferences_2
- name: placement.preferences (change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
preferences:
- spread: "node.labels.test2"
register: placement_preferences_3
- name: placement.preferences (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
preferences: []
register: placement_preferences_4
- name: placement.preferences (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
preferences: []
register: placement_preferences_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- placement_preferences_1 is changed
- placement_preferences_2 is not changed
- placement_preferences_3 is changed
- placement_preferences_4 is changed
- placement_preferences_5 is not changed
####################################################################
## placement.constraints #####################################################
####################################################################
- name: placement.constraints
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
constraints:
- "node.role == manager"
register: constraints_1
- name: placement.constraints (idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
constraints:
- "node.role == manager"
register: constraints_2
- name: constraints (idempotency, old name)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
constraints:
- "node.role == manager"
register: constraints_2b
- name: placement.constraints (change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
constraints:
- "node.role == worker"
register: constraints_3
- name: placement.constraints (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
constraints: []
register: constraints_4
- name: placement.constraints (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement:
constraints: []
register: constraints_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
state: absent
diff: no
- assert:
that:
- constraints_1 is changed
- constraints_2 is not changed
- constraints_2b is not changed
- constraints_3 is changed
- constraints_4 is changed
- constraints_5 is not changed