mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-03-26 15:38:11 +00:00
* Move licenses to LICENSES/, use SPDX-License-Identifier, mention all licenses in galaxy.yml. * ignore.txt lines cannot be empty or contain only a comment. * Cleanup. * This particular __init__.py seems to be crucial. * Try extra newline. * Markdown comments are a real mess. I hope this won't break Galaxy... * More licenses. * Add sanity test. * Skip some files, lint. * Make sure there is a copyright line everywhere. * Also check for copyright line in sanity tests. * Remove colon after 'Copyright'. * Normalize lint script. * Avoid colon after 'Copyright' in lint script. * Improve license checker. * Update README.md Co-authored-by: Maxwell G <9920591+gotmax23@users.noreply.github.com> * Remove superfluous space. * Referencing target instead of symlink Co-authored-by: Maxwell G <9920591+gotmax23@users.noreply.github.com>
262 lines
7.6 KiB
YAML
262 lines
7.6 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
|
|
|
|
- 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: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
preferences:
|
|
- spread: "node.labels.test"
|
|
register: placement_preferences_1
|
|
ignore_errors: yes
|
|
|
|
- name: placement.preferences (idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
preferences:
|
|
- spread: "node.labels.test"
|
|
register: placement_preferences_2
|
|
ignore_errors: yes
|
|
|
|
- name: placement.preferences (change)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
preferences:
|
|
- spread: "node.labels.test2"
|
|
register: placement_preferences_3
|
|
ignore_errors: yes
|
|
|
|
- name: placement.preferences (empty)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
preferences: []
|
|
register: placement_preferences_4
|
|
ignore_errors: yes
|
|
|
|
- name: placement.preferences (empty idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
preferences: []
|
|
register: placement_preferences_5
|
|
ignore_errors: yes
|
|
|
|
- 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
|
|
when: docker_api_version is version('1.27', '>=') and docker_py_version is version('2.4.0', '>=')
|
|
- assert:
|
|
that:
|
|
- placement_preferences_1 is failed
|
|
- "'Minimum version required' in placement_preferences_1.msg"
|
|
when: docker_api_version is version('1.27', '<') or docker_py_version is version('2.4.0', '<')
|
|
|
|
####################################################################
|
|
## placement.constraints #####################################################
|
|
####################################################################
|
|
|
|
- name: placement.constraints
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints:
|
|
- "node.role == manager"
|
|
register: constraints_1
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints:
|
|
- "node.role == manager"
|
|
register: constraints_2
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (change)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints:
|
|
- "node.role == worker"
|
|
register: constraints_3
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (add)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints:
|
|
- "node.role == worker"
|
|
- "node.label != non_existent_label"
|
|
register: constraints_4
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (order idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints:
|
|
- "node.label != non_existent_label"
|
|
- "node.role == worker"
|
|
register: constraints_5
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (empty)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints: []
|
|
register: constraints_6
|
|
ignore_errors: yes
|
|
|
|
- name: placement.constraints (empty idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
constraints: []
|
|
register: constraints_7
|
|
ignore_errors: yes
|
|
|
|
- name: cleanup
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
state: absent
|
|
diff: no
|
|
|
|
- assert:
|
|
that:
|
|
- constraints_1 is changed
|
|
- constraints_2 is not changed
|
|
- constraints_3 is changed
|
|
- constraints_4 is changed
|
|
- constraints_5 is not changed
|
|
- constraints_6 is changed
|
|
- constraints_7 is not changed
|
|
when: docker_api_version is version('1.27', '>=') and docker_py_version is version('2.4.0', '>=')
|
|
- assert:
|
|
that:
|
|
- constraints_1 is failed
|
|
- "'Minimum version required' in constraints_1.msg"
|
|
when: docker_api_version is version('1.27', '<') or docker_py_version is version('2.4.0', '<')
|
|
|
|
####################################################################
|
|
## placement.replicas_max_per_node #####################################################
|
|
####################################################################
|
|
|
|
- name: placement.replicas_max_per_node
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
replicas_max_per_node: 1
|
|
register: replicas_max_per_node_1
|
|
ignore_errors: yes
|
|
|
|
- name: placement.replicas_max_per_node (idempotency)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
replicas_max_per_node: 1
|
|
register: replicas_max_per_node_2
|
|
ignore_errors: yes
|
|
|
|
- name: placement.replicas_max_per_node (change)
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
image: "{{ docker_test_image_alpine }}"
|
|
resolve_image: no
|
|
command: '/bin/sh -v -c "sleep 10m"'
|
|
placement:
|
|
replicas_max_per_node: 2
|
|
register: replicas_max_per_node_3
|
|
ignore_errors: yes
|
|
|
|
|
|
- name: cleanup
|
|
docker_swarm_service:
|
|
name: "{{ service_name }}"
|
|
state: absent
|
|
diff: no
|
|
|
|
- assert:
|
|
that:
|
|
- replicas_max_per_node_1 is changed
|
|
- replicas_max_per_node_2 is not changed
|
|
- replicas_max_per_node_3 is changed
|
|
when: docker_api_version is version('1.40', '>=') and docker_py_version is version('4.4.3', '>=')
|
|
- assert:
|
|
that:
|
|
- replicas_max_per_node_1 is failed
|
|
- "'Minimum version required' in replicas_max_per_node_1.msg"
|
|
when: docker_api_version is version('1.40', '<') or docker_py_version is version('4.4.3', '<')
|