mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-05-13 16:31:02 +00:00
Use FQCNs. (#1180)
This commit is contained in:
parent
be000755fc
commit
b24bce77b6
@ -8,13 +8,13 @@
|
|||||||
docker_test_image_alpine: quay.io/ansible/docker-test-containers:alpine3.8
|
docker_test_image_alpine: quay.io/ansible/docker-test-containers:alpine3.8
|
||||||
tasks:
|
tasks:
|
||||||
- name: Find all roles
|
- name: Find all roles
|
||||||
find:
|
ansible.builtin.find:
|
||||||
paths:
|
paths:
|
||||||
- "{{ (playbook_dir | default('.')) ~ '/roles' }}"
|
- "{{ (playbook_dir | default('.')) ~ '/roles' }}"
|
||||||
file_type: directory
|
file_type: directory
|
||||||
depth: 1
|
depth: 1
|
||||||
register: result
|
register: result
|
||||||
- name: Include all roles
|
- name: Include all roles
|
||||||
include_role:
|
ansible.builtin.include_role:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ result.files | map(attribute='path') | map('regex_replace', '.*/', '') | sort }}"
|
loop: "{{ result.files | map(attribute='path') | map('regex_replace', '.*/', '') | sort }}"
|
||||||
|
|||||||
@ -10,11 +10,11 @@
|
|||||||
# The following two tasks are useful if we ever have to debug why this fails.
|
# The following two tasks are useful if we ever have to debug why this fails.
|
||||||
|
|
||||||
- name: Print all Ansible facts
|
- name: Print all Ansible facts
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: ansible_facts
|
var: ansible_facts
|
||||||
|
|
||||||
- name: Read some files
|
- name: Read some files
|
||||||
slurp:
|
ansible.builtin.slurp:
|
||||||
src: "{{ path }}"
|
src: "{{ path }}"
|
||||||
loop:
|
loop:
|
||||||
- /proc/self/cpuset
|
- /proc/self/cpuset
|
||||||
@ -24,11 +24,11 @@
|
|||||||
loop_var: path
|
loop_var: path
|
||||||
|
|
||||||
- name: Print facts returned by module
|
- name: Print facts returned by module
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.ansible_facts
|
var: result.ansible_facts
|
||||||
|
|
||||||
- name: Validate results
|
- name: Validate results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- ansible_module_running_in_container
|
- ansible_module_running_in_container
|
||||||
- ansible_module_container_type != ''
|
- ansible_module_container_type != ''
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
# Create random name prefix (for containers, networks, ...)
|
# Create random name prefix (for containers, networks, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Make sure image is absent
|
- name: Make sure image is absent
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Get facts
|
- name: Get facts
|
||||||
current_container_facts:
|
community.docker.current_container_facts:
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
# WARNING: This is not a proper test as it won't fail when the module does not work!
|
# WARNING: This is not a proper test as it won't fail when the module does not work!
|
||||||
|
|||||||
@ -10,21 +10,21 @@
|
|||||||
|
|
||||||
# Create random name prefix (for services, ...)
|
# Create random name prefix (for services, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
images: []
|
images: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- name: Show docker compose --help output
|
- name: Show docker compose --help output
|
||||||
command: docker compose --help
|
ansible.builtin.command: docker compose --help
|
||||||
|
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -40,7 +40,7 @@
|
|||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
@ -48,7 +48,7 @@
|
|||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ images }}"
|
loop: "{{ images }}"
|
||||||
diff: false
|
diff: false
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -18,13 +18,13 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
images: "{{ images + [iname] }}"
|
images: "{{ images + [iname] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ item }}'
|
path: '{{ item }}'
|
||||||
state: directory
|
state: directory
|
||||||
loop:
|
loop:
|
||||||
@ -32,45 +32,45 @@
|
|||||||
- '{{ project_src }}/build'
|
- '{{ project_src }}/build'
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- name: Template Dockerfile
|
- name: Template Dockerfile
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/build/Dockerfile'
|
dest: '{{ project_src }}/build/Dockerfile'
|
||||||
content: |
|
content: |
|
||||||
FROM {{ docker_test_image_alpine }}
|
FROM {{ docker_test_image_alpine }}
|
||||||
ENTRYPOINT ["/bin/sh", "-c", "sleep 10m"]
|
ENTRYPOINT ["/bin/sh", "-c", "sleep 10m"]
|
||||||
|
|
||||||
- name: Present (check)
|
- name: Present (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present
|
- name: Present
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present (idempotent check)
|
- name: Present (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present (idempotent)
|
- name: Present (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Present (idempotent check, build=always, ignore_build_events=false)
|
- name: Present (idempotent check, build=always, ignore_build_events=false)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
build: always
|
build: always
|
||||||
@ -79,7 +79,7 @@
|
|||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Present (idempotent, build=always, ignore_build_events=false)
|
- name: Present (idempotent, build=always, ignore_build_events=false)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
build: always
|
build: always
|
||||||
@ -87,7 +87,7 @@
|
|||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- name: Present (idempotent check, build=always, ignore_build_events=true)
|
- name: Present (idempotent check, build=always, ignore_build_events=true)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
build: always
|
build: always
|
||||||
@ -96,14 +96,14 @@
|
|||||||
register: present_4_check
|
register: present_4_check
|
||||||
|
|
||||||
- name: Present (idempotent, build=always, ignore_build_events=true)
|
- name: Present (idempotent, build=always, ignore_build_events=true)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
build: always
|
build: always
|
||||||
ignore_build_events: true
|
ignore_build_events: true
|
||||||
register: present_4
|
register: present_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
@ -135,6 +135,6 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
@ -16,22 +16,22 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- name: Present (check)
|
- name: Present (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
wait: true
|
wait: true
|
||||||
@ -39,7 +39,7 @@
|
|||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present
|
- name: Present
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
wait: true
|
wait: true
|
||||||
@ -47,11 +47,11 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
@ -30,7 +30,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Present (check)
|
- name: Present (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
@ -38,14 +38,14 @@
|
|||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present
|
- name: Present
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present (idempotent check)
|
- name: Present (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
@ -53,14 +53,14 @@
|
|||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present (idempotent)
|
- name: Present (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Present (changed check)
|
- name: Present (changed check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
@ -68,13 +68,13 @@
|
|||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Present (changed)
|
- name: Present (changed)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
@ -103,7 +103,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Absent (check)
|
- name: Absent (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: absent
|
state: absent
|
||||||
@ -111,14 +111,14 @@
|
|||||||
register: absent_1_check
|
register: absent_1_check
|
||||||
|
|
||||||
- name: Absent
|
- name: Absent
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_1
|
register: absent_1
|
||||||
|
|
||||||
- name: Absent (idempotent check)
|
- name: Absent (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: absent
|
state: absent
|
||||||
@ -126,13 +126,13 @@
|
|||||||
register: absent_2_check
|
register: absent_2_check
|
||||||
|
|
||||||
- name: Absent (idempotent)
|
- name: Absent (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service_mod | from_yaml }}'
|
definition: '{{ test_service_mod | from_yaml }}'
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_2
|
register: absent_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- absent_1_check is changed
|
- absent_1_check is changed
|
||||||
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
@ -148,7 +148,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Present stopped (check)
|
- name: Present stopped (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -156,14 +156,14 @@
|
|||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present stopped
|
- name: Present stopped
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present stopped (idempotent check)
|
- name: Present stopped (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -171,14 +171,14 @@
|
|||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present stopped (idempotent)
|
- name: Present stopped (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Started (check)
|
- name: Started (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
@ -186,14 +186,14 @@
|
|||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Started
|
- name: Started
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- name: Started (idempotent check)
|
- name: Started (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
@ -201,14 +201,14 @@
|
|||||||
register: present_4_check
|
register: present_4_check
|
||||||
|
|
||||||
- name: Started (idempotent)
|
- name: Started (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_4
|
register: present_4
|
||||||
|
|
||||||
- name: Restarted (check)
|
- name: Restarted (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
@ -216,14 +216,14 @@
|
|||||||
register: present_5_check
|
register: present_5_check
|
||||||
|
|
||||||
- name: Restarted
|
- name: Restarted
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
register: present_5
|
register: present_5
|
||||||
|
|
||||||
- name: Stopped (check)
|
- name: Stopped (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -231,14 +231,14 @@
|
|||||||
register: present_6_check
|
register: present_6_check
|
||||||
|
|
||||||
- name: Stopped
|
- name: Stopped
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_6
|
register: present_6
|
||||||
|
|
||||||
- name: Restarted (check)
|
- name: Restarted (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
@ -246,19 +246,19 @@
|
|||||||
register: present_7_check
|
register: present_7_check
|
||||||
|
|
||||||
- name: Restarted
|
- name: Restarted
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
register: present_7
|
register: present_7
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_name: '{{ pname }}'
|
project_name: '{{ pname }}'
|
||||||
definition: '{{ test_service | from_yaml }}'
|
definition: '{{ test_service | from_yaml }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
|
|||||||
@ -21,17 +21,17 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Make sure images are not around
|
- name: Make sure images are not around
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: '{{ item }}'
|
name: '{{ item }}'
|
||||||
loop:
|
loop:
|
||||||
- '{{ non_existing_image }}'
|
- '{{ non_existing_image }}'
|
||||||
@ -42,12 +42,12 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template project file with non-existing image
|
- name: Template project file with non-existing image
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service_non_existing }}'
|
content: '{{ test_service_non_existing }}'
|
||||||
|
|
||||||
- name: Present with pull=never (check)
|
- name: Present with pull=never (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: never
|
pull: never
|
||||||
@ -56,7 +56,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Present with pull=never
|
- name: Present with pull=never
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: never
|
pull: never
|
||||||
@ -64,7 +64,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Present without explicit pull (check)
|
- name: Present without explicit pull (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
@ -72,13 +72,13 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Present without explicit pull
|
- name: Present without explicit pull
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_2
|
register: present_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is failed or present_1_check is changed
|
- present_1_check is failed or present_1_check is changed
|
||||||
- present_1_check is changed or present_1_check.msg.startswith('General error:')
|
- present_1_check is changed or present_1_check.msg.startswith('General error:')
|
||||||
@ -98,12 +98,12 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template project file with simple image
|
- name: Template project file with simple image
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service_simple }}'
|
content: '{{ test_service_simple }}'
|
||||||
|
|
||||||
- name: Present with pull=missing (check)
|
- name: Present with pull=missing (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
@ -111,14 +111,14 @@
|
|||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present with pull=missing
|
- name: Present with pull=missing
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present with pull=missing (idempotent, check)
|
- name: Present with pull=missing (idempotent, check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
@ -126,14 +126,14 @@
|
|||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present with pull=missing (idempotent)
|
- name: Present with pull=missing (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Present with pull=always (check)
|
- name: Present with pull=always (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: always
|
pull: always
|
||||||
@ -141,19 +141,19 @@
|
|||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Present with pull=always
|
- name: Present with pull=always
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: always
|
pull: always
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- name: Stopping service
|
- name: Stopping service
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Present with pull=never (check)
|
- name: Present with pull=never (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
@ -161,14 +161,14 @@
|
|||||||
register: present_4_check
|
register: present_4_check
|
||||||
|
|
||||||
- name: Present with pull=never
|
- name: Present with pull=never
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
register: present_4
|
register: present_4
|
||||||
|
|
||||||
- name: Present with pull=never (idempotent, check)
|
- name: Present with pull=never (idempotent, check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
@ -176,18 +176,18 @@
|
|||||||
register: present_5_check
|
register: present_5_check
|
||||||
|
|
||||||
- name: Present with pull=never (idempotent)
|
- name: Present with pull=never (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
pull: missing
|
pull: missing
|
||||||
register: present_5
|
register: present_5
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- (present_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
- (present_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
||||||
|
|||||||
@ -22,12 +22,12 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
@ -36,62 +36,62 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- name: Present (check)
|
- name: Present (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present
|
- name: Present
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present (idempotent check)
|
- name: Present (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present (idempotent)
|
- name: Present (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Template modified project file
|
- name: Template modified project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service_mod }}'
|
content: '{{ test_service_mod }}'
|
||||||
|
|
||||||
- name: Present (changed check)
|
- name: Present (changed check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Present (changed)
|
- name: Present (changed)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- name: Present with --yes
|
- name: Present with --yes
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
assume_yes: true
|
assume_yes: true
|
||||||
when: docker_compose_version is version('2.32.0', '>=')
|
when: docker_compose_version is version('2.32.0', '>=')
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
@ -120,32 +120,32 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Absent (check)
|
- name: Absent (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: absent_1_check
|
register: absent_1_check
|
||||||
|
|
||||||
- name: Absent
|
- name: Absent
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_1
|
register: absent_1
|
||||||
|
|
||||||
- name: Absent (idempotent check)
|
- name: Absent (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: absent_2_check
|
register: absent_2_check
|
||||||
|
|
||||||
- name: Absent (idempotent)
|
- name: Absent (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_2
|
register: absent_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- absent_1_check is changed
|
- absent_1_check is changed
|
||||||
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- absent_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
@ -161,107 +161,107 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- name: Present stopped (check)
|
- name: Present stopped (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_1_check
|
register: present_1_check
|
||||||
|
|
||||||
- name: Present stopped
|
- name: Present stopped
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Present stopped (idempotent check)
|
- name: Present stopped (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_2_check
|
register: present_2_check
|
||||||
|
|
||||||
- name: Present stopped (idempotent)
|
- name: Present stopped (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- name: Started (check)
|
- name: Started (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_3_check
|
register: present_3_check
|
||||||
|
|
||||||
- name: Started
|
- name: Started
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- name: Started (idempotent check)
|
- name: Started (idempotent check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_4_check
|
register: present_4_check
|
||||||
|
|
||||||
- name: Started (idempotent)
|
- name: Started (idempotent)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
register: present_4
|
register: present_4
|
||||||
|
|
||||||
- name: Restarted (check)
|
- name: Restarted (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_5_check
|
register: present_5_check
|
||||||
|
|
||||||
- name: Restarted
|
- name: Restarted
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
register: present_5
|
register: present_5
|
||||||
|
|
||||||
- name: Stopped (check)
|
- name: Stopped (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_6_check
|
register: present_6_check
|
||||||
|
|
||||||
- name: Stopped
|
- name: Stopped
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: present_6
|
register: present_6
|
||||||
|
|
||||||
- name: Restarted (check)
|
- name: Restarted (check)
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: present_7_check
|
register: present_7_check
|
||||||
|
|
||||||
- name: Restarted
|
- name: Restarted
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: restarted
|
state: restarted
|
||||||
register: present_7
|
register: present_7
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
- present_1_check.warnings | default([]) | select('regex', ' please report this at ') | length == 0
|
||||||
|
|||||||
@ -10,20 +10,20 @@
|
|||||||
|
|
||||||
# Create random name prefix (for services, ...)
|
# Create random name prefix (for services, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- name: Show docker compose --help output
|
- name: Show docker compose --help output
|
||||||
command: docker compose --help
|
ansible.builtin.command: docker compose --help
|
||||||
|
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -39,7 +39,7 @@
|
|||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -16,35 +16,35 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Start services
|
- name: Start services
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Run command with command
|
- name: Run command with command
|
||||||
docker_compose_v2_exec:
|
community.docker.docker_compose_v2_exec:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "ls /"
|
command: /bin/sh -c "ls /"
|
||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Run command with argv
|
- name: Run command with argv
|
||||||
docker_compose_v2_exec:
|
community.docker.docker_compose_v2_exec:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
@ -56,7 +56,7 @@
|
|||||||
failed_when: result_2.rc != 1
|
failed_when: result_2.rc != 1
|
||||||
|
|
||||||
- name: Run detached command
|
- name: Run detached command
|
||||||
docker_compose_v2_exec:
|
community.docker.docker_compose_v2_exec:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "sleep 1"
|
command: /bin/sh -c "sleep 1"
|
||||||
@ -64,14 +64,14 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Run command with input
|
- name: Run command with input
|
||||||
docker_compose_v2_exec:
|
community.docker.docker_compose_v2_exec:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "cat"
|
command: /bin/sh -c "cat"
|
||||||
stdin: This is a test
|
stdin: This is a test
|
||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1.rc == 0
|
- result_1.rc == 0
|
||||||
- result_1.stderr == ""
|
- result_1.stderr == ""
|
||||||
@ -92,6 +92,6 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
@ -10,23 +10,23 @@
|
|||||||
|
|
||||||
# Create random name prefix (for services, ...)
|
# Create random name prefix (for services, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- name: Show images
|
- name: Show images
|
||||||
command: docker images --all --digests
|
ansible.builtin.command: docker images --all --digests
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- name: Show docker compose --help output
|
- name: Show docker compose --help output
|
||||||
command: docker compose --help
|
ansible.builtin.command: docker compose --help
|
||||||
|
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -42,7 +42,7 @@
|
|||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -23,17 +23,17 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Make sure images are not around
|
- name: Make sure images are not around
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: '{{ item }}'
|
name: '{{ item }}'
|
||||||
loop:
|
loop:
|
||||||
- '{{ non_existing_image }}'
|
- '{{ non_existing_image }}'
|
||||||
@ -44,24 +44,24 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template project file with non-existing image
|
- name: Template project file with non-existing image
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service_non_existing }}'
|
content: '{{ test_service_non_existing }}'
|
||||||
|
|
||||||
- name: Pull (check)
|
- name: Pull (check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_1_check
|
register: pull_1_check
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Pull
|
- name: Pull
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
register: pull_1
|
register: pull_1
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_1_check is failed or pull_1_check is changed
|
- pull_1_check is failed or pull_1_check is changed
|
||||||
- pull_1_check is changed or pull_1_check.msg.startswith('Error when processing ')
|
- pull_1_check is changed or pull_1_check.msg.startswith('Error when processing ')
|
||||||
@ -75,69 +75,69 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Template project file with simple image
|
- name: Template project file with simple image
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service_simple }}'
|
content: '{{ test_service_simple }}'
|
||||||
|
|
||||||
- when: docker_compose_version is version('2.22.0', '>=')
|
- when: docker_compose_version is version('2.22.0', '>=')
|
||||||
block:
|
block:
|
||||||
- name: Pull with policy=missing (check)
|
- name: Pull with policy=missing (check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: missing
|
policy: missing
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_1_check
|
register: pull_1_check
|
||||||
|
|
||||||
- name: Pull with policy=missing
|
- name: Pull with policy=missing
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: missing
|
policy: missing
|
||||||
register: pull_1
|
register: pull_1
|
||||||
|
|
||||||
- name: Pull with policy=missing (idempotent, check)
|
- name: Pull with policy=missing (idempotent, check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: missing
|
policy: missing
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_2_check
|
register: pull_2_check
|
||||||
|
|
||||||
- name: Pull with policy=missing (idempotent)
|
- name: Pull with policy=missing (idempotent)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: missing
|
policy: missing
|
||||||
register: pull_2
|
register: pull_2
|
||||||
|
|
||||||
- name: Make sure image is not around
|
- name: Make sure image is not around
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: '{{ docker_test_image_simple_1 }}'
|
name: '{{ docker_test_image_simple_1 }}'
|
||||||
|
|
||||||
- name: Pull with policy=always (check)
|
- name: Pull with policy=always (check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_3_check
|
register: pull_3_check
|
||||||
|
|
||||||
- name: Pull with policy=always
|
- name: Pull with policy=always
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
register: pull_3
|
register: pull_3
|
||||||
|
|
||||||
- name: Pull with policy=always (check, idempotent)
|
- name: Pull with policy=always (check, idempotent)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_4_check
|
register: pull_4_check
|
||||||
|
|
||||||
- name: Pull with policy=always (idempotent)
|
- name: Pull with policy=always (idempotent)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
register: pull_4
|
register: pull_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_1_check is changed
|
- pull_1_check is changed
|
||||||
- (pull_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
- (pull_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
||||||
@ -165,32 +165,32 @@
|
|||||||
- when: docker_compose_version is version('2.22.0', '<')
|
- when: docker_compose_version is version('2.22.0', '<')
|
||||||
block:
|
block:
|
||||||
- name: Pull with policy=always (check)
|
- name: Pull with policy=always (check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_1_check
|
register: pull_1_check
|
||||||
|
|
||||||
- name: Pull with policy=always
|
- name: Pull with policy=always
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
register: pull_1
|
register: pull_1
|
||||||
|
|
||||||
- name: Pull with policy=always (again, check)
|
- name: Pull with policy=always (again, check)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: pull_2_check
|
register: pull_2_check
|
||||||
|
|
||||||
- name: Pull with policy=always (again)
|
- name: Pull with policy=always (again)
|
||||||
docker_compose_v2_pull:
|
community.docker.docker_compose_v2_pull:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
policy: always
|
policy: always
|
||||||
register: pull_2
|
register: pull_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_1_check is changed
|
- pull_1_check is changed
|
||||||
- (pull_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
- (pull_1_check.actions | selectattr('status', 'eq', 'Pulling') | first) is truthy
|
||||||
|
|||||||
@ -10,20 +10,20 @@
|
|||||||
|
|
||||||
# Create random name prefix (for services, ...)
|
# Create random name prefix (for services, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- name: Show docker compose --help output
|
- name: Show docker compose --help output
|
||||||
command: docker compose --help
|
ansible.builtin.command: docker compose --help
|
||||||
|
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -39,7 +39,7 @@
|
|||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -16,28 +16,28 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
cnames: "{{ cnames + [pname ~ '-' ~ cname ~ '-1'] }}"
|
||||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||||
|
|
||||||
- name: Create project directory
|
- name: Create project directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ project_src }}'
|
path: '{{ project_src }}'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Template default project file
|
- name: Template default project file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ project_src }}/docker-compose.yml'
|
dest: '{{ project_src }}/docker-compose.yml'
|
||||||
content: '{{ test_service }}'
|
content: '{{ test_service }}'
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Start services
|
- name: Start services
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Run command with command
|
- name: Run command with command
|
||||||
docker_compose_v2_run:
|
community.docker.docker_compose_v2_run:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "ls /"
|
command: /bin/sh -c "ls /"
|
||||||
@ -45,7 +45,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Run command with argv
|
- name: Run command with argv
|
||||||
docker_compose_v2_run:
|
community.docker.docker_compose_v2_run:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
@ -58,7 +58,7 @@
|
|||||||
failed_when: result_2.rc != 1
|
failed_when: result_2.rc != 1
|
||||||
|
|
||||||
- name: Run detached command
|
- name: Run detached command
|
||||||
docker_compose_v2_run:
|
community.docker.docker_compose_v2_run:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "sleep 1"
|
command: /bin/sh -c "sleep 1"
|
||||||
@ -67,14 +67,14 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Run command with input
|
- name: Run command with input
|
||||||
docker_compose_v2_run:
|
community.docker.docker_compose_v2_run:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
service: '{{ cname }}'
|
service: '{{ cname }}'
|
||||||
command: /bin/sh -c "cat"
|
command: /bin/sh -c "cat"
|
||||||
stdin: This is a test
|
stdin: This is a test
|
||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1.rc == 0
|
- result_1.rc == 0
|
||||||
- result_1.stderr == ""
|
- result_1.stderr == ""
|
||||||
@ -99,6 +99,6 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: '{{ project_src }}'
|
project_src: '{{ project_src }}'
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
# and should not be used as examples of how to write Ansible roles #
|
# and should not be used as examples of how to write Ansible roles #
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- include_tasks: test_docker_config.yml
|
- ansible.builtin.include_tasks: test_docker_config.yml
|
||||||
when: docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.30', '>=')
|
when: docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.30', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_config tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_config tests!"
|
||||||
when: not(docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.30', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.30', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,108 +4,108 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- shell: "docker info --format '{% raw %}{{json .}}{% endraw %}' | {{ ansible_python_interpreter }} -m json.tool"
|
- ansible.builtin.shell: "docker info --format '{% raw %}{{json .}}{% endraw %}' | {{ ansible_python_interpreter }} -m json.tool"
|
||||||
|
|
||||||
- name: Make sure we're not already using Docker swarm
|
- name: Make sure we're not already using Docker swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- shell: "docker info --format '{% raw %}{{json .}}{% endraw %}' | {{ ansible_python_interpreter }} -m json.tool"
|
- ansible.builtin.shell: "docker info --format '{% raw %}{{json .}}{% endraw %}' | {{ ansible_python_interpreter }} -m json.tool"
|
||||||
|
|
||||||
- name: Create a Swarm cluster
|
- name: Create a Swarm cluster
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
name: default
|
name: default
|
||||||
state: present
|
state: present
|
||||||
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
||||||
|
|
||||||
- name: Parameter name should be required
|
- name: Parameter name should be required
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
state: present
|
state: present
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert failure when called with no name
|
- name: Assert failure when called with no name
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is failed'
|
- 'output is failed'
|
||||||
- 'output.msg == "missing required arguments: name"'
|
- 'output.msg == "missing required arguments: name"'
|
||||||
|
|
||||||
- name: Test parameters
|
- name: Test parameters
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: foo
|
name: foo
|
||||||
state: present
|
state: present
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert failure when called with no data
|
- name: Assert failure when called with no data
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is failed'
|
- 'output is failed'
|
||||||
- 'output.msg == "state is present but any of the following are missing: data, data_src"'
|
- 'output.msg == "state is present but any of the following are missing: data, data_src"'
|
||||||
|
|
||||||
- name: Create config
|
- name: Create config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
state: present
|
state: present
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Create variable config_id
|
- name: Create variable config_id
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
config_id: "{{ output.config_id }}"
|
config_id: "{{ output.config_id }}"
|
||||||
|
|
||||||
- name: Inspect config
|
- name: Inspect config
|
||||||
command: "docker config inspect {{ config_id }}"
|
ansible.builtin.command: "docker config inspect {{ config_id }}"
|
||||||
register: inspect
|
register: inspect
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: inspect
|
var: inspect
|
||||||
|
|
||||||
- name: Assert config creation succeeded
|
- name: Assert config creation succeeded
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'db_password' in inspect.stdout"
|
- "'db_password' in inspect.stdout"
|
||||||
- "'ansible_key' in inspect.stdout"
|
- "'ansible_key' in inspect.stdout"
|
||||||
when: inspect is not failed
|
when: inspect is not failed
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'is too new. Maximum supported API version is' in inspect.stderr"
|
- "'is too new. Maximum supported API version is' in inspect.stderr"
|
||||||
when: inspect is failed
|
when: inspect is failed
|
||||||
|
|
||||||
- name: Create config again
|
- name: Create config again
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
state: present
|
state: present
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert create config is idempotent
|
- name: Assert create config is idempotent
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is not changed
|
- output is not changed
|
||||||
|
|
||||||
- name: Write config into file
|
- name: Write config into file
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "{{ remote_tmp_dir }}/data"
|
dest: "{{ remote_tmp_dir }}/data"
|
||||||
content: |-
|
content: |-
|
||||||
opensesame!
|
opensesame!
|
||||||
|
|
||||||
- name: Create config again (from file)
|
- name: Create config again (from file)
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data_src: "{{ remote_tmp_dir }}/data"
|
data_src: "{{ remote_tmp_dir }}/data"
|
||||||
state: present
|
state: present
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert create config is idempotent
|
- name: Assert create config is idempotent
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is not changed
|
- output is not changed
|
||||||
|
|
||||||
- name: Create config again (base64)
|
- name: Create config again (base64)
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: b3BlbnNlc2FtZSE=
|
data: b3BlbnNlc2FtZSE=
|
||||||
data_is_b64: true
|
data_is_b64: true
|
||||||
@ -113,53 +113,53 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert create config (base64) is idempotent
|
- name: Assert create config (base64) is idempotent
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is not changed
|
- output is not changed
|
||||||
|
|
||||||
- name: Update config
|
- name: Update config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: newpassword!
|
data: newpassword!
|
||||||
state: present
|
state: present
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert config was updated
|
- name: Assert config was updated
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is changed
|
- output is changed
|
||||||
- output.config_id != config_id
|
- output.config_id != config_id
|
||||||
|
|
||||||
- name: Remove config
|
- name: Remove config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Check that config is removed
|
- name: Check that config is removed
|
||||||
command: "docker config inspect {{ config_id }}"
|
ansible.builtin.command: "docker config inspect {{ config_id }}"
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Assert config was removed
|
- name: Assert config was removed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
|
|
||||||
- name: Remove config
|
- name: Remove config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
state: absent
|
state: absent
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert remove config is idempotent
|
- name: Assert remove config is idempotent
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is not changed
|
- output is not changed
|
||||||
|
|
||||||
# Rolling update
|
# Rolling update
|
||||||
|
|
||||||
- name: Create rolling config
|
- name: Create rolling config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: rolling_password
|
name: rolling_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
rolling_versions: true
|
rolling_versions: true
|
||||||
@ -167,32 +167,32 @@
|
|||||||
register: original_output
|
register: original_output
|
||||||
|
|
||||||
- name: Create variable config_id
|
- name: Create variable config_id
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
config_id: "{{ original_output.config_id }}"
|
config_id: "{{ original_output.config_id }}"
|
||||||
|
|
||||||
- name: Inspect config
|
- name: Inspect config
|
||||||
command: "docker config inspect {{ config_id }}"
|
ansible.builtin.command: "docker config inspect {{ config_id }}"
|
||||||
register: inspect
|
register: inspect
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: inspect
|
var: inspect
|
||||||
|
|
||||||
- name: Assert config creation succeeded
|
- name: Assert config creation succeeded
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'rolling_password' in inspect.stdout"
|
- "'rolling_password' in inspect.stdout"
|
||||||
- "'ansible_key' in inspect.stdout"
|
- "'ansible_key' in inspect.stdout"
|
||||||
- "'ansible_version' in inspect.stdout"
|
- "'ansible_version' in inspect.stdout"
|
||||||
- original_output.config_name == 'rolling_password_v1'
|
- original_output.config_name == 'rolling_password_v1'
|
||||||
when: inspect is not failed
|
when: inspect is not failed
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'is too new. Maximum supported API version is' in inspect.stderr"
|
- "'is too new. Maximum supported API version is' in inspect.stderr"
|
||||||
when: inspect is failed
|
when: inspect is failed
|
||||||
|
|
||||||
- name: Create config again
|
- name: Create config again
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: rolling_password
|
name: rolling_password
|
||||||
data: newpassword!
|
data: newpassword!
|
||||||
rolling_versions: true
|
rolling_versions: true
|
||||||
@ -200,7 +200,7 @@
|
|||||||
register: new_output
|
register: new_output
|
||||||
|
|
||||||
- name: Assert that new version is created
|
- name: Assert that new version is created
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- new_output is changed
|
- new_output is changed
|
||||||
- new_output.config_id != original_output.config_id
|
- new_output.config_id != original_output.config_id
|
||||||
@ -208,28 +208,28 @@
|
|||||||
- new_output.config_name == 'rolling_password_v2'
|
- new_output.config_name == 'rolling_password_v2'
|
||||||
|
|
||||||
- name: Remove rolling configs
|
- name: Remove rolling configs
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: rolling_password
|
name: rolling_password
|
||||||
rolling_versions: true
|
rolling_versions: true
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Check that config is removed
|
- name: Check that config is removed
|
||||||
command: "docker config inspect {{ original_output.config_id }}"
|
ansible.builtin.command: "docker config inspect {{ original_output.config_id }}"
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Assert config was removed
|
- name: Assert config was removed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
|
|
||||||
- name: Check that config is removed
|
- name: Check that config is removed
|
||||||
command: "docker config inspect {{ new_output.config_id }}"
|
ansible.builtin.command: "docker config inspect {{ new_output.config_id }}"
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Assert config was removed
|
- name: Assert config was removed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
|
|
||||||
@ -239,13 +239,13 @@
|
|||||||
block:
|
block:
|
||||||
|
|
||||||
- name: Create regular config
|
- name: Create regular config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Update config with template_driver
|
- name: Update config with template_driver
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
template_driver: golang
|
template_driver: golang
|
||||||
@ -253,12 +253,12 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert config was updated
|
- name: Assert config was updated
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is changed
|
- output is changed
|
||||||
|
|
||||||
- name: Invalid template_driver
|
- name: Invalid template_driver
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
template_driver: "not a template driver"
|
template_driver: "not a template driver"
|
||||||
@ -267,13 +267,13 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert failure when called with invalid template_driver
|
- name: Assert failure when called with invalid template_driver
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is failed'
|
- 'output is failed'
|
||||||
- 'output.msg == "value of template_driver must be one of: golang, got: not a template driver"'
|
- 'output.msg == "value of template_driver must be one of: golang, got: not a template driver"'
|
||||||
|
|
||||||
- name: Create config again
|
- name: Create config again
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: opensesame!
|
data: opensesame!
|
||||||
template_driver: golang
|
template_driver: golang
|
||||||
@ -281,13 +281,13 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Assert create config is idempotent
|
- name: Assert create config is idempotent
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is not changed
|
- output is not changed
|
||||||
|
|
||||||
# data is the docker swarm's name
|
# data is the docker swarm's name
|
||||||
- name: Update config with template data
|
- name: Update config with template data
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
data: "{{ '{{' }} .Service.Name {{ '}}' }}"
|
data: "{{ '{{' }} .Service.Name {{ '}}' }}"
|
||||||
template_driver: golang
|
template_driver: golang
|
||||||
@ -295,15 +295,15 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Inspect config
|
- name: Inspect config
|
||||||
command: "docker config inspect {{ output.config_id }}"
|
ansible.builtin.command: "docker config inspect {{ output.config_id }}"
|
||||||
register: inspect
|
register: inspect
|
||||||
|
|
||||||
- name: Show inspection result
|
- name: Show inspection result
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: inspect
|
var: inspect
|
||||||
|
|
||||||
- name: Assert config creation succeeded
|
- name: Assert config creation succeeded
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'db_password' in inspect.stdout"
|
- "'db_password' in inspect.stdout"
|
||||||
- "'ansible_key' in inspect.stdout"
|
- "'ansible_key' in inspect.stdout"
|
||||||
@ -313,22 +313,22 @@
|
|||||||
- "'\"Name\": \"golang\"' in inspect.stdout"
|
- "'\"Name\": \"golang\"' in inspect.stdout"
|
||||||
|
|
||||||
- name: Remove config
|
- name: Remove config
|
||||||
docker_config:
|
community.docker.docker_config:
|
||||||
name: db_password
|
name: db_password
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Check that config is removed
|
- name: Check that config is removed
|
||||||
command: "docker config inspect {{ output.config_id }}"
|
ansible.builtin.command: "docker config inspect {{ output.config_id }}"
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Assert config was removed
|
- name: Assert config was removed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Remove a Swarm cluster
|
- name: Remove a Swarm cluster
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -9,36 +9,36 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Gather facts on controller
|
- name: Gather facts on controller
|
||||||
setup:
|
ansible.builtin.setup:
|
||||||
gather_subset: '!all'
|
gather_subset: '!all'
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
delegate_facts: true
|
delegate_facts: true
|
||||||
run_once: true
|
run_once: true
|
||||||
|
|
||||||
- name: Make sure ipaddress is available on controller
|
- name: Make sure ipaddress is available on controller
|
||||||
pip:
|
ansible.builtin.pip:
|
||||||
name: ipaddress
|
name: ipaddress
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when: hostvars['localhost'].ansible_facts.python.version.major < 3
|
when: hostvars['localhost'].ansible_facts.python.version.major < 3
|
||||||
|
|
||||||
# Create random name prefix (for containers, networks, ...)
|
# Create random name prefix (for containers, networks, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
inames: []
|
inames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using container name prefix {{ cname_prefix }}"
|
msg: "Using container name prefix {{ cname_prefix }}"
|
||||||
|
|
||||||
- name: Retrieve docker host info
|
- name: Retrieve docker host info
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
register: docker_host_info
|
register: docker_host_info
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -46,18 +46,18 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
with_items: "{{ cnames }}"
|
with_items: "{{ cnames }}"
|
||||||
diff: false
|
diff: false
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
@ -66,5 +66,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run all docker_container tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run all docker_container tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-comparisons' }}"
|
cname: "{{ cname_prefix ~ '-comparisons' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -15,7 +15,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: value
|
- name: value
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
register: value_1
|
register: value_1
|
||||||
|
|
||||||
- name: value (change, ignore)
|
- name: value (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -36,7 +36,7 @@
|
|||||||
register: value_2
|
register: value_2
|
||||||
|
|
||||||
- name: value (change, strict)
|
- name: value (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -48,13 +48,13 @@
|
|||||||
register: value_3
|
register: value_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- value_1 is changed
|
- value_1 is changed
|
||||||
- value_2 is not changed
|
- value_2 is not changed
|
||||||
@ -65,7 +65,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: list
|
- name: list
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -76,7 +76,7 @@
|
|||||||
register: list_1
|
register: list_1
|
||||||
|
|
||||||
- name: list (change, ignore)
|
- name: list (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -89,7 +89,7 @@
|
|||||||
register: list_2
|
register: list_2
|
||||||
|
|
||||||
- name: list (change, strict)
|
- name: list (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -102,13 +102,13 @@
|
|||||||
register: list_3
|
register: list_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- list_1 is changed
|
- list_1 is changed
|
||||||
- list_2 is not changed
|
- list_2 is not changed
|
||||||
@ -119,7 +119,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: set
|
- name: set
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -130,7 +130,7 @@
|
|||||||
register: set_1
|
register: set_1
|
||||||
|
|
||||||
- name: set (change, ignore)
|
- name: set (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -145,7 +145,7 @@
|
|||||||
register: set_2
|
register: set_2
|
||||||
|
|
||||||
- name: set (change, allow_more_present)
|
- name: set (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -160,7 +160,7 @@
|
|||||||
register: set_3
|
register: set_3
|
||||||
|
|
||||||
- name: set (change, allow_more_present)
|
- name: set (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -174,7 +174,7 @@
|
|||||||
register: set_4
|
register: set_4
|
||||||
|
|
||||||
- name: set (change, strict)
|
- name: set (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -188,13 +188,13 @@
|
|||||||
register: set_5
|
register: set_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- set_1 is changed
|
- set_1 is changed
|
||||||
- set_2 is not changed
|
- set_2 is not changed
|
||||||
@ -207,7 +207,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: set(dict)
|
- name: set(dict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -218,7 +218,7 @@
|
|||||||
register: set_dict_1
|
register: set_dict_1
|
||||||
|
|
||||||
- name: set(dict) (change, ignore)
|
- name: set(dict) (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -233,7 +233,7 @@
|
|||||||
register: set_dict_2
|
register: set_dict_2
|
||||||
|
|
||||||
- name: set(dict) (change, allow_more_present)
|
- name: set(dict) (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -248,7 +248,7 @@
|
|||||||
register: set_dict_3
|
register: set_dict_3
|
||||||
|
|
||||||
- name: set(dict) (change, allow_more_present)
|
- name: set(dict) (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -262,7 +262,7 @@
|
|||||||
register: set_dict_4
|
register: set_dict_4
|
||||||
|
|
||||||
- name: set(dict) (change, strict)
|
- name: set(dict) (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -276,13 +276,13 @@
|
|||||||
register: set_dict_5
|
register: set_dict_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- set_dict_1 is changed
|
- set_dict_1 is changed
|
||||||
- set_dict_2 is not changed
|
- set_dict_2 is not changed
|
||||||
@ -295,7 +295,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: dict
|
- name: dict
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -306,7 +306,7 @@
|
|||||||
register: dict_1
|
register: dict_1
|
||||||
|
|
||||||
- name: dict (change, ignore)
|
- name: dict (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -321,7 +321,7 @@
|
|||||||
register: dict_2
|
register: dict_2
|
||||||
|
|
||||||
- name: dict (change, allow_more_present)
|
- name: dict (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -336,7 +336,7 @@
|
|||||||
register: dict_3
|
register: dict_3
|
||||||
|
|
||||||
- name: dict (change, allow_more_present)
|
- name: dict (change, allow_more_present)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -350,7 +350,7 @@
|
|||||||
register: dict_4
|
register: dict_4
|
||||||
|
|
||||||
- name: dict (change, strict)
|
- name: dict (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -364,13 +364,13 @@
|
|||||||
register: dict_5
|
register: dict_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- dict_1 is changed
|
- dict_1 is changed
|
||||||
- dict_2 is not changed
|
- dict_2 is not changed
|
||||||
@ -384,11 +384,11 @@
|
|||||||
|
|
||||||
- name: Pull {{ docker_test_image_hello_world }} image to make sure wildcard_2 test succeeds
|
- name: Pull {{ docker_test_image_hello_world }} image to make sure wildcard_2 test succeeds
|
||||||
# If the image isn't there, it will pull it and return 'changed'.
|
# If the image isn't there, it will pull it and return 'changed'.
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
|
|
||||||
- name: wildcard
|
- name: wildcard
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -402,7 +402,7 @@
|
|||||||
register: wildcard_1
|
register: wildcard_1
|
||||||
|
|
||||||
- name: wildcard (change, ignore)
|
- name: wildcard (change, ignore)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_hello_world }}"
|
image: "{{ docker_test_image_hello_world }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -418,7 +418,7 @@
|
|||||||
register: wildcard_2
|
register: wildcard_2
|
||||||
|
|
||||||
- name: wildcard (change, strict)
|
- name: wildcard (change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -435,7 +435,7 @@
|
|||||||
register: wildcard_3
|
register: wildcard_3
|
||||||
|
|
||||||
- name: wildcard (no change, strict)
|
- name: wildcard (no change, strict)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -452,13 +452,13 @@
|
|||||||
register: wildcard_4
|
register: wildcard_4
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- wildcard_1 is changed
|
- wildcard_1 is changed
|
||||||
- wildcard_2 is not changed
|
- wildcard_2 is not changed
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-hi' }}"
|
cname: "{{ cname_prefix ~ '-hi' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -15,7 +15,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Start container (check)
|
- name: Start container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -25,7 +25,7 @@
|
|||||||
register: start_1
|
register: start_1
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -34,7 +34,7 @@
|
|||||||
register: start_2
|
register: start_2
|
||||||
|
|
||||||
- name: Start container (idempotent)
|
- name: Start container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -43,7 +43,7 @@
|
|||||||
register: start_3
|
register: start_3
|
||||||
|
|
||||||
- name: Start container (idempotent check)
|
- name: Start container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
state: started
|
state: started
|
||||||
@ -52,13 +52,13 @@
|
|||||||
register: start_4
|
register: start_4
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- start_1 is changed
|
- start_1 is changed
|
||||||
- start_2 is changed
|
- start_2 is changed
|
||||||
@ -70,7 +70,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Start container (check)
|
- name: Start container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -80,7 +80,7 @@
|
|||||||
register: start_1
|
register: start_1
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -89,7 +89,7 @@
|
|||||||
register: start_2
|
register: start_2
|
||||||
|
|
||||||
- name: Start container (idempotent)
|
- name: Start container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -98,7 +98,7 @@
|
|||||||
register: start_3
|
register: start_3
|
||||||
|
|
||||||
- name: Start container (idempotent check)
|
- name: Start container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -108,13 +108,13 @@
|
|||||||
register: start_4
|
register: start_4
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- start_1 is changed
|
- start_1 is changed
|
||||||
- start_2 is changed
|
- start_2 is changed
|
||||||
|
|||||||
@ -4,34 +4,34 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-hi' }}"
|
cname: "{{ cname_prefix ~ '-hi' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
- name: Prepare container
|
- name: Prepare container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_healthcheck }}"
|
image: "{{ docker_test_image_healthcheck }}"
|
||||||
command: '10m'
|
command: '10m'
|
||||||
state: stopped
|
state: stopped
|
||||||
register: healthy_1
|
register: healthy_1
|
||||||
|
|
||||||
- debug: var=healthy_1.container.State
|
- ansible.builtin.debug: var=healthy_1.container.State
|
||||||
|
|
||||||
- name: Start container (not healthy in time)
|
- name: Start container (not healthy in time)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: healthy
|
state: healthy
|
||||||
healthy_wait_timeout: 1
|
healthy_wait_timeout: 1
|
||||||
register: healthy_2
|
register: healthy_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- debug: var=healthy_2.container.State
|
- ansible.builtin.debug: var=healthy_2.container.State
|
||||||
|
|
||||||
- name: Prepare container
|
- name: Prepare container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_healthcheck }}"
|
image: "{{ docker_test_image_healthcheck }}"
|
||||||
command: '10m 5s'
|
command: '10m 5s'
|
||||||
@ -39,23 +39,23 @@
|
|||||||
force_kill: true
|
force_kill: true
|
||||||
register: healthy_3
|
register: healthy_3
|
||||||
|
|
||||||
- debug: var=healthy_3.container.State
|
- ansible.builtin.debug: var=healthy_3.container.State
|
||||||
|
|
||||||
- name: Start container (healthy in time)
|
- name: Start container (healthy in time)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: healthy
|
state: healthy
|
||||||
healthy_wait_timeout: 10
|
healthy_wait_timeout: 10
|
||||||
register: healthy_4
|
register: healthy_4
|
||||||
|
|
||||||
- debug: var=healthy_4.container.State
|
- ansible.builtin.debug: var=healthy_4.container.State
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- healthy_2 is failed
|
- healthy_2 is failed
|
||||||
- healthy_2.container.State.Health.Status == "starting"
|
- healthy_2.container.State.Health.Status == "starting"
|
||||||
|
|||||||
@ -4,14 +4,14 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-iid' }}"
|
cname: "{{ cname_prefix ~ '-iid' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
- name: Pull images
|
- name: Pull images
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image }}"
|
name: "{{ image }}"
|
||||||
loop:
|
loop:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
@ -20,22 +20,22 @@
|
|||||||
loop_var: image
|
loop_var: image
|
||||||
|
|
||||||
- name: Get image ID of {{ docker_test_image_hello_world }} and {{ docker_test_image_alpine }} images
|
- name: Get image ID of {{ docker_test_image_hello_world }} and {{ docker_test_image_alpine }} images
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name:
|
name:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
- "{{ docker_test_image_alpine }}"
|
- "{{ docker_test_image_alpine }}"
|
||||||
register: image_info
|
register: image_info
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- image_info.images | length == 2
|
- image_info.images | length == 2
|
||||||
|
|
||||||
- name: Print image IDs
|
- name: Print image IDs
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
msg: "{{ docker_test_image_hello_world }}: {{ image_info.images[0].Id }}; {{ docker_test_image_alpine }}: {{ image_info.images[1].Id }}"
|
msg: "{{ docker_test_image_hello_world }}: {{ image_info.images[0].Id }}; {{ docker_test_image_alpine }}: {{ image_info.images[1].Id }}"
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_hello_world }} image via ID
|
- name: Create container with {{ docker_test_image_hello_world }} image via ID
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ image_info.images[0].Id }}"
|
image: "{{ image_info.images[0].Id }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -43,7 +43,7 @@
|
|||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_hello_world }} image via ID (idempotent)
|
- name: Create container with {{ docker_test_image_hello_world }} image via ID (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ image_info.images[0].Id }}"
|
image: "{{ image_info.images[0].Id }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -51,7 +51,7 @@
|
|||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_alpine }} image via ID
|
- name: Create container with {{ docker_test_image_alpine }} image via ID
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ image_info.images[1].Id }}"
|
image: "{{ image_info.images[1].Id }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -59,7 +59,7 @@
|
|||||||
register: create_3
|
register: create_3
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_alpine }} image via ID (idempotent)
|
- name: Create container with {{ docker_test_image_alpine }} image via ID (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ image_info.images[1].Id }}"
|
image: "{{ image_info.images[1].Id }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -68,12 +68,12 @@
|
|||||||
|
|
||||||
- name: Untag image
|
- name: Untag image
|
||||||
# Image will not be deleted since the container still uses it
|
# Image will not be deleted since the container still uses it
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ docker_test_image_alpine }}"
|
name: "{{ docker_test_image_alpine }}"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_alpine }} image via name (check mode, will pull, same image)
|
- name: Create container with {{ docker_test_image_alpine }} image via name (check mode, will pull, same image)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -82,7 +82,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_alpine }} image via name (will pull, same image)
|
- name: Create container with {{ docker_test_image_alpine }} image via name (will pull, same image)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -90,13 +90,13 @@
|
|||||||
register: create_6
|
register: create_6
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
- create_2 is not changed
|
- create_2 is not changed
|
||||||
@ -108,7 +108,7 @@
|
|||||||
- create_6.container.Id == create_4.container.Id # make sure container wasn't recreated
|
- create_6.container.Id == create_4.container.Id # make sure container wasn't recreated
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_digest_base }} image via old digest
|
- name: Create container with {{ docker_test_image_digest_base }} image via old digest
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -116,7 +116,7 @@
|
|||||||
register: digest_1
|
register: digest_1
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_digest_base }} image via old digest (idempotent)
|
- name: Create container with {{ docker_test_image_digest_base }} image via old digest (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -124,7 +124,7 @@
|
|||||||
register: digest_2
|
register: digest_2
|
||||||
|
|
||||||
- name: Create container with {{ docker_test_image_digest_base }} image via old digest (idempotent, pull)
|
- name: Create container with {{ docker_test_image_digest_base }} image via old digest (idempotent, pull)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
pull: true
|
pull: true
|
||||||
@ -133,7 +133,7 @@
|
|||||||
register: digest_3
|
register: digest_3
|
||||||
|
|
||||||
- name: Update container with {{ docker_test_image_digest_base }} image via new digest
|
- name: Update container with {{ docker_test_image_digest_base }} image via new digest
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
image: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
@ -141,13 +141,13 @@
|
|||||||
register: digest_4
|
register: digest_4
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- digest_1 is changed
|
- digest_1 is changed
|
||||||
- digest_2 is not changed
|
- digest_2 is not changed
|
||||||
|
|||||||
@ -4,12 +4,12 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-mounts' }}"
|
cname: "{{ cname_prefix ~ '-mounts' }}"
|
||||||
cname_h1: "{{ cname_prefix ~ '-mounts-h1' }}"
|
cname_h1: "{{ cname_prefix ~ '-mounts-h1' }}"
|
||||||
cname_h2: "{{ cname_prefix ~ '-mounts-h2' }}"
|
cname_h2: "{{ cname_prefix ~ '-mounts-h2' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname, cname_h1, cname_h2] }}"
|
cnames: "{{ cnames + [cname, cname_h1, cname_h2] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -23,7 +23,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: mounts
|
- name: mounts
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -39,7 +39,7 @@
|
|||||||
register: mounts_1
|
register: mounts_1
|
||||||
|
|
||||||
- name: mounts (idempotency)
|
- name: mounts (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -55,7 +55,7 @@
|
|||||||
register: mounts_2
|
register: mounts_2
|
||||||
|
|
||||||
- name: mounts (less mounts)
|
- name: mounts (less mounts)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -67,7 +67,7 @@
|
|||||||
register: mounts_3
|
register: mounts_3
|
||||||
|
|
||||||
- name: mounts (more mounts)
|
- name: mounts (more mounts)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -84,7 +84,7 @@
|
|||||||
register: mounts_4
|
register: mounts_4
|
||||||
|
|
||||||
- name: mounts (different modes)
|
- name: mounts (different modes)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -101,7 +101,7 @@
|
|||||||
register: mounts_5
|
register: mounts_5
|
||||||
|
|
||||||
- name: mounts (endpoint collision)
|
- name: mounts (endpoint collision)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -119,7 +119,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: mounts (anonymous volume)
|
- name: mounts (anonymous volume)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -131,7 +131,7 @@
|
|||||||
register: mounts_7
|
register: mounts_7
|
||||||
|
|
||||||
- name: mounts (anonymous volume idempotency)
|
- name: mounts (anonymous volume idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -143,13 +143,13 @@
|
|||||||
register: mounts_8
|
register: mounts_8
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- mounts_1 is changed
|
- mounts_1 is changed
|
||||||
- mounts_2 is not changed
|
- mounts_2 is not changed
|
||||||
@ -166,7 +166,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: tmpfs
|
- name: tmpfs
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -184,7 +184,7 @@
|
|||||||
register: tmpfs_1
|
register: tmpfs_1
|
||||||
|
|
||||||
- name: tmpfs (idempotency)
|
- name: tmpfs (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -202,7 +202,7 @@
|
|||||||
register: tmpfs_2
|
register: tmpfs_2
|
||||||
|
|
||||||
- name: tmpfs (more mounts)
|
- name: tmpfs (more mounts)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -224,7 +224,7 @@
|
|||||||
register: tmpfs_3
|
register: tmpfs_3
|
||||||
|
|
||||||
- name: tmpfs (change mode)
|
- name: tmpfs (change mode)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -238,7 +238,7 @@
|
|||||||
register: tmpfs_4
|
register: tmpfs_4
|
||||||
|
|
||||||
- name: tmpfs (change size)
|
- name: tmpfs (change size)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -252,13 +252,13 @@
|
|||||||
register: tmpfs_5
|
register: tmpfs_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tmpfs_1 is changed
|
- tmpfs_1 is changed
|
||||||
- tmpfs_2 is not changed
|
- tmpfs_2 is not changed
|
||||||
@ -271,7 +271,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: mounts + volumes
|
- name: mounts + volumes
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -286,7 +286,7 @@
|
|||||||
register: mounts_volumes_1
|
register: mounts_volumes_1
|
||||||
|
|
||||||
- name: mounts + volumes (idempotency)
|
- name: mounts + volumes (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -301,7 +301,7 @@
|
|||||||
register: mounts_volumes_2
|
register: mounts_volumes_2
|
||||||
|
|
||||||
- name: mounts + volumes (switching)
|
- name: mounts + volumes (switching)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -317,7 +317,7 @@
|
|||||||
register: mounts_volumes_3
|
register: mounts_volumes_3
|
||||||
|
|
||||||
- name: mounts + volumes (collision, should fail)
|
- name: mounts + volumes (collision, should fail)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -334,13 +334,13 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- mounts_volumes_1 is changed
|
- mounts_volumes_1 is changed
|
||||||
- mounts_volumes_2 is not changed
|
- mounts_volumes_2 is not changed
|
||||||
@ -353,7 +353,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: volume_driver
|
- name: volume_driver
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -362,7 +362,7 @@
|
|||||||
register: volume_driver_1
|
register: volume_driver_1
|
||||||
|
|
||||||
- name: volume_driver (idempotency)
|
- name: volume_driver (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -371,7 +371,7 @@
|
|||||||
register: volume_driver_2
|
register: volume_driver_2
|
||||||
|
|
||||||
- name: volume_driver (change)
|
- name: volume_driver (change)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -381,13 +381,13 @@
|
|||||||
register: volume_driver_3
|
register: volume_driver_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- volume_driver_1 is changed
|
- volume_driver_1 is changed
|
||||||
- volume_driver_2 is not changed
|
- volume_driver_2 is not changed
|
||||||
@ -398,7 +398,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: volumes
|
- name: volumes
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -410,7 +410,7 @@
|
|||||||
register: volumes_1
|
register: volumes_1
|
||||||
|
|
||||||
- name: volumes (idempotency)
|
- name: volumes (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -422,7 +422,7 @@
|
|||||||
register: volumes_2
|
register: volumes_2
|
||||||
|
|
||||||
- name: volumes (less volumes)
|
- name: volumes (less volumes)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -432,7 +432,7 @@
|
|||||||
register: volumes_3
|
register: volumes_3
|
||||||
|
|
||||||
- name: volumes (more volumes)
|
- name: volumes (more volumes)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -444,7 +444,7 @@
|
|||||||
register: volumes_4
|
register: volumes_4
|
||||||
|
|
||||||
- name: volumes (different modes)
|
- name: volumes (different modes)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -456,7 +456,7 @@
|
|||||||
register: volumes_5
|
register: volumes_5
|
||||||
|
|
||||||
- name: volumes (collision)
|
- name: volumes (collision)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -469,13 +469,13 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- volumes_1 is changed
|
- volumes_1 is changed
|
||||||
- volumes_1.container.Config.Volumes | length == 1
|
- volumes_1.container.Config.Volumes | length == 1
|
||||||
@ -493,7 +493,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: start helpers
|
- name: start helpers
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
@ -507,7 +507,7 @@
|
|||||||
loop_var: container_name
|
loop_var: container_name
|
||||||
|
|
||||||
- name: volumes_from
|
- name: volumes_from
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -516,7 +516,7 @@
|
|||||||
register: volumes_from_1
|
register: volumes_from_1
|
||||||
|
|
||||||
- name: volumes_from (idempotency)
|
- name: volumes_from (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -525,7 +525,7 @@
|
|||||||
register: volumes_from_2
|
register: volumes_from_2
|
||||||
|
|
||||||
- name: volumes_from (change)
|
- name: volumes_from (change)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -535,7 +535,7 @@
|
|||||||
register: volumes_from_3
|
register: volumes_from_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -547,7 +547,7 @@
|
|||||||
loop_var: container_name
|
loop_var: container_name
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- volumes_from_1 is changed
|
- volumes_from_1 is changed
|
||||||
- volumes_from_2 is not changed
|
- volumes_from_2 is not changed
|
||||||
|
|||||||
@ -4,19 +4,19 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-network' }}"
|
cname: "{{ cname_prefix ~ '-network' }}"
|
||||||
cname_h1: "{{ cname_prefix ~ '-network-h1' }}"
|
cname_h1: "{{ cname_prefix ~ '-network-h1' }}"
|
||||||
nname_1: "{{ cname_prefix ~ '-network-1' }}"
|
nname_1: "{{ cname_prefix ~ '-network-1' }}"
|
||||||
nname_2: "{{ cname_prefix ~ '-network-2' }}"
|
nname_2: "{{ cname_prefix ~ '-network-2' }}"
|
||||||
nname_3: "{{ cname_prefix ~ '-network-3' }}"
|
nname_3: "{{ cname_prefix ~ '-network-3' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname, cname_h1] }}"
|
cnames: "{{ cnames + [cname, cname_h1] }}"
|
||||||
dnetworks: "{{ dnetworks + [nname_1, nname_2, nname_3] }}"
|
dnetworks: "{{ dnetworks + [nname_1, nname_2, nname_3] }}"
|
||||||
|
|
||||||
- name: Create networks
|
- name: Create networks
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ network_name }}"
|
name: "{{ network_name }}"
|
||||||
state: present
|
state: present
|
||||||
loop:
|
loop:
|
||||||
@ -25,14 +25,14 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: network_name
|
loop_var: network_name
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
subnet_ipv4_base: 10.{{ 16 + (240 | random) }}.{{ 16 + (240 | random) }}
|
subnet_ipv4_base: 10.{{ 16 + (240 | random) }}.{{ 16 + (240 | random) }}
|
||||||
subnet_ipv6_base: fdb6:feea:{{ '%0.4x:%0.4x' | format(65536 | random, 65536 | random) }}
|
subnet_ipv6_base: fdb6:feea:{{ '%0.4x:%0.4x' | format(65536 | random, 65536 | random) }}
|
||||||
# If netaddr would be installed on the controller, one could do:
|
# If netaddr would be installed on the controller, one could do:
|
||||||
# subnet_ipv4: "10.{{ 16 + (240 | random) }}.{{ 16 + (240 | random) }}.0/24"
|
# subnet_ipv4: "10.{{ 16 + (240 | random) }}.{{ 16 + (240 | random) }}.0/24"
|
||||||
# subnet_ipv6: "fdb6:feea:{{ '%0.4x:%0.4x' | format(65536 | random, 65536 | random) }}::/64"
|
# subnet_ipv6: "fdb6:feea:{{ '%0.4x:%0.4x' | format(65536 | random, 65536 | random) }}::/64"
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
subnet_ipv4: "{{ subnet_ipv4_base }}.0/24"
|
subnet_ipv4: "{{ subnet_ipv4_base }}.0/24"
|
||||||
subnet_ipv6: "{{ subnet_ipv6_base }}::/64"
|
subnet_ipv6: "{{ subnet_ipv6_base }}::/64"
|
||||||
nname_3_ipv4_2: "{{ subnet_ipv4_base }}.2"
|
nname_3_ipv4_2: "{{ subnet_ipv4_base }}.2"
|
||||||
@ -49,11 +49,11 @@
|
|||||||
# nname_3_ipv6_3: "{{ subnet_ipv6 | ansible.netcommon.next_nth_usable(3) }}"
|
# nname_3_ipv6_3: "{{ subnet_ipv6 | ansible.netcommon.next_nth_usable(3) }}"
|
||||||
# nname_3_ipv6_4: "{{ subnet_ipv6 | ansible.netcommon.next_nth_usable(4) }}"
|
# nname_3_ipv6_4: "{{ subnet_ipv6 | ansible.netcommon.next_nth_usable(4) }}"
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Chose random IPv4 subnet {{ subnet_ipv4 }} and random IPv6 subnet {{ subnet_ipv6 }}"
|
msg: "Chose random IPv4 subnet {{ subnet_ipv4 }} and random IPv6 subnet {{ subnet_ipv6 }}"
|
||||||
|
|
||||||
- name: Create network with fixed IPv4 and IPv6 subnets
|
- name: Create network with fixed IPv4 and IPv6 subnets
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_3 }}"
|
name: "{{ nname_3 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -66,7 +66,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: network_mode
|
- name: network_mode
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -75,7 +75,7 @@
|
|||||||
register: network_mode_1
|
register: network_mode_1
|
||||||
|
|
||||||
- name: network_mode (idempotency)
|
- name: network_mode (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -84,7 +84,7 @@
|
|||||||
register: network_mode_2
|
register: network_mode_2
|
||||||
|
|
||||||
- name: network_mode (change)
|
- name: network_mode (change)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -94,7 +94,7 @@
|
|||||||
register: network_mode_3
|
register: network_mode_3
|
||||||
|
|
||||||
- name: network_mode (container mode setup)
|
- name: network_mode (container mode setup)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname_h1 }}"
|
name: "{{ cname_h1 }}"
|
||||||
@ -102,7 +102,7 @@
|
|||||||
register: cname_h1_id
|
register: cname_h1_id
|
||||||
|
|
||||||
- name: network_mode (container mode)
|
- name: network_mode (container mode)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -112,7 +112,7 @@
|
|||||||
register: network_mode_4
|
register: network_mode_4
|
||||||
|
|
||||||
- name: network_mode (container mode idempotency)
|
- name: network_mode (container mode idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -121,7 +121,7 @@
|
|||||||
register: network_mode_5
|
register: network_mode_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -132,7 +132,7 @@
|
|||||||
loop_var: container_name
|
loop_var: container_name
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network_mode_1 is changed
|
- network_mode_1 is changed
|
||||||
- network_mode_1.container.HostConfig.NetworkMode == 'host'
|
- network_mode_1.container.HostConfig.NetworkMode == 'host'
|
||||||
@ -150,7 +150,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks w/o purge_networks
|
- name: networks_cli_compatible=no, networks w/o purge_networks
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -162,7 +162,7 @@
|
|||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks w/o purge_networks
|
- name: networks_cli_compatible=no, networks w/o purge_networks
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -174,7 +174,7 @@
|
|||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks, purge_networks
|
- name: networks_cli_compatible=no, networks, purge_networks
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -189,7 +189,7 @@
|
|||||||
register: networks_3
|
register: networks_3
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks, purge_networks (idempotency)
|
- name: networks_cli_compatible=no, networks, purge_networks (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -203,7 +203,7 @@
|
|||||||
register: networks_4
|
register: networks_4
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks (less networks)
|
- name: networks_cli_compatible=no, networks (less networks)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -214,7 +214,7 @@
|
|||||||
register: networks_5
|
register: networks_5
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks, purge_networks (less networks)
|
- name: networks_cli_compatible=no, networks, purge_networks (less networks)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -228,7 +228,7 @@
|
|||||||
register: networks_6
|
register: networks_6
|
||||||
|
|
||||||
- name: networks_cli_compatible=no, networks, purge_networks (more networks)
|
- name: networks_cli_compatible=no, networks, purge_networks (more networks)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -243,13 +243,13 @@
|
|||||||
register: networks_7
|
register: networks_7
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# networks_1 has networks default, 'bridge', nname_1
|
# networks_1 has networks default, 'bridge', nname_1
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
@ -293,7 +293,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks specified
|
- name: networks_cli_compatible=yes, networks specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -308,7 +308,7 @@
|
|||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks specified
|
- name: networks_cli_compatible=yes, networks specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -320,14 +320,14 @@
|
|||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, empty networks list specified
|
- name: networks_cli_compatible=yes, empty networks list specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -337,7 +337,7 @@
|
|||||||
register: networks_3
|
register: networks_3
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, empty networks list specified
|
- name: networks_cli_compatible=yes, empty networks list specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -347,7 +347,7 @@
|
|||||||
register: networks_4
|
register: networks_4
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, empty networks list specified, purge_networks
|
- name: networks_cli_compatible=yes, empty networks list specified, purge_networks
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -360,14 +360,14 @@
|
|||||||
register: networks_5
|
register: networks_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks not specified
|
- name: networks_cli_compatible=yes, networks not specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -377,7 +377,7 @@
|
|||||||
register: networks_6
|
register: networks_6
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks not specified
|
- name: networks_cli_compatible=yes, networks not specified
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -386,7 +386,7 @@
|
|||||||
register: networks_7
|
register: networks_7
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks empty, purge_networks
|
- name: networks_cli_compatible=yes, networks empty, purge_networks
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -399,15 +399,15 @@
|
|||||||
register: networks_8
|
register: networks_8
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- debug: var=networks_3
|
- ansible.builtin.debug: var=networks_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# networks_1 has networks nname_1, nname_2
|
# networks_1 has networks nname_1, nname_2
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
@ -447,7 +447,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: create container with one network
|
- name: create container with one network
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -458,7 +458,7 @@
|
|||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: different networks, comparisons=ignore
|
- name: different networks, comparisons=ignore
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -472,7 +472,7 @@
|
|||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: less networks, comparisons=ignore
|
- name: less networks, comparisons=ignore
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -484,7 +484,7 @@
|
|||||||
register: networks_3
|
register: networks_3
|
||||||
|
|
||||||
- name: less networks, comparisons=allow_more_present
|
- name: less networks, comparisons=allow_more_present
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -496,7 +496,7 @@
|
|||||||
register: networks_4
|
register: networks_4
|
||||||
|
|
||||||
- name: different networks, comparisons=allow_more_present
|
- name: different networks, comparisons=allow_more_present
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -511,7 +511,7 @@
|
|||||||
register: networks_5
|
register: networks_5
|
||||||
|
|
||||||
- name: different networks, comparisons=strict
|
- name: different networks, comparisons=strict
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -525,7 +525,7 @@
|
|||||||
register: networks_6
|
register: networks_6
|
||||||
|
|
||||||
- name: less networks, comparisons=strict
|
- name: less networks, comparisons=strict
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -538,13 +538,13 @@
|
|||||||
register: networks_7
|
register: networks_7
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# networks_1 has networks nname_1
|
# networks_1 has networks nname_1
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
@ -580,7 +580,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: create container (stopped) with one network and fixed IP
|
- name: create container (stopped) with one network and fixed IP
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -593,7 +593,7 @@
|
|||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: create container (stopped) with one network and fixed IP (idempotent)
|
- name: create container (stopped) with one network and fixed IP (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -606,7 +606,7 @@
|
|||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: create container (stopped) with one network and fixed IP (different IPv4)
|
- name: create container (stopped) with one network and fixed IP (different IPv4)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -619,7 +619,7 @@
|
|||||||
register: networks_3
|
register: networks_3
|
||||||
|
|
||||||
- name: create container (stopped) with one network and fixed IP (different IPv6)
|
- name: create container (stopped) with one network and fixed IP (different IPv6)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -632,13 +632,13 @@
|
|||||||
register: networks_4
|
register: networks_4
|
||||||
|
|
||||||
- name: create container (started) with one network and fixed IP
|
- name: create container (started) with one network and fixed IP
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: networks_5
|
register: networks_5
|
||||||
|
|
||||||
- name: create container (started) with one network and fixed IP (different IPv4)
|
- name: create container (started) with one network and fixed IP (different IPv4)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -652,7 +652,7 @@
|
|||||||
register: networks_6
|
register: networks_6
|
||||||
|
|
||||||
- name: create container (started) with one network and fixed IP (different IPv6)
|
- name: create container (started) with one network and fixed IP (different IPv6)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -666,7 +666,7 @@
|
|||||||
register: networks_7
|
register: networks_7
|
||||||
|
|
||||||
- name: create container (started) with one network and fixed IP (idempotent)
|
- name: create container (started) with one network and fixed IP (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -679,13 +679,13 @@
|
|||||||
register: networks_8
|
register: networks_8
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
- networks_1.container.NetworkSettings.Networks[nname_3].IPAMConfig.IPv4Address == nname_3_ipv4_2
|
- networks_1.container.NetworkSettings.Networks[nname_3].IPAMConfig.IPv4Address == nname_3_ipv4_2
|
||||||
@ -733,7 +733,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Delete networks
|
- name: Delete networks
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ network_name }}"
|
name: "{{ network_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -4,11 +4,11 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-options' }}"
|
cname: "{{ cname_prefix ~ '-options' }}"
|
||||||
cname2: "{{ cname_prefix ~ '-options-h1' }}"
|
cname2: "{{ cname_prefix ~ '-options-h1' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname, cname2] }}"
|
cnames: "{{ cnames + [cname, cname2] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -16,7 +16,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: published_ports -- non-closing square bracket
|
- name: published_ports -- non-closing square bracket
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -27,7 +27,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: published_ports -- forgot square brackets for IPv6
|
- name: published_ports -- forgot square brackets for IPv6
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -38,7 +38,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: published_ports -- disallow hostnames
|
- name: published_ports -- disallow hostnames
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -48,7 +48,7 @@
|
|||||||
register: published_ports_3
|
register: published_ports_3
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- published_ports_1 is failed
|
- published_ports_1 is failed
|
||||||
- published_ports_1.msg == 'Cannot find closing "]" in input "[::1:2000:3000" for opening "[" at index 1!'
|
- published_ports_1.msg == 'Cannot find closing "]" in input "[::1:2000:3000" for opening "[" at index 1!'
|
||||||
@ -62,7 +62,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: published_ports -- port range
|
- name: published_ports -- port range
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -77,7 +77,7 @@
|
|||||||
register: published_ports_1
|
register: published_ports_1
|
||||||
|
|
||||||
- name: published_ports -- port range (idempotency)
|
- name: published_ports -- port range (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -92,7 +92,7 @@
|
|||||||
register: published_ports_2
|
register: published_ports_2
|
||||||
|
|
||||||
- name: published_ports -- port range (different range)
|
- name: published_ports -- port range (different range)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -107,13 +107,13 @@
|
|||||||
register: published_ports_3
|
register: published_ports_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- published_ports_1 is changed
|
- published_ports_1 is changed
|
||||||
- published_ports_2 is not changed
|
- published_ports_2 is not changed
|
||||||
@ -124,7 +124,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: published_ports -- one-element container port range
|
- name: published_ports -- one-element container port range
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -138,7 +138,7 @@
|
|||||||
register: published_ports_1
|
register: published_ports_1
|
||||||
|
|
||||||
- name: published_ports -- one-element container port range (idempotency)
|
- name: published_ports -- one-element container port range (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -152,7 +152,7 @@
|
|||||||
register: published_ports_2
|
register: published_ports_2
|
||||||
|
|
||||||
- name: published_ports -- one-element container port range (different range)
|
- name: published_ports -- one-element container port range (different range)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
@ -166,7 +166,7 @@
|
|||||||
register: published_ports_3
|
register: published_ports_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -175,7 +175,7 @@
|
|||||||
- '{{ cname2 }}'
|
- '{{ cname2 }}'
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- published_ports_1 is changed
|
- published_ports_1 is changed
|
||||||
- published_ports_2 is not changed
|
- published_ports_2 is not changed
|
||||||
@ -188,7 +188,7 @@
|
|||||||
- when: docker_host_info.host_info.ServerVersion is version('27.0.0', '<')
|
- when: docker_host_info.host_info.ServerVersion is version('27.0.0', '<')
|
||||||
block:
|
block:
|
||||||
- name: published_ports -- IPv6
|
- name: published_ports -- IPv6
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -199,7 +199,7 @@
|
|||||||
register: published_ports_1
|
register: published_ports_1
|
||||||
|
|
||||||
- name: published_ports -- IPv6 (idempotency)
|
- name: published_ports -- IPv6 (idempotency)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -210,7 +210,7 @@
|
|||||||
register: published_ports_2
|
register: published_ports_2
|
||||||
|
|
||||||
- name: published_ports -- IPv6 (different IP)
|
- name: published_ports -- IPv6 (different IP)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -221,7 +221,7 @@
|
|||||||
register: published_ports_3
|
register: published_ports_3
|
||||||
|
|
||||||
- name: published_ports -- IPv6 (hostname)
|
- name: published_ports -- IPv6 (hostname)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -233,13 +233,13 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- published_ports_1 is changed
|
- published_ports_1 is changed
|
||||||
- published_ports_2 is not changed
|
- published_ports_2 is not changed
|
||||||
@ -250,7 +250,7 @@
|
|||||||
## publish_all_ports ###############################################
|
## publish_all_ports ###############################################
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
publish_all_ports_test_cases:
|
publish_all_ports_test_cases:
|
||||||
- test_name: no_options
|
- test_name: no_options
|
||||||
changed: true
|
changed: true
|
||||||
@ -306,7 +306,7 @@
|
|||||||
changed: false
|
changed: false
|
||||||
|
|
||||||
- name: publish_all_ports ({{ test_case.test_name }})
|
- name: publish_all_ports ({{ test_case.test_name }})
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -319,7 +319,7 @@
|
|||||||
loop_var: test_case
|
loop_var: test_case
|
||||||
loop: "{{ publish_all_ports_test_cases }}"
|
loop: "{{ publish_all_ports_test_cases }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- publish_all_ports.results[index].changed == test_case.changed
|
- publish_all_ports.results[index].changed == test_case.changed
|
||||||
loop: "{{ publish_all_ports_test_cases }}"
|
loop: "{{ publish_all_ports_test_cases }}"
|
||||||
|
|||||||
@ -5,21 +5,21 @@
|
|||||||
|
|
||||||
# Regression test for https://github.com/ansible/ansible/pull/45700
|
# Regression test for https://github.com/ansible/ansible/pull/45700
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-45700' }}"
|
cname: "{{ cname_prefix ~ '-45700' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
- name: Stop container with a lot of invalid options
|
- name: Stop container with a lot of invalid options
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
force_kill: true
|
force_kill: true
|
||||||
# Some options with "invalid" values, which would
|
# Some options with "invalid" values, which would
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-hi' }}"
|
cname: "{{ cname_prefix ~ '-hi' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -15,7 +15,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Create container (check)
|
- name: Create container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Create container
|
- name: Create container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -32,7 +32,7 @@
|
|||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- name: Create container (idempotent)
|
- name: Create container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -40,7 +40,7 @@
|
|||||||
register: create_3
|
register: create_3
|
||||||
|
|
||||||
- name: Create container (idempotent check)
|
- name: Create container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -48,7 +48,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
register: create_4
|
register: create_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
- create_2 is changed
|
- create_2 is changed
|
||||||
@ -60,32 +60,32 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Start container (check)
|
- name: Start container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: start_1
|
register: start_1
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: start_2
|
register: start_2
|
||||||
|
|
||||||
- name: Start container (idempotent)
|
- name: Start container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: start_3
|
register: start_3
|
||||||
|
|
||||||
- name: Start container (idempotent check)
|
- name: Start container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: start_4
|
register: start_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- start_1 is changed
|
- start_1 is changed
|
||||||
- start_2 is changed
|
- start_2 is changed
|
||||||
@ -97,7 +97,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Present check for running container (check)
|
- name: Present check for running container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -106,14 +106,14 @@
|
|||||||
register: present_check_1
|
register: present_check_1
|
||||||
|
|
||||||
- name: Present check for running container
|
- name: Present check for running container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
register: present_check_2
|
register: present_check_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_check_1 is not changed
|
- present_check_1 is not changed
|
||||||
- present_check_2 is not changed
|
- present_check_2 is not changed
|
||||||
@ -123,13 +123,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Remove container (setup for starting from scratch)
|
- name: Remove container (setup for starting from scratch)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
- name: Start container from scratch (check)
|
- name: Start container from scratch (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
@ -139,7 +139,7 @@
|
|||||||
register: start_scratch_1
|
register: start_scratch_1
|
||||||
|
|
||||||
- name: Start container from scratch
|
- name: Start container from scratch
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
@ -148,7 +148,7 @@
|
|||||||
register: start_scratch_2
|
register: start_scratch_2
|
||||||
|
|
||||||
- name: Start container from scratch (idempotent)
|
- name: Start container from scratch (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
@ -157,7 +157,7 @@
|
|||||||
register: start_scratch_3
|
register: start_scratch_3
|
||||||
|
|
||||||
- name: Start container from scratch (idempotent check)
|
- name: Start container from scratch (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
@ -166,7 +166,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
register: start_scratch_4
|
register: start_scratch_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- start_scratch_1 is changed
|
- start_scratch_1 is changed
|
||||||
- start_scratch_2 is changed
|
- start_scratch_2 is changed
|
||||||
@ -178,7 +178,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Recreating container (created)
|
- name: Recreating container (created)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -187,7 +187,7 @@
|
|||||||
register: recreate_1
|
register: recreate_1
|
||||||
|
|
||||||
- name: Recreating container (created, recreate, check mode)
|
- name: Recreating container (created, recreate, check mode)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -198,7 +198,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Recreating container (created, recreate)
|
- name: Recreating container (created, recreate)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -208,7 +208,7 @@
|
|||||||
register: recreate_3
|
register: recreate_3
|
||||||
|
|
||||||
- name: Recreating container (started)
|
- name: Recreating container (started)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -217,7 +217,7 @@
|
|||||||
register: recreate_4
|
register: recreate_4
|
||||||
|
|
||||||
- name: Recreating container (started, recreate, check mode)
|
- name: Recreating container (started, recreate, check mode)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -229,7 +229,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Recreating container (started, recreate)
|
- name: Recreating container (started, recreate)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -240,18 +240,18 @@
|
|||||||
register: recreate_6
|
register: recreate_6
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- debug: var=recreate_1
|
- ansible.builtin.debug: var=recreate_1
|
||||||
- debug: var=recreate_3
|
- ansible.builtin.debug: var=recreate_3
|
||||||
- debug: var=recreate_4
|
- ansible.builtin.debug: var=recreate_4
|
||||||
- debug: var=recreate_6
|
- ansible.builtin.debug: var=recreate_6
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- recreate_2 is changed
|
- recreate_2 is changed
|
||||||
- recreate_3 is changed
|
- recreate_3 is changed
|
||||||
@ -269,7 +269,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Restarting
|
- name: Restarting
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -280,7 +280,7 @@
|
|||||||
register: restart_1
|
register: restart_1
|
||||||
|
|
||||||
- name: Restarting (restart, check mode)
|
- name: Restarting (restart, check mode)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -292,7 +292,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Restarting (restart)
|
- name: Restarting (restart)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -303,7 +303,7 @@
|
|||||||
register: restart_3
|
register: restart_3
|
||||||
|
|
||||||
- name: Restarting (verify volumes)
|
- name: Restarting (verify volumes)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -314,13 +314,13 @@
|
|||||||
register: restart_4
|
register: restart_4
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- restart_1 is changed
|
- restart_1 is changed
|
||||||
- restart_2 is changed
|
- restart_2 is changed
|
||||||
@ -333,7 +333,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Stop container (check)
|
- name: Stop container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -342,7 +342,7 @@
|
|||||||
register: stop_1
|
register: stop_1
|
||||||
|
|
||||||
- name: Stop container
|
- name: Stop container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -350,7 +350,7 @@
|
|||||||
register: stop_2
|
register: stop_2
|
||||||
|
|
||||||
- name: Stop container (idempotent)
|
- name: Stop container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -358,7 +358,7 @@
|
|||||||
register: stop_3
|
register: stop_3
|
||||||
|
|
||||||
- name: Stop container (idempotent check)
|
- name: Stop container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
@ -366,7 +366,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
register: stop_4
|
register: stop_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- stop_1 is changed
|
- stop_1 is changed
|
||||||
- stop_2 is changed
|
- stop_2 is changed
|
||||||
@ -378,32 +378,32 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Remove container (check)
|
- name: Remove container (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: remove_1
|
register: remove_1
|
||||||
|
|
||||||
- name: Remove container
|
- name: Remove container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: remove_2
|
register: remove_2
|
||||||
|
|
||||||
- name: Remove container (idempotent)
|
- name: Remove container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: remove_3
|
register: remove_3
|
||||||
|
|
||||||
- name: Remove container (idempotent check)
|
- name: Remove container (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: remove_4
|
register: remove_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_1 is changed
|
- remove_1 is changed
|
||||||
- remove_2 is changed
|
- remove_2 is changed
|
||||||
@ -415,14 +415,14 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Start container (setup for removing from running)
|
- name: Start container (setup for removing from running)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
- name: Remove container from running (check)
|
- name: Remove container from running (check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -430,28 +430,28 @@
|
|||||||
register: remove_from_running_1
|
register: remove_from_running_1
|
||||||
|
|
||||||
- name: Remove container from running
|
- name: Remove container from running
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
register: remove_from_running_2
|
register: remove_from_running_2
|
||||||
|
|
||||||
- name: Remove container from running (idempotent)
|
- name: Remove container from running (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
register: remove_from_running_3
|
register: remove_from_running_3
|
||||||
|
|
||||||
- name: Remove container from running (idempotent check)
|
- name: Remove container from running (idempotent check)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: remove_from_running_4
|
register: remove_from_running_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_from_running_1 is changed
|
- remove_from_running_1 is changed
|
||||||
- remove_from_running_2 is changed
|
- remove_from_running_2 is changed
|
||||||
|
|||||||
@ -4,20 +4,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-update' }}"
|
cname: "{{ cname_prefix ~ '-update' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
# We do not test cpuset_cpus and cpuset_mems since changing it fails if the system does
|
# We do not test cpuset_cpus and cpuset_mems since changing it fails if the system does
|
||||||
# not have 'enough' CPUs. We do not test kernel_memory since it is deprecated and fails.
|
# not have 'enough' CPUs. We do not test kernel_memory since it is deprecated and fails.
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
has_blkio_weight: true
|
has_blkio_weight: true
|
||||||
|
|
||||||
- name: Create container
|
- name: Create container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -37,16 +37,16 @@
|
|||||||
- when: create is failed
|
- when: create is failed
|
||||||
block:
|
block:
|
||||||
- name: Make sure container is not there
|
- name: Make sure container is not there
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- when: "'setting cgroup config for procHooks process caused: failed to write' in create.msg and 'io.bfq.weight' in create.msg"
|
- when: "'setting cgroup config for procHooks process caused: failed to write' in create.msg and 'io.bfq.weight' in create.msg"
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
has_blkio_weight: false
|
has_blkio_weight: false
|
||||||
|
|
||||||
- name: Create container again
|
- name: Create container again
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -63,11 +63,11 @@
|
|||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- when: "'setting cgroup config for procHooks process caused: failed to write' in create.msg and 'io.bfq.weight' in create.msg"
|
- when: "'setting cgroup config for procHooks process caused: failed to write' in create.msg and 'io.bfq.weight' in create.msg"
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
create: "{{ create_2 }}"
|
create: "{{ create_2 }}"
|
||||||
|
|
||||||
- name: Update values
|
- name: Update values
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -85,7 +85,7 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Update values again
|
- name: Update values again
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -103,7 +103,7 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Recreate container
|
- name: Recreate container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 20m"' # this will force re-creation
|
command: '/bin/sh -c "sleep 20m"' # this will force re-creation
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -122,14 +122,14 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
- name: Check general things
|
- name: Check general things
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create is changed
|
- create is changed
|
||||||
- update is changed
|
- update is changed
|
||||||
@ -144,7 +144,7 @@
|
|||||||
- create.container.Id != recreate.container.Id
|
- create.container.Id != recreate.container.Id
|
||||||
|
|
||||||
- name: Check diff for first update
|
- name: Check diff for first update
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# blkio_weight sometimes cannot be set, then we end up with 0 instead of the value we had
|
# blkio_weight sometimes cannot be set, then we end up with 0 instead of the value we had
|
||||||
- >-
|
- >-
|
||||||
@ -169,7 +169,7 @@
|
|||||||
- update.diff.after.restart_retries == 2
|
- update.diff.after.restart_retries == 2
|
||||||
|
|
||||||
- name: Check diff for second update
|
- name: Check diff for second update
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- >-
|
- >-
|
||||||
not has_blkio_weight or update2.diff.before.blkio_weight == 234 or ('Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in (create.warnings | default([])))
|
not has_blkio_weight or update2.diff.before.blkio_weight == 234 or ('Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in (create.warnings | default([])))
|
||||||
@ -194,7 +194,7 @@
|
|||||||
- update2.diff.after.restart_retries == 0
|
- update2.diff.after.restart_retries == 0
|
||||||
|
|
||||||
- name: Check diff for recreation
|
- name: Check diff for recreation
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- >-
|
- >-
|
||||||
not has_blkio_weight or recreate.diff.before.blkio_weight == 135 or ('Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in (create.warnings | default([])))
|
not has_blkio_weight or recreate.diff.before.blkio_weight == 135 or ('Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in (create.warnings | default([])))
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Gather facts on controller
|
- name: Gather facts on controller
|
||||||
setup:
|
ansible.builtin.setup:
|
||||||
gather_subset: '!all'
|
gather_subset: '!all'
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
delegate_facts: true
|
delegate_facts: true
|
||||||
@ -17,16 +17,16 @@
|
|||||||
|
|
||||||
# Create random name prefix (for containers)
|
# Create random name prefix (for containers)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using container name prefix {{ cname_prefix }}"
|
msg: "Using container name prefix {{ cname_prefix }}"
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -43,5 +43,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old Docker API version to run all docker_container_copy_into tests!"
|
- ansible.builtin.fail: msg="Too old Docker API version to run all docker_container_copy_into tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-c' }}"
|
cname: "{{ cname_prefix ~ '-c' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
# Create container
|
# Create container
|
||||||
|
|
||||||
- name: Create container
|
- name: Create container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command:
|
command:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -31,7 +31,7 @@
|
|||||||
# Do tests
|
# Do tests
|
||||||
|
|
||||||
- name: Copy content without mode
|
- name: Copy content without mode
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -40,7 +40,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is failed
|
- result is failed
|
||||||
- |-
|
- |-
|
||||||
@ -51,7 +51,7 @@
|
|||||||
######################### Copy
|
######################### Copy
|
||||||
|
|
||||||
- name: Copy content (check mode)
|
- name: Copy content (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -63,7 +63,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content (check mode, diff)
|
- name: Copy content (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -75,7 +75,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content (check mode)
|
- name: Copy content (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -85,7 +85,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode)
|
- name: Copy content (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -97,7 +97,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode, diff)
|
- name: Copy content (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -109,7 +109,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content (idempotent)
|
- name: Copy content (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -119,7 +119,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode, base 64)
|
- name: Copy content (idempotent, check mode, base 64)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: "{{ 'Content 1\n' | b64encode }}"
|
content: "{{ 'Content 1\n' | b64encode }}"
|
||||||
content_is_b64: true
|
content_is_b64: true
|
||||||
@ -131,7 +131,7 @@
|
|||||||
register: result_3b64
|
register: result_3b64
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode, base 64, diff)
|
- name: Copy content (idempotent, check mode, base 64, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: "{{ 'Content 1\n' | b64encode }}"
|
content: "{{ 'Content 1\n' | b64encode }}"
|
||||||
content_is_b64: true
|
content_is_b64: true
|
||||||
@ -143,7 +143,7 @@
|
|||||||
register: result_3b64_diff
|
register: result_3b64_diff
|
||||||
|
|
||||||
- name: Copy content (idempotent, base 64)
|
- name: Copy content (idempotent, base 64)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: "{{ 'Content 1\n' | b64encode }}"
|
content: "{{ 'Content 1\n' | b64encode }}"
|
||||||
content_is_b64: true
|
content_is_b64: true
|
||||||
@ -153,7 +153,7 @@
|
|||||||
register: result_4b64
|
register: result_4b64
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -165,7 +165,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy content (force, check mode)
|
- name: Copy content (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -178,7 +178,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy content (force, check mode, diff)
|
- name: Copy content (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -191,7 +191,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy content (force)
|
- name: Copy content (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -202,7 +202,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -214,7 +214,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Copy content (force=false, check mode)
|
- name: Copy content (force=false, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Some other content
|
Some other content
|
||||||
@ -229,7 +229,7 @@
|
|||||||
register: result_9
|
register: result_9
|
||||||
|
|
||||||
- name: Copy content (force=false, check mode, diff)
|
- name: Copy content (force=false, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Some other content
|
Some other content
|
||||||
@ -244,7 +244,7 @@
|
|||||||
register: result_9_diff
|
register: result_9_diff
|
||||||
|
|
||||||
- name: Copy content (force=false)
|
- name: Copy content (force=false)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Some other content
|
Some other content
|
||||||
@ -257,7 +257,7 @@
|
|||||||
register: result_10
|
register: result_10
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -269,7 +269,7 @@
|
|||||||
register: result_11
|
register: result_11
|
||||||
|
|
||||||
- name: Copy content (octal mode, mode_parse=modern)
|
- name: Copy content (octal mode, mode_parse=modern)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -283,7 +283,7 @@
|
|||||||
register: result_12
|
register: result_12
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -295,7 +295,7 @@
|
|||||||
register: result_13
|
register: result_13
|
||||||
|
|
||||||
- name: Copy content (octal mode, mode_parse=legacy)
|
- name: Copy content (octal mode, mode_parse=legacy)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -309,7 +309,7 @@
|
|||||||
register: result_14
|
register: result_14
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -321,7 +321,7 @@
|
|||||||
register: result_15
|
register: result_15
|
||||||
|
|
||||||
- name: Copy content (string mode, mode_parse=legacy)
|
- name: Copy content (string mode, mode_parse=legacy)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -333,7 +333,7 @@
|
|||||||
register: result_16
|
register: result_16
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -345,7 +345,7 @@
|
|||||||
register: result_17
|
register: result_17
|
||||||
|
|
||||||
- name: Copy content (string mode, mode_parse=octal_string_only)
|
- name: Copy content (string mode, mode_parse=octal_string_only)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -357,7 +357,7 @@
|
|||||||
register: result_18
|
register: result_18
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -369,7 +369,7 @@
|
|||||||
register: result_19
|
register: result_19
|
||||||
|
|
||||||
- name: Restore state for next tasks
|
- name: Restore state for next tasks
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -380,7 +380,7 @@
|
|||||||
group_id: 0
|
group_id: 0
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -444,7 +444,7 @@
|
|||||||
######################### Follow link - idempotence
|
######################### Follow link - idempotence
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -456,7 +456,7 @@
|
|||||||
register: result_0
|
register: result_0
|
||||||
|
|
||||||
- name: Copy content following link (check mode)
|
- name: Copy content following link (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -469,7 +469,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content following link (check mode, diff)
|
- name: Copy content following link (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -482,7 +482,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content following link
|
- name: Copy content following link
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -493,7 +493,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -506,7 +506,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content following link (force, check mode)
|
- name: Copy content following link (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -520,7 +520,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Copy content following link (force, check mode, diff)
|
- name: Copy content following link (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -534,7 +534,7 @@
|
|||||||
register: result_4_diff
|
register: result_4_diff
|
||||||
|
|
||||||
- name: Copy content following link (force)
|
- name: Copy content following link (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -546,7 +546,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -559,7 +559,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_0.stdout | b64decode == 'Content 1\n'
|
- result_0.stdout | b64decode == 'Content 1\n'
|
||||||
- result_0.stderr == "4 777 symbolic link 0 0 '/lnk' -> 'file'"
|
- result_0.stderr == "4 777 symbolic link 0 0 '/lnk' -> 'file'"
|
||||||
@ -593,7 +593,7 @@
|
|||||||
######################### Do not follow link - replace by file
|
######################### Do not follow link - replace by file
|
||||||
|
|
||||||
- name: Copy content not following link (check mode)
|
- name: Copy content not following link (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -606,7 +606,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content not following link (check mode, diff)
|
- name: Copy content not following link (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -619,7 +619,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content not following link
|
- name: Copy content not following link
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -630,7 +630,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content not following link (idempotent, check mode)
|
- name: Copy content not following link (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -642,7 +642,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content not following link (idempotent, check mode, diff)
|
- name: Copy content not following link (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -654,7 +654,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content not following link (idempotent)
|
- name: Copy content not following link (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -664,7 +664,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -676,7 +676,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy content not following link (force, check mode)
|
- name: Copy content not following link (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -689,7 +689,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy content not following link (force, check mode, diff)
|
- name: Copy content not following link (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -702,7 +702,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy content not following link (force)
|
- name: Copy content not following link (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -713,7 +713,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -725,7 +725,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- result_1.container_path == '/lnk'
|
- result_1.container_path == '/lnk'
|
||||||
@ -763,7 +763,7 @@
|
|||||||
######################### Replace directory by file
|
######################### Replace directory by file
|
||||||
|
|
||||||
- name: Copy content to replace directory (check mode)
|
- name: Copy content to replace directory (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -776,7 +776,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content to replace directory (check mode, diff)
|
- name: Copy content to replace directory (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -789,7 +789,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content to replace directory (check mode)
|
- name: Copy content to replace directory (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -800,7 +800,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content to replace directory (idempotent, check mode)
|
- name: Copy content to replace directory (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -812,7 +812,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content to replace directory (idempotent, check mode, diff)
|
- name: Copy content to replace directory (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -824,7 +824,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content to replace directory (idempotent)
|
- name: Copy content to replace directory (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -834,7 +834,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -846,7 +846,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- result_1.container_path == '/dir'
|
- result_1.container_path == '/dir'
|
||||||
@ -872,7 +872,7 @@
|
|||||||
######################### Modify
|
######################### Modify
|
||||||
|
|
||||||
- name: Copy content (changed, check mode)
|
- name: Copy content (changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -885,7 +885,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content (changed, check mode, diff)
|
- name: Copy content (changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -898,7 +898,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content (changed)
|
- name: Copy content (changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -909,7 +909,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -921,7 +921,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -937,7 +937,7 @@
|
|||||||
######################### Change mode
|
######################### Change mode
|
||||||
|
|
||||||
- name: Copy content (mode changed, check mode)
|
- name: Copy content (mode changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -950,7 +950,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content (mode changed, check mode, diff)
|
- name: Copy content (mode changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -963,7 +963,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content (mode changed)
|
- name: Copy content (mode changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -974,7 +974,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode)
|
- name: Copy content (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -987,7 +987,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode, diff)
|
- name: Copy content (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1000,7 +1000,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content (idempotent)
|
- name: Copy content (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1011,7 +1011,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -1023,7 +1023,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -1047,7 +1047,7 @@
|
|||||||
######################### Change owner and group
|
######################### Change owner and group
|
||||||
|
|
||||||
- name: Copy content (owner/group changed, check mode)
|
- name: Copy content (owner/group changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1062,7 +1062,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content (owner/group changed, check mode, diff)
|
- name: Copy content (owner/group changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1077,7 +1077,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content (owner/group changed)
|
- name: Copy content (owner/group changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1090,7 +1090,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode)
|
- name: Copy content (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1105,7 +1105,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content (idempotent, check mode, diff)
|
- name: Copy content (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1120,7 +1120,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content (idempotent)
|
- name: Copy content (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1133,7 +1133,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -1145,7 +1145,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy content (owner/group changed again, check mode)
|
- name: Copy content (owner/group changed again, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1160,7 +1160,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy content (owner/group changed again, check mode, diff)
|
- name: Copy content (owner/group changed again, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1175,7 +1175,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy content (owner/group changed again)
|
- name: Copy content (owner/group changed again)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -1188,7 +1188,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -1200,7 +1200,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -1234,13 +1234,13 @@
|
|||||||
######################### Operate with stopped container
|
######################### Operate with stopped container
|
||||||
|
|
||||||
- name: Stop container
|
- name: Stop container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
|
|
||||||
- name: Copy content (stopped container, check mode)
|
- name: Copy content (stopped container, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1254,7 +1254,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy content (stopped container, check mode, diff)
|
- name: Copy content (stopped container, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1268,7 +1268,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy content (stopped container)
|
- name: Copy content (stopped container)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1280,7 +1280,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy content (stopped container, idempotent, check mode)
|
- name: Copy content (stopped container, idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1294,7 +1294,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy content (stopped container, idempotent, check mode, diff)
|
- name: Copy content (stopped container, idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1308,7 +1308,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy content (stopped container, idempotent)
|
- name: Copy content (stopped container, idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1320,7 +1320,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Copy content (stopped container, no owner/group provided, should fail)
|
- name: Copy content (stopped container, no owner/group provided, should fail)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
@ -1331,12 +1331,12 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -1348,7 +1348,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -1375,7 +1375,7 @@
|
|||||||
# Cleanup
|
# Cleanup
|
||||||
|
|
||||||
- name: Remove container
|
- name: Remove container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-f' }}"
|
cname: "{{ cname_prefix ~ '-f' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
# Create container
|
# Create container
|
||||||
|
|
||||||
- name: Create container
|
- name: Create container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command:
|
command:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -30,14 +30,14 @@
|
|||||||
# Create files
|
# Create files
|
||||||
|
|
||||||
- name: Create file 1
|
- name: Create file 1
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ remote_tmp_dir }}/file_1'
|
dest: '{{ remote_tmp_dir }}/file_1'
|
||||||
content: |
|
content: |
|
||||||
Content 1
|
Content 1
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
|
|
||||||
- name: Create file 2
|
- name: Create file 2
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ remote_tmp_dir }}/file_2'
|
dest: '{{ remote_tmp_dir }}/file_2'
|
||||||
content: |-
|
content: |-
|
||||||
Content 2
|
Content 2
|
||||||
@ -45,7 +45,7 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
|
|
||||||
- name: Create link 1
|
- name: Create link 1
|
||||||
file:
|
ansible.builtin.file:
|
||||||
dest: '{{ remote_tmp_dir }}/link_1'
|
dest: '{{ remote_tmp_dir }}/link_1'
|
||||||
state: link
|
state: link
|
||||||
src: file_1
|
src: file_1
|
||||||
@ -53,7 +53,7 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
|
|
||||||
- name: Create link 2
|
- name: Create link 2
|
||||||
file:
|
ansible.builtin.file:
|
||||||
dest: '{{ remote_tmp_dir }}/link_2'
|
dest: '{{ remote_tmp_dir }}/link_2'
|
||||||
state: link
|
state: link
|
||||||
src: dead
|
src: dead
|
||||||
@ -67,7 +67,7 @@
|
|||||||
######################### Copy
|
######################### Copy
|
||||||
|
|
||||||
- name: Copy file (check mode)
|
- name: Copy file (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -76,7 +76,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file (check mode, diff)
|
- name: Copy file (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -85,14 +85,14 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file (check mode)
|
- name: Copy file (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode)
|
- name: Copy file (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -101,7 +101,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode, diff)
|
- name: Copy file (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -110,14 +110,14 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file (idempotent)
|
- name: Copy file (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -129,7 +129,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy file (force, check mode)
|
- name: Copy file (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -139,7 +139,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy file (force, check mode, diff)
|
- name: Copy file (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -149,7 +149,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy file (force)
|
- name: Copy file (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -157,7 +157,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -169,7 +169,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Copy file (force=false, check mode)
|
- name: Copy file (force=false, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -183,7 +183,7 @@
|
|||||||
register: result_9
|
register: result_9
|
||||||
|
|
||||||
- name: Copy file (force=false, check mode, diff)
|
- name: Copy file (force=false, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -197,7 +197,7 @@
|
|||||||
register: result_9_diff
|
register: result_9_diff
|
||||||
|
|
||||||
- name: Copy file (force=false)
|
- name: Copy file (force=false)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -209,7 +209,7 @@
|
|||||||
register: result_10
|
register: result_10
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -221,7 +221,7 @@
|
|||||||
register: result_11
|
register: result_11
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -265,7 +265,7 @@
|
|||||||
######################### Follow link - idempotence
|
######################### Follow link - idempotence
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -277,7 +277,7 @@
|
|||||||
register: result_0
|
register: result_0
|
||||||
|
|
||||||
- name: Copy file following link (check mode)
|
- name: Copy file following link (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -287,7 +287,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file following link (check mode, diff)
|
- name: Copy file following link (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -297,7 +297,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file following link
|
- name: Copy file following link
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -305,7 +305,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -318,7 +318,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file following link (force, check mode)
|
- name: Copy file following link (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -329,7 +329,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Copy file following link (force, check mode, diff)
|
- name: Copy file following link (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -340,7 +340,7 @@
|
|||||||
register: result_4_diff
|
register: result_4_diff
|
||||||
|
|
||||||
- name: Copy file following link (force)
|
- name: Copy file following link (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -349,7 +349,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -362,7 +362,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_0.stdout | b64decode == 'Content 1\n'
|
- result_0.stdout | b64decode == 'Content 1\n'
|
||||||
- result_0.stderr == "4 777 symbolic link 0 0 '/lnk' -> 'file'"
|
- result_0.stderr == "4 777 symbolic link 0 0 '/lnk' -> 'file'"
|
||||||
@ -396,7 +396,7 @@
|
|||||||
######################### Do not follow link - replace by file
|
######################### Do not follow link - replace by file
|
||||||
|
|
||||||
- name: Copy file not following link (check mode)
|
- name: Copy file not following link (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -406,7 +406,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file not following link (check mode, diff)
|
- name: Copy file not following link (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -416,7 +416,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file not following link
|
- name: Copy file not following link
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -424,7 +424,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file not following link (idempotent, check mode)
|
- name: Copy file not following link (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -433,7 +433,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file not following link (idempotent, check mode, diff)
|
- name: Copy file not following link (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -442,14 +442,14 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file not following link (idempotent)
|
- name: Copy file not following link (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -461,7 +461,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy file not following link (force, check mode)
|
- name: Copy file not following link (force, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -471,7 +471,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy file not following link (force, check mode, diff)
|
- name: Copy file not following link (force, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -481,7 +481,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy file not following link (force)
|
- name: Copy file not following link (force)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/lnk'
|
container_path: '/lnk'
|
||||||
@ -489,7 +489,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -501,7 +501,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- result_1.container_path == '/lnk'
|
- result_1.container_path == '/lnk'
|
||||||
@ -539,7 +539,7 @@
|
|||||||
######################### Replace directory by file
|
######################### Replace directory by file
|
||||||
|
|
||||||
- name: Copy file to replace directory (check mode)
|
- name: Copy file to replace directory (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
@ -549,7 +549,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file to replace directory (check mode, diff)
|
- name: Copy file to replace directory (check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
@ -559,7 +559,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file to replace directory (check mode)
|
- name: Copy file to replace directory (check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
@ -567,7 +567,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file to replace directory (idempotent, check mode)
|
- name: Copy file to replace directory (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
@ -576,7 +576,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file to replace directory (idempotent, check mode, diff)
|
- name: Copy file to replace directory (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
@ -585,14 +585,14 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file to replace directory (idempotent)
|
- name: Copy file to replace directory (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/dir'
|
container_path: '/dir'
|
||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -604,7 +604,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- result_1.container_path == '/dir'
|
- result_1.container_path == '/dir'
|
||||||
@ -630,7 +630,7 @@
|
|||||||
######################### Modify
|
######################### Modify
|
||||||
|
|
||||||
- name: Copy file (changed, check mode)
|
- name: Copy file (changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -639,7 +639,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file (changed, check mode, diff)
|
- name: Copy file (changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -648,14 +648,14 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file (changed)
|
- name: Copy file (changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -667,7 +667,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -683,7 +683,7 @@
|
|||||||
######################### Change mode
|
######################### Change mode
|
||||||
|
|
||||||
- name: Copy file (mode changed, check mode)
|
- name: Copy file (mode changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -694,7 +694,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file (mode changed, check mode, diff)
|
- name: Copy file (mode changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -705,7 +705,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file (mode changed)
|
- name: Copy file (mode changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -714,7 +714,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode)
|
- name: Copy file (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -725,7 +725,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode, diff)
|
- name: Copy file (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -736,7 +736,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file (idempotent)
|
- name: Copy file (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -745,7 +745,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -757,7 +757,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -781,7 +781,7 @@
|
|||||||
######################### Change owner and group
|
######################### Change owner and group
|
||||||
|
|
||||||
- name: Copy file (owner/group changed, check mode)
|
- name: Copy file (owner/group changed, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -794,7 +794,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file (owner/group changed, check mode, diff)
|
- name: Copy file (owner/group changed, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -807,7 +807,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file (owner/group changed)
|
- name: Copy file (owner/group changed)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -818,7 +818,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode)
|
- name: Copy file (idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -831,7 +831,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file (idempotent, check mode, diff)
|
- name: Copy file (idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -844,7 +844,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file (idempotent)
|
- name: Copy file (idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -855,7 +855,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -867,7 +867,7 @@
|
|||||||
register: result_5
|
register: result_5
|
||||||
|
|
||||||
- name: Copy file (owner/group changed again, check mode)
|
- name: Copy file (owner/group changed again, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -880,7 +880,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Copy file (owner/group changed again, check mode, diff)
|
- name: Copy file (owner/group changed again, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -893,7 +893,7 @@
|
|||||||
register: result_6_diff
|
register: result_6_diff
|
||||||
|
|
||||||
- name: Copy file (owner/group changed again)
|
- name: Copy file (owner/group changed again)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_2'
|
path: '{{ remote_tmp_dir }}/file_2'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -904,7 +904,7 @@
|
|||||||
register: result_7
|
register: result_7
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -916,7 +916,7 @@
|
|||||||
register: result_8
|
register: result_8
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -950,13 +950,13 @@
|
|||||||
######################### Operate with stopped container
|
######################### Operate with stopped container
|
||||||
|
|
||||||
- name: Stop container
|
- name: Stop container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: stopped
|
state: stopped
|
||||||
stop_timeout: 1
|
stop_timeout: 1
|
||||||
|
|
||||||
- name: Copy file (stopped container, check mode)
|
- name: Copy file (stopped container, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -969,7 +969,7 @@
|
|||||||
register: result_1
|
register: result_1
|
||||||
|
|
||||||
- name: Copy file (stopped container, check mode, diff)
|
- name: Copy file (stopped container, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -982,7 +982,7 @@
|
|||||||
register: result_1_diff
|
register: result_1_diff
|
||||||
|
|
||||||
- name: Copy file (stopped container)
|
- name: Copy file (stopped container)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -993,7 +993,7 @@
|
|||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Copy file (stopped container, idempotent, check mode)
|
- name: Copy file (stopped container, idempotent, check mode)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -1006,7 +1006,7 @@
|
|||||||
register: result_3
|
register: result_3
|
||||||
|
|
||||||
- name: Copy file (stopped container, idempotent, check mode, diff)
|
- name: Copy file (stopped container, idempotent, check mode, diff)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -1019,7 +1019,7 @@
|
|||||||
register: result_3_diff
|
register: result_3_diff
|
||||||
|
|
||||||
- name: Copy file (stopped container, idempotent)
|
- name: Copy file (stopped container, idempotent)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -1030,7 +1030,7 @@
|
|||||||
register: result_4
|
register: result_4
|
||||||
|
|
||||||
- name: Copy file (stopped container, no owner/group provided, should fail)
|
- name: Copy file (stopped container, no owner/group provided, should fail)
|
||||||
docker_container_copy_into:
|
community.docker.docker_container_copy_into:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
path: '{{ remote_tmp_dir }}/file_1'
|
path: '{{ remote_tmp_dir }}/file_1'
|
||||||
container_path: '/file'
|
container_path: '/file'
|
||||||
@ -1040,12 +1040,12 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
|
|
||||||
- name: Dump file
|
- name: Dump file
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: '{{ cname }}'
|
container: '{{ cname }}'
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -1057,7 +1057,7 @@
|
|||||||
register: result_6
|
register: result_6
|
||||||
|
|
||||||
- name: Check results
|
- name: Check results
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_1 is changed
|
- result_1 is changed
|
||||||
- "'diff' not in result_1"
|
- "'diff' not in result_1"
|
||||||
@ -1084,7 +1084,7 @@
|
|||||||
# Cleanup
|
# Cleanup
|
||||||
|
|
||||||
- name: Remove container
|
- name: Remove container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|||||||
@ -10,29 +10,29 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Create random container name
|
- name: Create random container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Make sure container is not there
|
- name: Make sure container is not there
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
- name: Execute in a non-present container
|
- name: Execute in a non-present container
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
command: "/bin/bash -c 'ls -a'"
|
command: "/bin/bash -c 'ls -a'"
|
||||||
register: result
|
register: result
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is failed
|
- result is failed
|
||||||
- "'Could not find container' in result.msg"
|
- "'Could not find container' in result.msg"
|
||||||
|
|
||||||
- name: Make sure container exists
|
- name: Make sure container exists
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -40,12 +40,12 @@
|
|||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
- name: Execute in a present container (command)
|
- name: Execute in a present container (command)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
command: "/bin/sh -c 'ls -a'"
|
command: "/bin/sh -c 'ls -a'"
|
||||||
register: result_cmd
|
register: result_cmd
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_cmd.rc == 0
|
- result_cmd.rc == 0
|
||||||
- "'stdout' in result_cmd"
|
- "'stdout' in result_cmd"
|
||||||
@ -54,7 +54,7 @@
|
|||||||
- "'stderr_lines' in result_cmd"
|
- "'stderr_lines' in result_cmd"
|
||||||
|
|
||||||
- name: Execute in a present container (argv)
|
- name: Execute in a present container (argv)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -62,7 +62,7 @@
|
|||||||
- ls -a
|
- ls -a
|
||||||
register: result_argv
|
register: result_argv
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_argv.rc == 0
|
- result_argv.rc == 0
|
||||||
- "'stdout' in result_argv"
|
- "'stdout' in result_argv"
|
||||||
@ -72,7 +72,7 @@
|
|||||||
- result_cmd.stdout == result_argv.stdout
|
- result_cmd.stdout == result_argv.stdout
|
||||||
|
|
||||||
- name: Execute in a present container (cat without stdin)
|
- name: Execute in a present container (cat without stdin)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -80,7 +80,7 @@
|
|||||||
- cat
|
- cat
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == ''
|
- result.stdout == ''
|
||||||
@ -89,7 +89,7 @@
|
|||||||
- result.stderr_lines == []
|
- result.stderr_lines == []
|
||||||
|
|
||||||
- name: Execute in a present container (cat with stdin)
|
- name: Execute in a present container (cat with stdin)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -99,7 +99,7 @@
|
|||||||
strip_empty_ends: false
|
strip_empty_ends: false
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == 'Hello world!\n'
|
- result.stdout == 'Hello world!\n'
|
||||||
@ -108,7 +108,7 @@
|
|||||||
- result.stderr_lines == []
|
- result.stderr_lines == []
|
||||||
|
|
||||||
- name: Execute in a present container (cat with stdin, no newline)
|
- name: Execute in a present container (cat with stdin, no newline)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -119,7 +119,7 @@
|
|||||||
strip_empty_ends: false
|
strip_empty_ends: false
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == 'Hello world!'
|
- result.stdout == 'Hello world!'
|
||||||
@ -128,7 +128,7 @@
|
|||||||
- result.stderr_lines == []
|
- result.stderr_lines == []
|
||||||
|
|
||||||
- name: Execute in a present container (cat with stdin, newline but stripping)
|
- name: Execute in a present container (cat with stdin, newline but stripping)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -139,7 +139,7 @@
|
|||||||
strip_empty_ends: true
|
strip_empty_ends: true
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == 'Hello world!'
|
- result.stdout == 'Hello world!'
|
||||||
@ -148,12 +148,12 @@
|
|||||||
- result.stderr_lines == []
|
- result.stderr_lines == []
|
||||||
|
|
||||||
- name: Prepare long string
|
- name: Prepare long string
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
very_long_string: "{{ 'something long ' * 10000 }}"
|
very_long_string: "{{ 'something long ' * 10000 }}"
|
||||||
very_long_string2: "{{ 'something else ' * 5000 }}"
|
very_long_string2: "{{ 'something else ' * 5000 }}"
|
||||||
|
|
||||||
- name: Execute in a present container (long stdin)
|
- name: Execute in a present container (long stdin)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -164,7 +164,7 @@
|
|||||||
{{ very_long_string2 }}
|
{{ very_long_string2 }}
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
@ -175,7 +175,7 @@
|
|||||||
- "'exec_id' not in result"
|
- "'exec_id' not in result"
|
||||||
|
|
||||||
- name: Execute in a present container (detached)
|
- name: Execute in a present container (detached)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -184,9 +184,9 @@
|
|||||||
detach: true
|
detach: true
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- debug: var=result
|
- ansible.builtin.debug: var=result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
- "'rc' not in result"
|
- "'rc' not in result"
|
||||||
@ -195,7 +195,7 @@
|
|||||||
- result.exec_id is string
|
- result.exec_id is string
|
||||||
|
|
||||||
- name: Execute in a present container (environment variable)
|
- name: Execute in a present container (environment variable)
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -207,7 +207,7 @@
|
|||||||
baz
|
baz
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == 'bar\nbaz'
|
- result.stdout == 'bar\nbaz'
|
||||||
@ -216,7 +216,7 @@
|
|||||||
- result.stderr_lines == ['bar baz']
|
- result.stderr_lines == ['bar baz']
|
||||||
|
|
||||||
- name: Check result of detach test
|
- name: Check result of detach test
|
||||||
docker_container_exec:
|
community.docker.docker_container_exec:
|
||||||
container: "{{ cname }}"
|
container: "{{ cname }}"
|
||||||
argv:
|
argv:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
@ -225,7 +225,7 @@
|
|||||||
strip_empty_ends: false
|
strip_empty_ends: false
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.rc == 0
|
- result.rc == 0
|
||||||
- result.stdout == 'Detach worked.\n'
|
- result.stdout == 'Detach worked.\n'
|
||||||
@ -235,12 +235,12 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_container_exec tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_container_exec tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -10,28 +10,28 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Create random container name
|
- name: Create random container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Make sure container is not there
|
- name: Make sure container is not there
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
- name: Inspect a non-present container
|
- name: Inspect a non-present container
|
||||||
docker_container_info:
|
community.docker.docker_container_info:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "not result.exists"
|
- "not result.exists"
|
||||||
- "'container' in result"
|
- "'container' in result"
|
||||||
- "result.container is none"
|
- "result.container is none"
|
||||||
|
|
||||||
- name: Make sure container exists
|
- name: Make sure container exists
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
@ -39,46 +39,46 @@
|
|||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
- name: Inspect a present container
|
- name: Inspect a present container
|
||||||
docker_container_info:
|
community.docker.docker_container_info:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
register: result
|
register: result
|
||||||
- name: Dump docker_container_info result
|
- name: Dump docker_container_info result
|
||||||
debug: var=result
|
ansible.builtin.debug: var=result
|
||||||
|
|
||||||
- name: "Comparison: use 'docker inspect'"
|
- name: "Comparison: use 'docker inspect'"
|
||||||
command: docker inspect "{{ cname }}"
|
ansible.builtin.command: docker inspect "{{ cname }}"
|
||||||
register: docker_inspect
|
register: docker_inspect
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
docker_inspect_result: "{{ docker_inspect.stdout | from_json }}"
|
docker_inspect_result: "{{ docker_inspect.stdout | from_json }}"
|
||||||
- name: Dump docker inspect result
|
- name: Dump docker inspect result
|
||||||
debug: var=docker_inspect_result
|
ansible.builtin.debug: var=docker_inspect_result
|
||||||
when: docker_inspect is not failed
|
when: docker_inspect is not failed
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.exists
|
- result.exists
|
||||||
- "'container' in result"
|
- "'container' in result"
|
||||||
- "result.container is truthy"
|
- "result.container is truthy"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "result.container == docker_inspect_result[0]"
|
- "result.container == docker_inspect_result[0]"
|
||||||
when: docker_inspect is not failed
|
when: docker_inspect is not failed
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'is too new. Maximum supported API version is' in docker_inspect.stderr"
|
- "'is too new. Maximum supported API version is' in docker_inspect.stderr"
|
||||||
when: docker_inspect is failed
|
when: docker_inspect is failed
|
||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_container_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_container_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -10,16 +10,16 @@
|
|||||||
|
|
||||||
# Create random name prefix (for containers, networks, ...)
|
# Create random name prefix (for containers, networks, ...)
|
||||||
- name: Create random container name prefix
|
- name: Create random container name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using container name prefix {{ cname_prefix }}"
|
msg: "Using container name prefix {{ cname_prefix }}"
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -36,5 +36,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run all docker_container tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run all docker_container tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ cname_prefix ~ '-hi' }}"
|
cname: "{{ cname_prefix ~ '-hi' }}"
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname] }}"
|
cnames: "{{ cnames + [cname] }}"
|
||||||
|
|
||||||
- name: Get current context
|
- name: Get current context
|
||||||
@ -15,7 +15,7 @@
|
|||||||
only_current: true
|
only_current: true
|
||||||
register: docker_current_context
|
register: docker_current_context
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- docker_current_context is not changed
|
- docker_current_context is not changed
|
||||||
# Some of the following tests will not be true on all machines, but they should be in CI:
|
# Some of the following tests will not be true on all machines, but they should be in CI:
|
||||||
@ -34,7 +34,7 @@
|
|||||||
group/community.docker.docker: "{{ docker_current_context.contexts[0].config }}"
|
group/community.docker.docker: "{{ docker_current_context.contexts[0].config }}"
|
||||||
block:
|
block:
|
||||||
- name: Create container
|
- name: Create container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -42,14 +42,14 @@
|
|||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Create container (idempotent)
|
- name: Create container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
- create_2 is not changed
|
- create_2 is not changed
|
||||||
@ -59,24 +59,24 @@
|
|||||||
cmd: docker inspect {{ cname }}
|
cmd: docker inspect {{ cname }}
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- (result.stdout | from_json) | length == 1
|
- (result.stdout | from_json) | length == 1
|
||||||
- (result.stdout | from_json)[0].State.Status == "created"
|
- (result.stdout | from_json)[0].State.Status == "created"
|
||||||
|
|
||||||
- name: Start container
|
- name: Start container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: start_1
|
register: start_1
|
||||||
|
|
||||||
- name: Start container (idempotent)
|
- name: Start container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: start_2
|
register: start_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- start_1 is changed
|
- start_1 is changed
|
||||||
- start_2 is not changed
|
- start_2 is not changed
|
||||||
@ -86,26 +86,26 @@
|
|||||||
cmd: docker inspect {{ cname }}
|
cmd: docker inspect {{ cname }}
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- (result.stdout | from_json) | length == 1
|
- (result.stdout | from_json) | length == 1
|
||||||
- (result.stdout | from_json)[0].State.Status == "running"
|
- (result.stdout | from_json)[0].State.Status == "running"
|
||||||
|
|
||||||
- name: Remove container
|
- name: Remove container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
register: remove_1
|
register: remove_1
|
||||||
|
|
||||||
- name: Remove container (idempotent)
|
- name: Remove container (idempotent)
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
register: remove_2
|
register: remove_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_1 is changed
|
- remove_1 is changed
|
||||||
- remove_2 is not changed
|
- remove_2 is not changed
|
||||||
@ -116,6 +116,6 @@
|
|||||||
register: result
|
register: result
|
||||||
failed_when: result.rc != 1
|
failed_when: result.rc != 1
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- (result.stdout | from_json) | length == 0
|
- (result.stdout | from_json) | length == 0
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
register: docker_contexts
|
register: docker_contexts
|
||||||
|
|
||||||
- name: Ensure that there are at least two contexts
|
- name: Ensure that there are at least two contexts
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- docker_contexts.contexts | length >= 2
|
- docker_contexts.contexts | length >= 2
|
||||||
|
|
||||||
@ -21,7 +21,7 @@
|
|||||||
name: podman
|
name: podman
|
||||||
register: docker_podman_context
|
register: docker_podman_context
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- docker_podman_context.contexts | length == 1
|
- docker_podman_context.contexts | length == 1
|
||||||
- docker_podman_context.contexts[0].name == 'podman'
|
- docker_podman_context.contexts[0].name == 'podman'
|
||||||
@ -38,11 +38,11 @@
|
|||||||
block:
|
block:
|
||||||
|
|
||||||
- name: Get info on Podman host
|
- name: Get info on Podman host
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Check for some Podman specific values
|
- name: Check for some Podman specific values
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output.host_info.ProductLicense == 'Apache-2.0'
|
- output.host_info.ProductLicense == 'Apache-2.0'
|
||||||
- >-
|
- >-
|
||||||
|
|||||||
@ -8,10 +8,10 @@
|
|||||||
# and should not be used as examples of how to write Ansible roles #
|
# and should not be used as examples of how to write Ansible roles #
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- include_tasks: test_host_info.yml
|
- ansible.builtin.include_tasks: test_host_info.yml
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_host_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_host_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|
||||||
- when: podman_cli_version is version('1.0.0', '>=')
|
- when: podman_cli_version is version('1.0.0', '>=')
|
||||||
@ -27,11 +27,11 @@
|
|||||||
block:
|
block:
|
||||||
|
|
||||||
- name: Get info on Podman host
|
- name: Get info on Podman host
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Check for some Podman specific values
|
- name: Check for some Podman specific values
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output.host_info.ProductLicense == 'Apache-2.0'
|
- output.host_info.ProductLicense == 'Apache-2.0'
|
||||||
- >-
|
- >-
|
||||||
|
|||||||
@ -4,21 +4,21 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random container/volume name
|
- name: Create random container/volume name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cname2: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
cname2: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
vname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
vname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using container names '{{ cname }}' and '{{ cname2 }}', and volume name '{{ vname }}'"
|
msg: "Using container names '{{ cname }}' and '{{ cname2 }}', and volume name '{{ vname }}'"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Get info on Docker host
|
- name: Get info on Docker host
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running
|
- name: assert reading docker host facts when docker is running
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output.host_info.Name is string
|
- output.host_info.Name is string
|
||||||
- output.containers is not defined
|
- output.containers is not defined
|
||||||
@ -30,26 +30,26 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Get info on Docker host with invalid api_version
|
- name: Get info on Docker host with invalid api_version
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
api_version: 1.999.999
|
api_version: 1.999.999
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: assert can_talk_is_docker is false
|
- name: assert can_talk_is_docker is false
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
- output.can_talk_to_docker is false
|
- output.can_talk_to_docker is false
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Get info on Docker host with invalid docker_host
|
- name: Get info on Docker host with invalid docker_host
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
docker_host: tcp://127.0.0.1:80
|
docker_host: tcp://127.0.0.1:80
|
||||||
register: output
|
register: output
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: assert can_talk_is_docker is false
|
- name: assert can_talk_is_docker is false
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- output is failed
|
- output is failed
|
||||||
- output.can_talk_to_docker is false
|
- output.can_talk_to_docker is false
|
||||||
@ -59,7 +59,7 @@
|
|||||||
# * image list is non-empty because the image of the container is there;
|
# * image list is non-empty because the image of the container is there;
|
||||||
# * network list is always non-empty (default networks).
|
# * network list is always non-empty (default networks).
|
||||||
- name: Create running container
|
- name: Create running container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: '/bin/sh -c "sleep 10m"'
|
command: '/bin/sh -c "sleep 10m"'
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
@ -70,7 +70,7 @@
|
|||||||
register: container_output
|
register: container_output
|
||||||
|
|
||||||
- name: Create running container
|
- name: Create running container
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname2 }}"
|
name: "{{ cname2 }}"
|
||||||
labels:
|
labels:
|
||||||
@ -79,27 +79,27 @@
|
|||||||
state: stopped
|
state: stopped
|
||||||
register: container2_output
|
register: container2_output
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- container_output is changed
|
- container_output is changed
|
||||||
- container2_output is changed
|
- container2_output is changed
|
||||||
|
|
||||||
- name: Create a volume
|
- name: Create a volume
|
||||||
docker_volume:
|
community.docker.docker_volume:
|
||||||
name: "{{ vname }}"
|
name: "{{ vname }}"
|
||||||
register: volume_output
|
register: volume_output
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- volume_output is changed
|
- volume_output is changed
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers
|
- name: Get info on Docker host and list containers
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list containers
|
- name: assert reading docker host facts when docker is running and list containers
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.networks is not defined'
|
- 'output.networks is not defined'
|
||||||
@ -110,18 +110,18 @@
|
|||||||
- 'output.containers[0].ImageID is not defined'
|
- 'output.containers[0].ImageID is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers matching filters (single label)
|
- name: Get info on Docker host and list containers matching filters (single label)
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
containers_filters:
|
containers_filters:
|
||||||
label: key1=value1
|
label: key1=value1
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert container is returned when filters are matched (single label)
|
- name: assert container is returned when filters are matched (single label)
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that: "output.containers | length == 1"
|
that: "output.containers | length == 1"
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers matching filters (multiple labels)
|
- name: Get info on Docker host and list containers matching filters (multiple labels)
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
containers_filters:
|
containers_filters:
|
||||||
label:
|
label:
|
||||||
@ -130,11 +130,11 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert container is returned when filters are matched (multiple labels)
|
- name: assert container is returned when filters are matched (multiple labels)
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that: "output.containers | length == 1"
|
that: "output.containers | length == 1"
|
||||||
|
|
||||||
- name: Get info on Docker host and do not list containers which do not match filters
|
- name: Get info on Docker host and do not list containers which do not match filters
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
containers_filters:
|
containers_filters:
|
||||||
label:
|
label:
|
||||||
@ -144,11 +144,11 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert no container is returned when filters are not matched
|
- name: assert no container is returned when filters are not matched
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that: "output.containers | length == 0"
|
that: "output.containers | length == 0"
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers matching filters (single label, not all containers)
|
- name: Get info on Docker host and list containers matching filters (single label, not all containers)
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
containers_all: false
|
containers_all: false
|
||||||
containers_filters:
|
containers_filters:
|
||||||
@ -156,7 +156,7 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers matching filters (single label, all containers)
|
- name: Get info on Docker host and list containers matching filters (single label, all containers)
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
containers_all: true
|
containers_all: true
|
||||||
containers_filters:
|
containers_filters:
|
||||||
@ -164,19 +164,19 @@
|
|||||||
register: output_all
|
register: output_all
|
||||||
|
|
||||||
- name: assert one resp. two container is returned
|
- name: assert one resp. two container is returned
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "output.containers | length == 1"
|
- "output.containers | length == 1"
|
||||||
- "output_all.containers | length == 2"
|
- "output_all.containers | length == 2"
|
||||||
|
|
||||||
- name: Get info on Docker host and list containers with verbose output
|
- name: Get info on Docker host and list containers with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
containers: true
|
containers: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list containers with verbose output
|
- name: assert reading docker host facts when docker is running and list containers with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.networks is not defined'
|
- 'output.networks is not defined'
|
||||||
@ -187,12 +187,12 @@
|
|||||||
- 'output.containers[0].ImageID is string'
|
- 'output.containers[0].ImageID is string'
|
||||||
|
|
||||||
- name: Get info on Docker host and list images
|
- name: Get info on Docker host and list images
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
images: true
|
images: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list images
|
- name: assert reading docker host facts when docker is running and list images
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -203,13 +203,13 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list images with verbose output
|
- name: Get info on Docker host and list images with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
images: true
|
images: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list images with verbose output
|
- name: assert reading docker host facts when docker is running and list images with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -220,12 +220,12 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list networks
|
- name: Get info on Docker host and list networks
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
networks: true
|
networks: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list networks
|
- name: assert reading docker host facts when docker is running and list networks
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -236,13 +236,13 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list networks with verbose output
|
- name: Get info on Docker host and list networks with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
networks: true
|
networks: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list networks with verbose output
|
- name: assert reading docker host facts when docker is running and list networks with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -253,12 +253,12 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list volumes
|
- name: Get info on Docker host and list volumes
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
volumes: true
|
volumes: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list volumes
|
- name: assert reading docker host facts when docker is running and list volumes
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -269,13 +269,13 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and list volumes with verbose output
|
- name: Get info on Docker host and list volumes with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
volumes: true
|
volumes: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and list volumes with verbose output
|
- name: assert reading docker host facts when docker is running and list volumes with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -286,12 +286,12 @@
|
|||||||
- 'output.disk_usage is not defined'
|
- 'output.disk_usage is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and get disk usage
|
- name: Get info on Docker host and get disk usage
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
disk_usage: true
|
disk_usage: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and get disk usage
|
- name: assert reading docker host facts when docker is running and get disk usage
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -304,13 +304,13 @@
|
|||||||
- 'output.disk_usage.Volumes is not defined'
|
- 'output.disk_usage.Volumes is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host and get disk usage with verbose output
|
- name: Get info on Docker host and get disk usage with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
disk_usage: true
|
disk_usage: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and get disk usage with verbose output
|
- name: assert reading docker host facts when docker is running and get disk usage with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers is not defined'
|
- 'output.containers is not defined'
|
||||||
@ -323,7 +323,7 @@
|
|||||||
- 'output.disk_usage.Volumes is sequence'
|
- 'output.disk_usage.Volumes is sequence'
|
||||||
|
|
||||||
- name: Get info on Docker host, disk usage and get all lists together
|
- name: Get info on Docker host, disk usage and get all lists together
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
volumes: true
|
volumes: true
|
||||||
containers: true
|
containers: true
|
||||||
networks: true
|
networks: true
|
||||||
@ -332,7 +332,7 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running, disk usage and get lists together
|
- name: assert reading docker host facts when docker is running, disk usage and get lists together
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers[0].Image is string'
|
- 'output.containers[0].Image is string'
|
||||||
@ -349,7 +349,7 @@
|
|||||||
- 'output.disk_usage.Volumes is not defined'
|
- 'output.disk_usage.Volumes is not defined'
|
||||||
|
|
||||||
- name: Get info on Docker host, disk usage and get all lists together with verbose output
|
- name: Get info on Docker host, disk usage and get all lists together with verbose output
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
volumes: true
|
volumes: true
|
||||||
containers: true
|
containers: true
|
||||||
networks: true
|
networks: true
|
||||||
@ -359,7 +359,7 @@
|
|||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker host facts when docker is running and get disk usage with verbose output
|
- name: assert reading docker host facts when docker is running and get disk usage with verbose output
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.host_info.Name is string'
|
- 'output.host_info.Name is string'
|
||||||
- 'output.containers[0].Image is string'
|
- 'output.containers[0].Image is string'
|
||||||
@ -377,7 +377,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Delete containers
|
- name: Delete containers
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -386,6 +386,6 @@
|
|||||||
- "{{ cname2 }}"
|
- "{{ cname2 }}"
|
||||||
|
|
||||||
- name: Delete volume
|
- name: Delete volume
|
||||||
docker_volume:
|
community.docker.docker_volume:
|
||||||
name: "{{ vname }}"
|
name: "{{ vname }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,23 +4,23 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- name: Create files directory
|
- name: Create files directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ remote_tmp_dir }}/files'
|
path: '{{ remote_tmp_dir }}/files'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Template files
|
- name: Template files
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: '{{ item }}'
|
src: '{{ item }}'
|
||||||
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
||||||
loop:
|
loop:
|
||||||
@ -31,7 +31,7 @@
|
|||||||
- StagedDockerfile
|
- StagedDockerfile
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -39,12 +39,12 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -52,5 +52,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -8,24 +8,24 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
register: absent_1
|
register: absent_1
|
||||||
|
|
||||||
- name: Make sure image is not there (idempotency)
|
- name: Make sure image is not there (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_2
|
register: absent_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- absent_2 is not changed
|
- absent_2 is not changed
|
||||||
|
|
||||||
- name: Make sure image is there
|
- name: Make sure image is there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
state: present
|
state: present
|
||||||
source: pull
|
source: pull
|
||||||
@ -34,7 +34,7 @@
|
|||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- name: Make sure image is there (idempotent)
|
- name: Make sure image is there (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
state: present
|
state: present
|
||||||
source: pull
|
source: pull
|
||||||
@ -42,32 +42,32 @@
|
|||||||
platform: amd64
|
platform: amd64
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1 is changed
|
- present_1 is changed
|
||||||
- present_2 is not changed
|
- present_2 is not changed
|
||||||
|
|
||||||
- name: Make sure tag is not there
|
- name: Make sure tag is not there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world_base }}:alias"
|
name: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Tag image with alias
|
- name: Tag image with alias
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
register: tag_1
|
register: tag_1
|
||||||
|
|
||||||
- name: Tag image with alias (idempotent)
|
- name: Tag image with alias (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
register: tag_2
|
register: tag_2
|
||||||
|
|
||||||
- name: Tag image with alias (force, still idempotent)
|
- name: Tag image with alias (force, still idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
@ -75,13 +75,13 @@
|
|||||||
register: tag_3
|
register: tag_3
|
||||||
|
|
||||||
- name: Tag image with ID instead of name
|
- name: Tag image with ID instead of name
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ present_1.image.Id }}"
|
name: "{{ present_1.image.Id }}"
|
||||||
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
repository: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
register: tag_4
|
register: tag_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_1 is changed
|
- tag_1 is changed
|
||||||
- tag_2 is not changed
|
- tag_2 is not changed
|
||||||
@ -89,12 +89,12 @@
|
|||||||
- tag_4 is not changed
|
- tag_4 is not changed
|
||||||
|
|
||||||
- name: Cleanup alias tag
|
- name: Cleanup alias tag
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world_base }}:alias"
|
name: "{{ docker_test_image_hello_world_base }}:alias"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Tag image with ID instead of name (use ID for repository, must fail)
|
- name: Tag image with ID instead of name (use ID for repository, must fail)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ present_1.image.Id }}"
|
repository: "{{ present_1.image.Id }}"
|
||||||
@ -102,7 +102,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Push image with ID (must fail)
|
- name: Push image with ID (must fail)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: local
|
source: local
|
||||||
name: "{{ present_1.image.Id }}"
|
name: "{{ present_1.image.Id }}"
|
||||||
push: true
|
push: true
|
||||||
@ -110,7 +110,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Pull image ID (must fail)
|
- name: Pull image ID (must fail)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: pull
|
source: pull
|
||||||
name: "{{ present_1.image.Id }}"
|
name: "{{ present_1.image.Id }}"
|
||||||
force_source: true
|
force_source: true
|
||||||
@ -118,7 +118,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Build image ID (must fail)
|
- name: Build image ID (must fail)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
source: build
|
source: build
|
||||||
name: "{{ present_1.image.Id }}"
|
name: "{{ present_1.image.Id }}"
|
||||||
build:
|
build:
|
||||||
@ -127,7 +127,7 @@
|
|||||||
register: fail_4
|
register: fail_4
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- fail_1 is failed
|
- fail_1 is failed
|
||||||
- "'`repository` must not be an image ID' in fail_1.msg"
|
- "'`repository` must not be an image ID' in fail_1.msg"
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname: "{{ name_prefix ~ '-options' }}"
|
iname: "{{ name_prefix ~ '-options' }}"
|
||||||
|
|
||||||
- name: Determining pushed image names
|
- name: Determining pushed image names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
hello_world_image_base: "{{ registry_address | default('localhost') }}/test/hello-world"
|
hello_world_image_base: "{{ registry_address | default('localhost') }}/test/hello-world"
|
||||||
test_image_base: "{{ registry_address | default('localhost') }}/test/{{ iname }}"
|
test_image_base: "{{ registry_address | default('localhost') }}/test/{{ iname }}"
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: "{{ inames + [iname, test_image_base ~ ':latest', test_image_base ~ ':other', hello_world_image_base ~ ':latest', hello_world_image_base ~ ':newtag', hello_world_image_base ~ ':newtag2'] }}"
|
inames: "{{ inames + [iname, test_image_base ~ ':latest', test_image_base ~ ':other', hello_world_image_base ~ ':latest', hello_world_image_base ~ ':newtag', hello_world_image_base ~ ':newtag2'] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -24,18 +24,18 @@
|
|||||||
when: registry_address is defined
|
when: registry_address is defined
|
||||||
block:
|
block:
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: Make sure we have {{ docker_test_image_hello_world }}
|
- name: Make sure we have {{ docker_test_image_hello_world }}
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
source: pull
|
source: pull
|
||||||
|
|
||||||
- name: Push image to test registry
|
- name: Push image to test registry
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ hello_world_image_base }}:latest"
|
repository: "{{ hello_world_image_base }}:latest"
|
||||||
push: true
|
push: true
|
||||||
@ -43,7 +43,7 @@
|
|||||||
register: push_1
|
register: push_1
|
||||||
|
|
||||||
- name: Push image to test registry (idempotent)
|
- name: Push image to test registry (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ hello_world_image_base }}:latest"
|
repository: "{{ hello_world_image_base }}:latest"
|
||||||
push: true
|
push: true
|
||||||
@ -51,7 +51,7 @@
|
|||||||
register: push_2
|
register: push_2
|
||||||
|
|
||||||
- name: Push image to test registry (force, still idempotent)
|
- name: Push image to test registry (force, still idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ hello_world_image_base }}:latest"
|
repository: "{{ hello_world_image_base }}:latest"
|
||||||
push: true
|
push: true
|
||||||
@ -59,48 +59,48 @@
|
|||||||
force_tag: true
|
force_tag: true
|
||||||
register: push_3
|
register: push_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- push_1 is changed
|
- push_1 is changed
|
||||||
- push_2 is not changed
|
- push_2 is not changed
|
||||||
- push_3 is not changed
|
- push_3 is not changed
|
||||||
|
|
||||||
- name: Get facts of local image
|
- name: Get facts of local image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_1
|
register: facts_1
|
||||||
|
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: Get facts of local image (absent)
|
- name: Get facts of local image (absent)
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_2
|
register: facts_2
|
||||||
|
|
||||||
- name: Pull image from test registry
|
- name: Pull image from test registry
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
state: present
|
state: present
|
||||||
source: pull
|
source: pull
|
||||||
register: pull_1
|
register: pull_1
|
||||||
|
|
||||||
- name: Pull image from test registry (idempotency)
|
- name: Pull image from test registry (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
state: present
|
state: present
|
||||||
source: pull
|
source: pull
|
||||||
register: pull_2
|
register: pull_2
|
||||||
|
|
||||||
- name: Get facts of local image (present)
|
- name: Get facts of local image (present)
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_3
|
register: facts_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_1 is changed
|
- pull_1 is changed
|
||||||
- pull_2 is not changed
|
- pull_2 is not changed
|
||||||
@ -109,7 +109,7 @@
|
|||||||
- facts_3.images | length == 1
|
- facts_3.images | length == 1
|
||||||
|
|
||||||
- name: Pull image from test registry (with digest)
|
- name: Pull image from test registry (with digest)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}@{{ facts_3.images[0].RepoDigests[0] | regex_replace('.*@', '') }}"
|
name: "{{ hello_world_image_base }}@{{ facts_3.images[0].RepoDigests[0] | regex_replace('.*@', '') }}"
|
||||||
state: present
|
state: present
|
||||||
source: pull
|
source: pull
|
||||||
@ -117,19 +117,19 @@
|
|||||||
register: pull_digest
|
register: pull_digest
|
||||||
|
|
||||||
- name: Make sure that changed is still false
|
- name: Make sure that changed is still false
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_digest is not changed
|
- pull_digest is not changed
|
||||||
|
|
||||||
- name: Tag different image with new tag
|
- name: Tag different image with new tag
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_alpine_different }}"
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
repository: "{{ hello_world_image_base }}:newtag"
|
repository: "{{ hello_world_image_base }}:newtag"
|
||||||
push: false
|
push: false
|
||||||
source: pull
|
source: pull
|
||||||
|
|
||||||
- name: Push different image with new tag
|
- name: Push different image with new tag
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}"
|
name: "{{ hello_world_image_base }}"
|
||||||
repository: "{{ hello_world_image_base }}"
|
repository: "{{ hello_world_image_base }}"
|
||||||
tag: newtag
|
tag: newtag
|
||||||
@ -138,7 +138,7 @@
|
|||||||
register: push_1_different
|
register: push_1_different
|
||||||
|
|
||||||
- name: Push different image with new tag (idempotent)
|
- name: Push different image with new tag (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}"
|
name: "{{ hello_world_image_base }}"
|
||||||
repository: "{{ hello_world_image_base }}"
|
repository: "{{ hello_world_image_base }}"
|
||||||
tag: newtag
|
tag: newtag
|
||||||
@ -146,20 +146,20 @@
|
|||||||
source: local
|
source: local
|
||||||
register: push_2_different
|
register: push_2_different
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- push_1_different is changed
|
- push_1_different is changed
|
||||||
- push_2_different is not changed
|
- push_2_different is not changed
|
||||||
|
|
||||||
- name: Tag same image with new tag
|
- name: Tag same image with new tag
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_alpine_different }}"
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
repository: "{{ hello_world_image_base }}:newtag2"
|
repository: "{{ hello_world_image_base }}:newtag2"
|
||||||
push: false
|
push: false
|
||||||
source: pull
|
source: pull
|
||||||
|
|
||||||
- name: Push same image with new tag
|
- name: Push same image with new tag
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}"
|
name: "{{ hello_world_image_base }}"
|
||||||
repository: "{{ hello_world_image_base }}"
|
repository: "{{ hello_world_image_base }}"
|
||||||
tag: newtag2
|
tag: newtag2
|
||||||
@ -168,7 +168,7 @@
|
|||||||
register: push_1_same
|
register: push_1_same
|
||||||
|
|
||||||
- name: Push same image with new tag (idempotent)
|
- name: Push same image with new tag (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_image_base }}"
|
name: "{{ hello_world_image_base }}"
|
||||||
repository: "{{ hello_world_image_base }}"
|
repository: "{{ hello_world_image_base }}"
|
||||||
tag: newtag2
|
tag: newtag2
|
||||||
@ -176,7 +176,7 @@
|
|||||||
source: local
|
source: local
|
||||||
register: push_2_same
|
register: push_2_same
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# NOTE: This should be:
|
# NOTE: This should be:
|
||||||
# - push_1_same is changed
|
# - push_1_same is changed
|
||||||
@ -202,13 +202,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ test_image_base }}:latest"
|
name: "{{ test_image_base }}:latest"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: repository
|
- name: repository
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -218,28 +218,28 @@
|
|||||||
register: repository_1
|
register: repository_1
|
||||||
|
|
||||||
- name: repository (idempotent)
|
- name: repository (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
repository: "{{ test_image_base }}"
|
repository: "{{ test_image_base }}"
|
||||||
source: local
|
source: local
|
||||||
register: repository_2
|
register: repository_2
|
||||||
|
|
||||||
- name: repository, tag with ID
|
- name: repository, tag with ID
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ repository_1.image.Id }}"
|
name: "{{ repository_1.image.Id }}"
|
||||||
repository: "{{ test_image_base }}:other"
|
repository: "{{ test_image_base }}:other"
|
||||||
source: local
|
source: local
|
||||||
register: repository_3
|
register: repository_3
|
||||||
|
|
||||||
- name: repository, tag with ID (idempotent)
|
- name: repository, tag with ID (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ repository_1.image.Id }}"
|
name: "{{ repository_1.image.Id }}"
|
||||||
repository: "{{ test_image_base }}:other"
|
repository: "{{ test_image_base }}:other"
|
||||||
source: local
|
source: local
|
||||||
force_tag: true
|
force_tag: true
|
||||||
register: repository_4
|
register: repository_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- repository_1 is changed
|
- repository_1 is changed
|
||||||
- repository_2 is not changed
|
- repository_2 is not changed
|
||||||
@ -247,16 +247,16 @@
|
|||||||
- repository_4 is not changed
|
- repository_4 is not changed
|
||||||
|
|
||||||
- name: Get facts of image
|
- name: Get facts of image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ test_image_base }}:latest"
|
name: "{{ test_image_base }}:latest"
|
||||||
register: facts_1
|
register: facts_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ test_image_base }}:latest"
|
name: "{{ test_image_base }}:latest"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- facts_1.images | length == 1
|
- facts_1.images | length == 1
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname: "{{ name_prefix ~ '-options' }}"
|
iname: "{{ name_prefix ~ '-options' }}"
|
||||||
iname_1: "{{ name_prefix ~ '-options-1' }}"
|
iname_1: "{{ name_prefix ~ '-options-1' }}"
|
||||||
hello_world_alt: "{{ name_prefix }}-hello-world-alt:v1.2.3-foo"
|
hello_world_alt: "{{ name_prefix }}-hello-world-alt:v1.2.3-foo"
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: "{{ inames + [iname, iname_1, hello_world_alt] }}"
|
inames: "{{ inames + [iname, iname_1, hello_world_alt] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -18,13 +18,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: buildargs
|
- name: buildargs
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -40,7 +40,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: buildargs (idempotency)
|
- name: buildargs (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -56,12 +56,12 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- buildargs_1 is changed
|
- buildargs_1 is changed
|
||||||
- buildargs_2 is not failed and buildargs_2 is not changed
|
- buildargs_2 is not failed and buildargs_2 is not changed
|
||||||
@ -71,7 +71,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: container_limits (Failed due to min memory limit)
|
- name: container_limits (Failed due to min memory limit)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -83,7 +83,7 @@
|
|||||||
register: container_limits_1
|
register: container_limits_1
|
||||||
|
|
||||||
- name: container_limits
|
- name: container_limits
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -95,12 +95,12 @@
|
|||||||
register: container_limits_2
|
register: container_limits_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
# It *sometimes* happens that the first task does not fail.
|
# It *sometimes* happens that the first task does not fail.
|
||||||
# For now, we work around this by
|
# For now, we work around this by
|
||||||
@ -116,7 +116,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: dockerfile
|
- name: dockerfile
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -126,12 +126,12 @@
|
|||||||
register: dockerfile_1
|
register: dockerfile_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- dockerfile_1 is changed
|
- dockerfile_1 is changed
|
||||||
- "('FROM ' ~ docker_test_image_alpine) in dockerfile_1.stdout"
|
- "('FROM ' ~ docker_test_image_alpine) in dockerfile_1.stdout"
|
||||||
@ -142,13 +142,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: build.platform
|
- name: build.platform
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -159,7 +159,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: build.platform (idempotency)
|
- name: build.platform (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -170,12 +170,12 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- platform_1 is changed
|
- platform_1 is changed
|
||||||
- platform_2 is not failed and platform_2 is not changed
|
- platform_2 is not failed and platform_2 is not changed
|
||||||
@ -185,7 +185,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build an image
|
- name: Build an image
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -193,7 +193,7 @@
|
|||||||
source: build
|
source: build
|
||||||
|
|
||||||
- name: force (changed)
|
- name: force (changed)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -204,7 +204,7 @@
|
|||||||
register: force_1
|
register: force_1
|
||||||
|
|
||||||
- name: force (unchanged)
|
- name: force (unchanged)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -215,12 +215,12 @@
|
|||||||
register: force_2
|
register: force_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- force_1 is changed
|
- force_1 is changed
|
||||||
- force_2 is not changed
|
- force_2 is not changed
|
||||||
@ -230,103 +230,103 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Archive image
|
- name: Archive image
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
archive_path: "{{ remote_tmp_dir }}/image.tar"
|
archive_path: "{{ remote_tmp_dir }}/image.tar"
|
||||||
source: pull
|
source: pull
|
||||||
register: archive_image
|
register: archive_image
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- archive_image is changed
|
- archive_image is changed
|
||||||
|
|
||||||
- name: Copy archive because we will mutate it but other tests need the original
|
- name: Copy archive because we will mutate it but other tests need the original
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
remote_src: true
|
remote_src: true
|
||||||
src: "{{ remote_tmp_dir }}/image.tar"
|
src: "{{ remote_tmp_dir }}/image.tar"
|
||||||
dest: "{{ remote_tmp_dir }}/image_mutated.tar"
|
dest: "{{ remote_tmp_dir }}/image_mutated.tar"
|
||||||
|
|
||||||
- name: Archive image again (idempotent)
|
- name: Archive image again (idempotent)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
||||||
source: local
|
source: local
|
||||||
register: archive_image_2
|
register: archive_image_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- archive_image_2 is not changed
|
- archive_image_2 is not changed
|
||||||
|
|
||||||
- name: Archive image 3rd time, should overwrite due to different id
|
- name: Archive image 3rd time, should overwrite due to different id
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_alpine_different }}"
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
||||||
source: pull
|
source: pull
|
||||||
register: archive_image_3
|
register: archive_image_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- archive_image_3 is changed
|
- archive_image_3 is changed
|
||||||
|
|
||||||
- name: Reset archive
|
- name: Reset archive
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
remote_src: true
|
remote_src: true
|
||||||
src: "{{ remote_tmp_dir }}/image.tar"
|
src: "{{ remote_tmp_dir }}/image.tar"
|
||||||
dest: "{{ remote_tmp_dir }}/image_mutated.tar"
|
dest: "{{ remote_tmp_dir }}/image_mutated.tar"
|
||||||
|
|
||||||
- name: Tag image with different name
|
- name: Tag image with different name
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository: "{{ hello_world_alt }}"
|
repository: "{{ hello_world_alt }}"
|
||||||
source: local
|
source: local
|
||||||
|
|
||||||
- name: Archive image 4th time, should overwrite due to different name even when ID is same
|
- name: Archive image 4th time, should overwrite due to different name even when ID is same
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ hello_world_alt }}"
|
name: "{{ hello_world_alt }}"
|
||||||
# Tagged as docker_test_image_hello_world but has same hash/id (before this task overwrites it)
|
# Tagged as docker_test_image_hello_world but has same hash/id (before this task overwrites it)
|
||||||
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
archive_path: "{{ remote_tmp_dir }}/image_mutated.tar"
|
||||||
source: local
|
source: local
|
||||||
register: archive_image_4
|
register: archive_image_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- archive_image_4 is changed
|
- archive_image_4 is changed
|
||||||
|
|
||||||
# This is the test that needs the original, non-mutated archive
|
# This is the test that needs the original, non-mutated archive
|
||||||
- name: Archive image by ID
|
- name: Archive image by ID
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ archive_image.image.Id }}"
|
name: "{{ archive_image.image.Id }}"
|
||||||
archive_path: "{{ remote_tmp_dir }}/image_id.tar"
|
archive_path: "{{ remote_tmp_dir }}/image_id.tar"
|
||||||
source: local
|
source: local
|
||||||
register: archive_image_id
|
register: archive_image_id
|
||||||
|
|
||||||
- name: Create invalid archive
|
- name: Create invalid archive
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "{{ remote_tmp_dir }}/image-invalid.tar"
|
dest: "{{ remote_tmp_dir }}/image-invalid.tar"
|
||||||
content: "this is not a valid image"
|
content: "this is not a valid image"
|
||||||
|
|
||||||
- name: remove image
|
- name: remove image
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: load image (changed)
|
- name: load image (changed)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
load_path: "{{ remote_tmp_dir }}/image.tar"
|
load_path: "{{ remote_tmp_dir }}/image.tar"
|
||||||
source: load
|
source: load
|
||||||
register: load_image
|
register: load_image
|
||||||
|
|
||||||
- name: load image (idempotency)
|
- name: load image (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
load_path: "{{ remote_tmp_dir }}/image.tar"
|
load_path: "{{ remote_tmp_dir }}/image.tar"
|
||||||
source: load
|
source: load
|
||||||
register: load_image_1
|
register: load_image_1
|
||||||
|
|
||||||
- name: load image (wrong name)
|
- name: load image (wrong name)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: foo:bar
|
name: foo:bar
|
||||||
load_path: "{{ remote_tmp_dir }}/image.tar"
|
load_path: "{{ remote_tmp_dir }}/image.tar"
|
||||||
source: load
|
source: load
|
||||||
@ -334,7 +334,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: load image (invalid image)
|
- name: load image (invalid image)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: foo:bar
|
name: foo:bar
|
||||||
load_path: "{{ remote_tmp_dir }}/image-invalid.tar"
|
load_path: "{{ remote_tmp_dir }}/image-invalid.tar"
|
||||||
source: load
|
source: load
|
||||||
@ -342,13 +342,13 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: load image (ID, idempotency)
|
- name: load image (ID, idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ archive_image.image.Id }}"
|
name: "{{ archive_image.image.Id }}"
|
||||||
load_path: "{{ remote_tmp_dir }}/image_id.tar"
|
load_path: "{{ remote_tmp_dir }}/image_id.tar"
|
||||||
source: load
|
source: load
|
||||||
register: load_image_4
|
register: load_image_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- load_image is changed
|
- load_image is changed
|
||||||
- archive_image['image']['Id'] == load_image['image']['Id']
|
- archive_image['image']['Id'] == load_image['image']['Id']
|
||||||
@ -365,7 +365,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image
|
- name: Build image
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -374,7 +374,7 @@
|
|||||||
register: path_1
|
register: path_1
|
||||||
|
|
||||||
- name: Build image (idempotency)
|
- name: Build image (idempotency)
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -383,12 +383,12 @@
|
|||||||
register: path_2
|
register: path_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- path_1 is changed
|
- path_1 is changed
|
||||||
- path_2 is not changed
|
- path_2 is not changed
|
||||||
@ -398,7 +398,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build multi-stage image
|
- name: Build multi-stage image
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -409,12 +409,12 @@
|
|||||||
register: dockerfile_2
|
register: dockerfile_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- dockerfile_2 is changed
|
- dockerfile_2 is changed
|
||||||
- dockerfile_2.image.Config.WorkingDir == '/first'
|
- dockerfile_2.image.Config.WorkingDir == '/first'
|
||||||
@ -424,7 +424,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with custom etc_hosts
|
- name: Build image with custom etc_hosts
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -436,12 +436,12 @@
|
|||||||
register: path_1
|
register: path_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- path_1 is changed
|
- path_1 is changed
|
||||||
|
|
||||||
@ -450,7 +450,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with custom shm_size
|
- name: Build image with custom shm_size
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -461,12 +461,12 @@
|
|||||||
register: path_1
|
register: path_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- path_1 is changed
|
- path_1 is changed
|
||||||
|
|
||||||
@ -475,7 +475,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with labels
|
- name: Build image with labels
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
build:
|
build:
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
@ -488,16 +488,16 @@
|
|||||||
register: labels_1
|
register: labels_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_absent: true
|
force_absent: true
|
||||||
|
|
||||||
- name: Show image information
|
- name: Show image information
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: labels_1.image
|
var: labels_1.image
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- labels_1 is changed
|
- labels_1 is changed
|
||||||
- labels_1.image.Config.Labels.FOO == 'BAR'
|
- labels_1.image.Config.Labels.FOO == 'BAR'
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,23 +4,23 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- name: Create files directory
|
- name: Create files directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: '{{ remote_tmp_dir }}/files'
|
path: '{{ remote_tmp_dir }}/files'
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Template files
|
- name: Template files
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: '{{ item }}'
|
src: '{{ item }}'
|
||||||
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
||||||
loop:
|
loop:
|
||||||
@ -31,22 +31,22 @@
|
|||||||
- SecretsDockerfile
|
- SecretsDockerfile
|
||||||
- StagedDockerfile
|
- StagedDockerfile
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Has buildx plugin: {{ docker_has_buildx }}"
|
msg: "Has buildx plugin: {{ docker_has_buildx }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Determine plugin versions
|
- name: Determine plugin versions
|
||||||
command: docker info -f '{{ "{{" }}json .ClientInfo.Plugins{{ "}}" }}'
|
ansible.builtin.command: docker info -f '{{ "{{" }}json .ClientInfo.Plugins{{ "}}" }}'
|
||||||
register: plugin_versions
|
register: plugin_versions
|
||||||
|
|
||||||
- name: Determine buildx plugin version
|
- name: Determine buildx plugin version
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
buildx_version: >-
|
buildx_version: >-
|
||||||
{{
|
{{
|
||||||
(plugin_versions.stdout | from_json | selectattr('Name', 'eq', 'buildx') | map(attribute='Version') | first).lstrip('v')
|
(plugin_versions.stdout | from_json | selectattr('Name', 'eq', 'buildx') | map(attribute='Version') | first).lstrip('v')
|
||||||
}}
|
}}
|
||||||
|
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -54,12 +54,12 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -67,5 +67,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=') and docker_has_buildx
|
when: docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=') and docker_has_buildx
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) and docker_has_buildx
|
when: not(docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) and docker_has_buildx
|
||||||
|
|||||||
@ -4,11 +4,11 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname: "{{ name_prefix ~ '-options' }}"
|
iname: "{{ name_prefix ~ '-options' }}"
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: "{{ inames + [iname] }}"
|
inames: "{{ inames + [iname] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -16,11 +16,11 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- name: buildargs
|
- name: buildargs
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "ArgsDockerfile"
|
dockerfile: "ArgsDockerfile"
|
||||||
@ -33,7 +33,7 @@
|
|||||||
register: buildargs_1
|
register: buildargs_1
|
||||||
|
|
||||||
- name: buildargs (idempotency)
|
- name: buildargs (idempotency)
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "ArgsDockerfile"
|
dockerfile: "ArgsDockerfile"
|
||||||
@ -46,10 +46,10 @@
|
|||||||
register: buildargs_2
|
register: buildargs_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- buildargs_1 is changed
|
- buildargs_1 is changed
|
||||||
- buildargs_2 is not changed
|
- buildargs_2 is not changed
|
||||||
@ -59,7 +59,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: dockerfile
|
- name: dockerfile
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "MyDockerfile"
|
dockerfile: "MyDockerfile"
|
||||||
@ -67,10 +67,10 @@
|
|||||||
register: dockerfile_1
|
register: dockerfile_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- dockerfile_1 is changed
|
- dockerfile_1 is changed
|
||||||
- "('FROM ' ~ docker_test_image_alpine) in dockerfile_1.stderr"
|
- "('FROM ' ~ docker_test_image_alpine) in dockerfile_1.stderr"
|
||||||
@ -81,11 +81,11 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- name: platform
|
- name: platform
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
platform: linux
|
platform: linux
|
||||||
@ -93,7 +93,7 @@
|
|||||||
register: platform_1
|
register: platform_1
|
||||||
|
|
||||||
- name: platform (idempotency)
|
- name: platform (idempotency)
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
platform: linux
|
platform: linux
|
||||||
@ -101,10 +101,10 @@
|
|||||||
register: platform_2
|
register: platform_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- platform_1 is changed
|
- platform_1 is changed
|
||||||
- platform_2 is not changed
|
- platform_2 is not changed
|
||||||
@ -114,7 +114,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build multi-stage image
|
- name: Build multi-stage image
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "StagedDockerfile"
|
dockerfile: "StagedDockerfile"
|
||||||
@ -123,10 +123,10 @@
|
|||||||
register: dockerfile_2
|
register: dockerfile_2
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- dockerfile_2 is changed
|
- dockerfile_2 is changed
|
||||||
- dockerfile_2.image.Config.WorkingDir == '/first'
|
- dockerfile_2.image.Config.WorkingDir == '/first'
|
||||||
@ -136,7 +136,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with custom etc_hosts
|
- name: Build image with custom etc_hosts
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "EtcHostsDockerfile"
|
dockerfile: "EtcHostsDockerfile"
|
||||||
@ -146,10 +146,10 @@
|
|||||||
register: path_1
|
register: path_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- path_1 is changed
|
- path_1 is changed
|
||||||
|
|
||||||
@ -158,7 +158,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with custom shm_size
|
- name: Build image with custom shm_size
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "MyDockerfile"
|
dockerfile: "MyDockerfile"
|
||||||
@ -167,10 +167,10 @@
|
|||||||
register: path_1
|
register: path_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- path_1 is changed
|
- path_1 is changed
|
||||||
|
|
||||||
@ -179,7 +179,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Build image with labels
|
- name: Build image with labels
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "MyDockerfile"
|
dockerfile: "MyDockerfile"
|
||||||
@ -190,14 +190,14 @@
|
|||||||
register: labels_1
|
register: labels_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- name: Show image information
|
- name: Show image information
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: labels_1.image
|
var: labels_1.image
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- labels_1 is changed
|
- labels_1 is changed
|
||||||
- labels_1.image.Config.Labels.FOO == 'BAR'
|
- labels_1.image.Config.Labels.FOO == 'BAR'
|
||||||
@ -208,13 +208,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Generate secret
|
- name: Generate secret
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
docker_image_build_secret_value: this is my secret {{ '%0x' % ((2**32) | random) }}
|
docker_image_build_secret_value: this is my secret {{ '%0x' % ((2**32) | random) }}
|
||||||
|
|
||||||
- when: buildx_version is version('0.6.0', '>=')
|
- when: buildx_version is version('0.6.0', '>=')
|
||||||
block:
|
block:
|
||||||
- name: Build image with secrets via environment variables
|
- name: Build image with secrets via environment variables
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "SecretsDockerfile"
|
dockerfile: "SecretsDockerfile"
|
||||||
@ -227,14 +227,14 @@
|
|||||||
register: secrets_1
|
register: secrets_1
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- name: Show image information
|
- name: Show image information
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: secrets_1.stderr_lines
|
var: secrets_1.stderr_lines
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- secrets_1 is changed
|
- secrets_1 is changed
|
||||||
- (docker_image_build_secret_value | b64encode) in secrets_1.stderr
|
- (docker_image_build_secret_value | b64encode) in secrets_1.stderr
|
||||||
@ -246,16 +246,16 @@
|
|||||||
- when: buildx_version is version('0.13.0', '>=')
|
- when: buildx_version is version('0.13.0', '>=')
|
||||||
block:
|
block:
|
||||||
- name: Make sure the image is not there
|
- name: Make sure the image is not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
|
|
||||||
- name: Make sure the image tarball is not there
|
- name: Make sure the image tarball is not there
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ remote_tmp_dir }}/container.tar"
|
path: "{{ remote_tmp_dir }}/container.tar"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Build image with outputs
|
- name: Build image with outputs
|
||||||
docker_image_build:
|
community.docker.docker_image_build:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
path: "{{ remote_tmp_dir }}/files"
|
path: "{{ remote_tmp_dir }}/files"
|
||||||
dockerfile: "Dockerfile"
|
dockerfile: "Dockerfile"
|
||||||
@ -269,24 +269,24 @@
|
|||||||
- when: outputs_1 is not failed
|
- when: outputs_1 is not failed
|
||||||
block:
|
block:
|
||||||
- name: cleanup (should be changed)
|
- name: cleanup (should be changed)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname }}"
|
name: "{{ iname }}"
|
||||||
register: outputs_1_cleanup
|
register: outputs_1_cleanup
|
||||||
|
|
||||||
- name: Gather information on tarball
|
- name: Gather information on tarball
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ remote_tmp_dir }}/container.tar"
|
path: "{{ remote_tmp_dir }}/container.tar"
|
||||||
register: outputs_1_stat
|
register: outputs_1_stat
|
||||||
|
|
||||||
- name: Show image information
|
- name: Show image information
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: outputs_1.image
|
var: outputs_1.image
|
||||||
|
|
||||||
- name: Show tarball information
|
- name: Show tarball information
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: outputs_1_stat.stat
|
var: outputs_1_stat.stat
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- outputs_1 is changed
|
- outputs_1 is changed
|
||||||
- outputs_1.image | length > 0
|
- outputs_1.image | length > 0
|
||||||
@ -294,7 +294,7 @@
|
|||||||
- outputs_1_stat.stat.exists
|
- outputs_1_stat.stat.exists
|
||||||
|
|
||||||
- when: outputs_1 is failed
|
- when: outputs_1 is failed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- >-
|
- >-
|
||||||
'ERROR: multiple outputs currently unsupported by the current BuildKit daemon' in outputs_1.stderr
|
'ERROR: multiple outputs currently unsupported by the current BuildKit daemon' in outputs_1.stderr
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,18 +4,18 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -23,11 +23,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -35,5 +35,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -3,14 +3,14 @@
|
|||||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
# 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
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
image_names:
|
image_names:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
- "{{ docker_test_image_simple_1 }}"
|
- "{{ docker_test_image_simple_1 }}"
|
||||||
- "{{ docker_test_image_simple_2 }}"
|
- "{{ docker_test_image_simple_2 }}"
|
||||||
|
|
||||||
- name: Make sure images are there
|
- name: Make sure images are there
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
register: images
|
register: images
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
block:
|
block:
|
||||||
- name: Create archives
|
- name: Create archives
|
||||||
docker_image_export:
|
community.docker.docker_image_export:
|
||||||
names: "{{ item.images }}"
|
names: "{{ item.images }}"
|
||||||
path: "{{ remote_tmp_dir }}/{{ item.file }}"
|
path: "{{ remote_tmp_dir }}/{{ item.file }}"
|
||||||
loop: "{{ image_tasks }}"
|
loop: "{{ image_tasks }}"
|
||||||
@ -46,14 +46,14 @@
|
|||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Extract manifest.json files
|
- name: Extract manifest.json files
|
||||||
command: tar xvf "{{ remote_tmp_dir }}/{{ item.file }}" manifest.json --to-stdout
|
ansible.builtin.command: tar xvf "{{ remote_tmp_dir }}/{{ item.file }}" manifest.json --to-stdout
|
||||||
loop: "{{ image_tasks }}"
|
loop: "{{ image_tasks }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.file }}"
|
label: "{{ item.file }}"
|
||||||
register: manifests
|
register: manifests
|
||||||
|
|
||||||
- name: Do basic tests
|
- name: Do basic tests
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- item.0.images | length == item.1 | length
|
- item.0.images | length == item.1 | length
|
||||||
- item.1 | unique | length == item.2 | length
|
- item.1 | unique | length == item.2 | length
|
||||||
|
|||||||
@ -10,45 +10,45 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ docker_test_image_alpine_different }}"
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
|
|
||||||
- name: Inspect a non-available image
|
- name: Inspect a non-available image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ docker_test_image_alpine_different }}"
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "result.images|length == 0"
|
- "result.images|length == 0"
|
||||||
|
|
||||||
- name: Make sure images are there
|
- name: Make sure images are there
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop:
|
loop:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
- "{{ docker_test_image_alpine }}"
|
- "{{ docker_test_image_alpine }}"
|
||||||
|
|
||||||
- name: Inspect an available image
|
- name: Inspect an available image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "result.images|length == 1"
|
- "result.images|length == 1"
|
||||||
- "docker_test_image_hello_world in result.images[0].RepoTags"
|
- "docker_test_image_hello_world in result.images[0].RepoTags"
|
||||||
|
|
||||||
- name: Inspect multiple images
|
- name: Inspect multiple images
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name:
|
name:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
- "{{ docker_test_image_alpine }}"
|
- "{{ docker_test_image_alpine }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- debug: var=result
|
- ansible.builtin.debug: var=result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "result.images|length == 2"
|
- "result.images|length == 2"
|
||||||
- "docker_test_image_hello_world in result.images[0].RepoTags"
|
- "docker_test_image_hello_world in result.images[0].RepoTags"
|
||||||
@ -56,5 +56,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,18 +4,18 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -23,11 +23,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -35,5 +35,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -3,25 +3,25 @@
|
|||||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
# 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
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
image_names:
|
image_names:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
- "{{ docker_test_image_simple_1 }}"
|
- "{{ docker_test_image_simple_1 }}"
|
||||||
- "{{ docker_test_image_simple_2 }}"
|
- "{{ docker_test_image_simple_2 }}"
|
||||||
|
|
||||||
- name: Make sure images are there
|
- name: Make sure images are there
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
register: images
|
register: images
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
|
|
||||||
- name: Compile list of all image names and IDs
|
- name: Compile list of all image names and IDs
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
image_ids: "{{ images.results | map(attribute='image') | map(attribute='Id') | list }}"
|
image_ids: "{{ images.results | map(attribute='image') | map(attribute='Id') | list }}"
|
||||||
all_images: "{{ image_names + (images.results | map(attribute='image') | map(attribute='Id') | list) }}"
|
all_images: "{{ image_names + (images.results | map(attribute='image') | map(attribute='Id') | list) }}"
|
||||||
|
|
||||||
- name: Create archives
|
- name: Create archives
|
||||||
docker_image_export:
|
community.docker.docker_image_export:
|
||||||
names: "{{ item.images }}"
|
names: "{{ item.images }}"
|
||||||
path: "{{ remote_tmp_dir }}/{{ item.file }}"
|
path: "{{ remote_tmp_dir }}/{{ item.file }}"
|
||||||
loop:
|
loop:
|
||||||
@ -44,7 +44,7 @@
|
|||||||
# All images by IDs
|
# All images by IDs
|
||||||
|
|
||||||
- name: Remove all images
|
- name: Remove all images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
force: true
|
force: true
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
@ -52,52 +52,52 @@
|
|||||||
register: remove_all_images
|
register: remove_all_images
|
||||||
|
|
||||||
- name: Prune all containers (if removing failed)
|
- name: Prune all containers (if removing failed)
|
||||||
docker_prune:
|
community.docker.docker_prune:
|
||||||
containers: true
|
containers: true
|
||||||
when: remove_all_images is failed
|
when: remove_all_images is failed
|
||||||
|
|
||||||
- name: Obtain all docker containers and images (if removing failed)
|
- name: Obtain all docker containers and images (if removing failed)
|
||||||
shell: docker ps -a ; docker images -a
|
ansible.builtin.shell: docker ps -a ; docker images -a
|
||||||
when: remove_all_images is failed
|
when: remove_all_images is failed
|
||||||
register: docker_container_image_list
|
register: docker_container_image_list
|
||||||
|
|
||||||
- name: Show all docker containers and images (if removing failed)
|
- name: Show all docker containers and images (if removing failed)
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: docker_container_image_list.stdout_lines
|
var: docker_container_image_list.stdout_lines
|
||||||
when: remove_all_images is failed
|
when: remove_all_images is failed
|
||||||
|
|
||||||
- name: Remove all images (after pruning)
|
- name: Remove all images (after pruning)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
force: true
|
force: true
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
when: remove_all_images is failed
|
when: remove_all_images is failed
|
||||||
|
|
||||||
- name: Load all images (IDs)
|
- name: Load all images (IDs)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-2.tar"
|
path: "{{ remote_tmp_dir }}/archive-2.tar"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.image_names
|
var: result.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
- result.image_names | sort == image_ids | sort
|
- result.image_names | sort == image_ids | sort
|
||||||
- result.image_names | length == result.images | length
|
- result.image_names | length == result.images | length
|
||||||
|
|
||||||
- name: Load all images (IDs, should be same result)
|
- name: Load all images (IDs, should be same result)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-2.tar"
|
path: "{{ remote_tmp_dir }}/archive-2.tar"
|
||||||
register: result_2
|
register: result_2
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result_2.image_names
|
var: result_2.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result_2 is changed
|
- result_2 is changed
|
||||||
- result_2.image_names | sort == image_ids | sort
|
- result_2.image_names | sort == image_ids | sort
|
||||||
@ -106,24 +106,24 @@
|
|||||||
# Mixed images and IDs
|
# Mixed images and IDs
|
||||||
|
|
||||||
- name: Remove all images
|
- name: Remove all images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
|
|
||||||
- name: Load all images (mixed images and IDs)
|
- name: Load all images (mixed images and IDs)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-3.tar"
|
path: "{{ remote_tmp_dir }}/archive-3.tar"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Print loading log
|
- name: Print loading log
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.stdout_lines
|
var: result.stdout_lines
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.image_names
|
var: result.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
# For some reason, *sometimes* only the named image is found; in fact, in that case, the log only mentions that image and nothing else
|
# For some reason, *sometimes* only the named image is found; in fact, in that case, the log only mentions that image and nothing else
|
||||||
@ -135,20 +135,20 @@
|
|||||||
# Same image twice
|
# Same image twice
|
||||||
|
|
||||||
- name: Remove all images
|
- name: Remove all images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
|
|
||||||
- name: Load all images (same image twice)
|
- name: Load all images (same image twice)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-4.tar"
|
path: "{{ remote_tmp_dir }}/archive-4.tar"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.image_names
|
var: result.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
- result.image_names | length == 1
|
- result.image_names | length == 1
|
||||||
@ -159,20 +159,20 @@
|
|||||||
# Single image by ID
|
# Single image by ID
|
||||||
|
|
||||||
- name: Remove all images
|
- name: Remove all images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
|
|
||||||
- name: Load all images (single image by ID)
|
- name: Load all images (single image by ID)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-5.tar"
|
path: "{{ remote_tmp_dir }}/archive-5.tar"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.image_names
|
var: result.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
- result.image_names | length == 1
|
- result.image_names | length == 1
|
||||||
@ -181,32 +181,32 @@
|
|||||||
- result.images[0].Id == image_ids[0]
|
- result.images[0].Id == image_ids[0]
|
||||||
|
|
||||||
- name: Try to get image info by name
|
- name: Try to get image info by name
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ image_names[0] }}"
|
name: "{{ image_names[0] }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Make sure that image does not exist by name
|
- name: Make sure that image does not exist by name
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.images | length == 0
|
- result.images | length == 0
|
||||||
|
|
||||||
# All images by names
|
# All images by names
|
||||||
|
|
||||||
- name: Remove all images
|
- name: Remove all images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ all_images }}"
|
loop: "{{ all_images }}"
|
||||||
|
|
||||||
- name: Load all images (names)
|
- name: Load all images (names)
|
||||||
docker_image_load:
|
community.docker.docker_image_load:
|
||||||
path: "{{ remote_tmp_dir }}/archive-1.tar"
|
path: "{{ remote_tmp_dir }}/archive-1.tar"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Print loaded image names
|
- name: Print loaded image names
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: result.image_names
|
var: result.image_names
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.image_names | sort == image_names | sort
|
- result.image_names | sort == image_names | sort
|
||||||
- result.image_names | length == result.images | length
|
- result.image_names | length == result.images | length
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,18 +4,18 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -23,11 +23,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -35,5 +35,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -8,114 +8,114 @@
|
|||||||
image_name: "{{ docker_test_image_simple_1 }}"
|
image_name: "{{ docker_test_image_simple_1 }}"
|
||||||
block:
|
block:
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Pull image (check mode)
|
- name: Pull image (check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
register: present_1_check
|
register: present_1_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_1_check.diff
|
var: present_1_check.diff
|
||||||
|
|
||||||
- name: Pull image
|
- name: Pull image
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
register: present_1
|
register: present_1
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_1.diff
|
var: present_1.diff
|
||||||
|
|
||||||
- name: Pull image (idempotent 1, check mode)
|
- name: Pull image (idempotent 1, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
pull: always
|
pull: always
|
||||||
register: present_2_check
|
register: present_2_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_2_check.diff
|
var: present_2_check.diff
|
||||||
|
|
||||||
- name: Pull image (idempotent 1)
|
- name: Pull image (idempotent 1)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
pull: always
|
pull: always
|
||||||
register: present_2
|
register: present_2
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_2.diff
|
var: present_2.diff
|
||||||
|
|
||||||
- name: Pull image (change, check mode)
|
- name: Pull image (change, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: arm64
|
platform: arm64
|
||||||
pull: always
|
pull: always
|
||||||
register: present_3_check
|
register: present_3_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_3_check.diff
|
var: present_3_check.diff
|
||||||
|
|
||||||
- name: Pull image (change)
|
- name: Pull image (change)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: arm64
|
platform: arm64
|
||||||
pull: always
|
pull: always
|
||||||
register: present_3
|
register: present_3
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_3.diff
|
var: present_3.diff
|
||||||
|
|
||||||
- name: Pull image (idempotent 2, check mode)
|
- name: Pull image (idempotent 2, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: arm64
|
platform: arm64
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: present_4_check
|
register: present_4_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_4_check.diff
|
var: present_4_check.diff
|
||||||
|
|
||||||
- name: Pull image (idempotent 2)
|
- name: Pull image (idempotent 2)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: arm64
|
platform: arm64
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: present_4
|
register: present_4
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_4.diff
|
var: present_4.diff
|
||||||
|
|
||||||
- name: Pull image (change, check mode)
|
- name: Pull image (change, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: present_5_check
|
register: present_5_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_5_check.diff
|
var: present_5_check.diff
|
||||||
|
|
||||||
- name: Pull image (change)
|
- name: Pull image (change)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
platform: amd64
|
platform: amd64
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: present_5
|
register: present_5
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
var: present_5.diff
|
var: present_5.diff
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1_check is changed
|
- present_1_check is changed
|
||||||
- present_1_check.actions | length == 1
|
- present_1_check.actions | length == 1
|
||||||
@ -169,24 +169,24 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Pull image ID (must fail)
|
- name: Pull image ID (must fail)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ present_1.image.Id }}"
|
name: "{{ present_1.image.Id }}"
|
||||||
register: fail_1
|
register: fail_1
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Pull invalid tag (must fail)
|
- name: Pull invalid tag (must fail)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
tag: foo/bar
|
tag: foo/bar
|
||||||
register: fail_2
|
register: fail_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- fail_1 is failed
|
- fail_1 is failed
|
||||||
- >-
|
- >-
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
- name: Image ID pull tests
|
- name: Image ID pull tests
|
||||||
block:
|
block:
|
||||||
- name: Make sure images are not there
|
- name: Make sure images are not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
force: true
|
force: true
|
||||||
loop:
|
loop:
|
||||||
@ -14,26 +14,26 @@
|
|||||||
- "sha256:{{ docker_test_image_digest_v2_image_id }}"
|
- "sha256:{{ docker_test_image_digest_v2_image_id }}"
|
||||||
|
|
||||||
- name: Pull image 1
|
- name: Pull image 1
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
register: present_1
|
register: present_1
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Pull image 1 (idempotent, do pull)
|
- name: Pull image 1 (idempotent, do pull)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
pull: always
|
pull: always
|
||||||
register: present_2
|
register: present_2
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Pull image 1 (idempotent, do not pull)
|
- name: Pull image 1 (idempotent, do not pull)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: present_3
|
register: present_3
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_1 is changed
|
- present_1 is changed
|
||||||
- present_1.actions | length == 1
|
- present_1.actions | length == 1
|
||||||
@ -51,7 +51,7 @@
|
|||||||
- present_3.diff.after.id == present_1.diff.after.id
|
- present_3.diff.after.id == present_1.diff.after.id
|
||||||
|
|
||||||
- name: Pull image 2 (check mode)
|
- name: Pull image 2 (check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
||||||
pull: always
|
pull: always
|
||||||
register: present_4
|
register: present_4
|
||||||
@ -59,13 +59,13 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Pull image 2
|
- name: Pull image 2
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v2 }}"
|
||||||
pull: always
|
pull: always
|
||||||
register: present_5
|
register: present_5
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- present_4 is changed
|
- present_4 is changed
|
||||||
- present_4.actions | length == 1
|
- present_4.actions | length == 1
|
||||||
@ -81,7 +81,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
force: true
|
force: true
|
||||||
loop:
|
loop:
|
||||||
|
|||||||
@ -7,67 +7,67 @@
|
|||||||
when: registry_address is defined
|
when: registry_address is defined
|
||||||
block:
|
block:
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname: "{{ name_prefix ~ '-options' }}"
|
iname: "{{ name_prefix ~ '-options' }}"
|
||||||
|
|
||||||
- name: Determining pushed image names
|
- name: Determining pushed image names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
hello_world_image_base: "{{ registry_address }}/test/hello-world"
|
hello_world_image_base: "{{ registry_address }}/test/hello-world"
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: "{{ inames + [iname, hello_world_image_base ~ ':latest'] }}"
|
inames: "{{ inames + [iname, hello_world_image_base ~ ':latest'] }}"
|
||||||
|
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Make sure we have {{ docker_test_image_hello_world }}
|
- name: Make sure we have {{ docker_test_image_hello_world }}
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Tag image
|
- name: Tag image
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ hello_world_image_base }}:latest"
|
- "{{ hello_world_image_base }}:latest"
|
||||||
|
|
||||||
- name: Push image to test registry
|
- name: Push image to test registry
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
|
|
||||||
- name: Get facts of local image
|
- name: Get facts of local image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_1
|
register: facts_1
|
||||||
|
|
||||||
- name: Make sure image is not there
|
- name: Make sure image is not there
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Get facts of local image (not there)
|
- name: Get facts of local image (not there)
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_2
|
register: facts_2
|
||||||
|
|
||||||
- name: Pull image from test registry (check mode)
|
- name: Pull image from test registry (check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: pull_1_check
|
register: pull_1_check
|
||||||
diff: true
|
diff: true
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Pull image from test registry
|
- name: Pull image from test registry
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: pull_1
|
register: pull_1
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Pull image from test registry (idempotency, not pulling, check mode)
|
- name: Pull image from test registry (idempotency, not pulling, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: pull_2_check
|
register: pull_2_check
|
||||||
@ -75,14 +75,14 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Pull image from test registry (idempotency, not pulling)
|
- name: Pull image from test registry (idempotency, not pulling)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
pull: not_present
|
pull: not_present
|
||||||
register: pull_2
|
register: pull_2
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Pull image from test registry (idempotency, pulling, check mode)
|
- name: Pull image from test registry (idempotency, pulling, check mode)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
pull: always
|
pull: always
|
||||||
register: pull_3_check
|
register: pull_3_check
|
||||||
@ -90,18 +90,18 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Pull image from test registry (idempotency, pulling)
|
- name: Pull image from test registry (idempotency, pulling)
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
pull: always
|
pull: always
|
||||||
register: pull_3
|
register: pull_3
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Get facts of local image (present)
|
- name: Get facts of local image (present)
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ hello_world_image_base }}:latest"
|
name: "{{ hello_world_image_base }}:latest"
|
||||||
register: facts_3
|
register: facts_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- pull_1_check is changed
|
- pull_1_check is changed
|
||||||
- pull_1_check.diff.before.exists is false
|
- pull_1_check.diff.before.exists is false
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,18 +4,18 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
- name: Create image and container list
|
- name: Create image and container list
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: []
|
inames: []
|
||||||
cnames: []
|
cnames: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -23,11 +23,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all images are removed"
|
- name: "Make sure all images are removed"
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items: "{{ inames }}"
|
with_items: "{{ inames }}"
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
@ -35,5 +35,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -7,41 +7,41 @@
|
|||||||
image_name: registry.example.com:5000/foo/bar:baz
|
image_name: registry.example.com:5000/foo/bar:baz
|
||||||
block:
|
block:
|
||||||
- name: Make sure image is not present
|
- name: Make sure image is not present
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
|
|
||||||
- name: Push non-existing image (must fail)
|
- name: Push non-existing image (must fail)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ image_name }}"
|
name: "{{ image_name }}"
|
||||||
register: fail_1
|
register: fail_1
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Push image ID (must fail)
|
- name: Push image ID (must fail)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "sha256:{{ docker_test_image_digest_v1_image_id }}"
|
name: "sha256:{{ docker_test_image_digest_v1_image_id }}"
|
||||||
register: fail_2
|
register: fail_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Push image with digest (must fail)
|
- name: Push image with digest (must fail)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
name: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
register: fail_3
|
register: fail_3
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Push invalid tag (must fail)
|
- name: Push invalid tag (must fail)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
tag: foo/bar
|
tag: foo/bar
|
||||||
register: fail_4
|
register: fail_4
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Push invalid tag 2 (must fail)
|
- name: Push invalid tag 2 (must fail)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ docker_test_image_digest_base }}:foo bar"
|
name: "{{ docker_test_image_digest_base }}:foo bar"
|
||||||
register: fail_5
|
register: fail_5
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- fail_1 is failed
|
- fail_1 is failed
|
||||||
- >-
|
- >-
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
when: registry_address is defined
|
when: registry_address is defined
|
||||||
block:
|
block:
|
||||||
- name: Pull images
|
- name: Pull images
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop:
|
loop:
|
||||||
- "{{ docker_test_image_hello_world }}"
|
- "{{ docker_test_image_hello_world }}"
|
||||||
@ -15,44 +15,44 @@
|
|||||||
register: pulled_images
|
register: pulled_images
|
||||||
|
|
||||||
- name: Determining pushed image names
|
- name: Determining pushed image names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
image_name_base: "{{ registry_address }}/test/{{ name_prefix }}"
|
image_name_base: "{{ registry_address }}/test/{{ name_prefix }}"
|
||||||
image_name_base2: "{{ registry_frontend2_address }}/test/{{ name_prefix }}"
|
image_name_base2: "{{ registry_frontend2_address }}/test/{{ name_prefix }}"
|
||||||
image_tag: latest
|
image_tag: latest
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
inames: "{{ inames + [image_name_base ~ ':' ~ image_tag, image_name_base2 ~ ':' ~ image_tag] }}"
|
inames: "{{ inames + [image_name_base ~ ':' ~ image_tag, image_name_base2 ~ ':' ~ image_tag] }}"
|
||||||
|
|
||||||
- name: Tag first image
|
- name: Tag first image
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ docker_test_image_hello_world }}"
|
name: "{{ docker_test_image_hello_world }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ image_name_base }}:{{ image_tag }}"
|
- "{{ image_name_base }}:{{ image_tag }}"
|
||||||
- "{{ image_name_base2 }}:{{ image_tag }}"
|
- "{{ image_name_base2 }}:{{ image_tag }}"
|
||||||
|
|
||||||
- name: Push first image
|
- name: Push first image
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ image_name_base }}:{{ image_tag }}"
|
name: "{{ image_name_base }}:{{ image_tag }}"
|
||||||
register: push_1
|
register: push_1
|
||||||
|
|
||||||
- name: Push first image (idempotent)
|
- name: Push first image (idempotent)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ image_name_base }}:{{ image_tag }}"
|
name: "{{ image_name_base }}:{{ image_tag }}"
|
||||||
register: push_2
|
register: push_2
|
||||||
|
|
||||||
- name: Tag second image
|
- name: Tag second image
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ docker_test_image_alpine }}"
|
name: "{{ docker_test_image_alpine }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ image_name_base }}:{{ image_tag }}"
|
- "{{ image_name_base }}:{{ image_tag }}"
|
||||||
|
|
||||||
- name: Push second image with same name
|
- name: Push second image with same name
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ image_name_base }}:{{ image_tag }}"
|
name: "{{ image_name_base }}:{{ image_tag }}"
|
||||||
register: push_3
|
register: push_3
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- push_1 is changed
|
- push_1 is changed
|
||||||
- push_1.image.Id == pulled_images.results[0].image.Id
|
- push_1.image.Id == pulled_images.results[0].image.Id
|
||||||
@ -64,19 +64,19 @@
|
|||||||
- when: registry_frontend2_address != 'n/a'
|
- when: registry_frontend2_address != 'n/a'
|
||||||
block:
|
block:
|
||||||
- name: Make sure we are logged out from registry
|
- name: Make sure we are logged out from registry
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend2_address }}"
|
registry_url: "{{ registry_frontend2_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Push image (unauthenticated)
|
- name: Push image (unauthenticated)
|
||||||
docker_image_push:
|
community.docker.docker_image_push:
|
||||||
name: "{{ image_name_base2 }}:{{ image_tag }}"
|
name: "{{ image_name_base2 }}:{{ image_tag }}"
|
||||||
register: push_4
|
register: push_4
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- push_4 is failed
|
- push_4 is failed
|
||||||
- >-
|
- >-
|
||||||
|
|||||||
@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Pick image prefix
|
- name: Pick image prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
iname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Define image names
|
- name: Define image names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
image: "{{ docker_test_image_hello_world }}"
|
image: "{{ docker_test_image_hello_world }}"
|
||||||
image_id: "{{ docker_test_image_hello_world_image_id }}"
|
image_id: "{{ docker_test_image_hello_world_image_id }}"
|
||||||
image_names:
|
image_names:
|
||||||
@ -23,40 +23,40 @@
|
|||||||
- "{{ iname_prefix }}-tagged-1:bar"
|
- "{{ iname_prefix }}-tagged-1:bar"
|
||||||
|
|
||||||
- name: Remove image complete
|
- name: Remove image complete
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ image_id }}"
|
name: "{{ image_id }}"
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Remove tagged images
|
- name: Remove tagged images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
|
|
||||||
- name: Make sure image we work with is there
|
- name: Make sure image we work with is there
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ image }}"
|
name: "{{ image }}"
|
||||||
register: pulled_image
|
register: pulled_image
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged image (not there, check mode)
|
- name: Remove tagged image (not there, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_1_check
|
register: remove_1_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged image (not there)
|
- name: Remove tagged image (not there)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_1
|
register: remove_1
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Inspect image
|
- name: Inspect image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: info_1
|
register: info_1
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_1_check is not changed
|
- remove_1_check is not changed
|
||||||
- remove_1_check.diff == remove_1.diff
|
- remove_1_check.diff == remove_1.diff
|
||||||
@ -70,7 +70,7 @@
|
|||||||
- info_1.images | length == 0
|
- info_1.images | length == 0
|
||||||
|
|
||||||
- name: Tag image 1
|
- name: Tag image 1
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image }}"
|
name: "{{ image }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -78,24 +78,24 @@
|
|||||||
- "{{ iname_prefix }}-tagged-1:bar"
|
- "{{ iname_prefix }}-tagged-1:bar"
|
||||||
|
|
||||||
- name: Remove tagged image (check mode)
|
- name: Remove tagged image (check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_2_check
|
register: remove_2_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged image
|
- name: Remove tagged image
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_2
|
register: remove_2
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Inspect image
|
- name: Inspect image
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: info_2
|
register: info_2
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_2_check is changed
|
- remove_2_check is changed
|
||||||
- remove_2_check.diff == remove_2.diff
|
- remove_2_check.diff == remove_2.diff
|
||||||
@ -114,19 +114,19 @@
|
|||||||
- info_2.images | length == 0
|
- info_2.images | length == 0
|
||||||
|
|
||||||
- name: Remove tagged image (idempotent, check mode)
|
- name: Remove tagged image (idempotent, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_3_check
|
register: remove_3_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged image (idempotent)
|
- name: Remove tagged image (idempotent)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:latest"
|
name: "{{ iname_prefix }}-tagged-1:latest"
|
||||||
register: remove_3
|
register: remove_3
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_3_check is not changed
|
- remove_3_check is not changed
|
||||||
- remove_3_check.diff == remove_3.diff
|
- remove_3_check.diff == remove_3.diff
|
||||||
@ -139,14 +139,14 @@
|
|||||||
- remove_3_check.untagged == remove_3.untagged
|
- remove_3_check.untagged == remove_3.untagged
|
||||||
|
|
||||||
- name: Inspect image with tag foo and bar
|
- name: Inspect image with tag foo and bar
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name:
|
name:
|
||||||
- "{{ iname_prefix }}-tagged-1:foo"
|
- "{{ iname_prefix }}-tagged-1:foo"
|
||||||
- "{{ iname_prefix }}-tagged-1:bar"
|
- "{{ iname_prefix }}-tagged-1:bar"
|
||||||
register: info_3
|
register: info_3
|
||||||
|
|
||||||
- name: Remove tagged image (force, check mode)
|
- name: Remove tagged image (force, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:foo"
|
name: "{{ iname_prefix }}-tagged-1:foo"
|
||||||
force: true
|
force: true
|
||||||
register: remove_4_check
|
register: remove_4_check
|
||||||
@ -154,20 +154,20 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged image (force)
|
- name: Remove tagged image (force)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:foo"
|
name: "{{ iname_prefix }}-tagged-1:foo"
|
||||||
force: true
|
force: true
|
||||||
register: remove_4
|
register: remove_4
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Inspect image with tag foo and bar
|
- name: Inspect image with tag foo and bar
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name:
|
name:
|
||||||
- "{{ iname_prefix }}-tagged-1:foo"
|
- "{{ iname_prefix }}-tagged-1:foo"
|
||||||
- "{{ iname_prefix }}-tagged-1:bar"
|
- "{{ iname_prefix }}-tagged-1:bar"
|
||||||
register: info_4
|
register: info_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_4_check is changed
|
- remove_4_check is changed
|
||||||
- remove_4_check.diff == remove_4.diff
|
- remove_4_check.diff == remove_4.diff
|
||||||
@ -190,7 +190,7 @@
|
|||||||
- info_4.images[0].Id == pulled_image.image.Id
|
- info_4.images[0].Id == pulled_image.image.Id
|
||||||
|
|
||||||
- name: Remove image ID (force, idempotent, check mode)
|
- name: Remove image ID (force, idempotent, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:foo"
|
name: "{{ iname_prefix }}-tagged-1:foo"
|
||||||
force: true
|
force: true
|
||||||
register: remove_5_check
|
register: remove_5_check
|
||||||
@ -198,13 +198,13 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove image ID (force, idempotent)
|
- name: Remove image ID (force, idempotent)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ iname_prefix }}-tagged-1:foo"
|
name: "{{ iname_prefix }}-tagged-1:foo"
|
||||||
force: true
|
force: true
|
||||||
register: remove_5
|
register: remove_5
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_5_check is not changed
|
- remove_5_check is not changed
|
||||||
- remove_5_check.diff == remove_5.diff
|
- remove_5_check.diff == remove_5.diff
|
||||||
@ -217,7 +217,7 @@
|
|||||||
- remove_5_check.untagged == remove_5.untagged
|
- remove_5_check.untagged == remove_5.untagged
|
||||||
|
|
||||||
- name: Remove image ID (force, check mode)
|
- name: Remove image ID (force, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ pulled_image.image.Id }}"
|
name: "{{ pulled_image.image.Id }}"
|
||||||
force: true
|
force: true
|
||||||
register: remove_6_check
|
register: remove_6_check
|
||||||
@ -225,20 +225,20 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove image ID (force)
|
- name: Remove image ID (force)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ pulled_image.image.Id }}"
|
name: "{{ pulled_image.image.Id }}"
|
||||||
force: true
|
force: true
|
||||||
register: remove_6
|
register: remove_6
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Inspect image with tag foo and bar
|
- name: Inspect image with tag foo and bar
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name:
|
name:
|
||||||
- "{{ iname_prefix }}-tagged-1:foo"
|
- "{{ iname_prefix }}-tagged-1:foo"
|
||||||
- "{{ iname_prefix }}-tagged-1:bar"
|
- "{{ iname_prefix }}-tagged-1:bar"
|
||||||
register: info_5
|
register: info_5
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_6_check is changed
|
- remove_6_check is changed
|
||||||
- remove_6_check.diff == remove_6.diff
|
- remove_6_check.diff == remove_6.diff
|
||||||
@ -258,7 +258,7 @@
|
|||||||
- info_5.images | length == 0
|
- info_5.images | length == 0
|
||||||
|
|
||||||
- name: Remove image ID (force, idempotent, check mode)
|
- name: Remove image ID (force, idempotent, check mode)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ pulled_image.image.Id }}"
|
name: "{{ pulled_image.image.Id }}"
|
||||||
force: true
|
force: true
|
||||||
register: remove_7_check
|
register: remove_7_check
|
||||||
@ -266,13 +266,13 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove image ID (force, idempotent)
|
- name: Remove image ID (force, idempotent)
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ pulled_image.image.Id }}"
|
name: "{{ pulled_image.image.Id }}"
|
||||||
force: true
|
force: true
|
||||||
register: remove_7
|
register: remove_7
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- remove_7_check is not changed
|
- remove_7_check is not changed
|
||||||
- remove_7_check.diff == remove_7.diff
|
- remove_7_check.diff == remove_7.diff
|
||||||
@ -286,11 +286,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Remove tagged images
|
- name: Remove tagged images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Pick image prefix
|
- name: Pick image prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
iname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
iname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Define image names
|
- name: Define image names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
image_1: "{{ docker_test_image_hello_world }}"
|
image_1: "{{ docker_test_image_hello_world }}"
|
||||||
image_2: "{{ docker_test_image_alpine }}"
|
image_2: "{{ docker_test_image_alpine }}"
|
||||||
image_3: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
image_3: "{{ docker_test_image_digest_base }}@sha256:{{ docker_test_image_digest_v1 }}"
|
||||||
@ -25,7 +25,7 @@
|
|||||||
- "{{ iname_prefix }}-tagged-2:baz"
|
- "{{ iname_prefix }}-tagged-2:baz"
|
||||||
|
|
||||||
- name: Make sure images we work with are there
|
- name: Make sure images we work with are there
|
||||||
docker_image_pull:
|
community.docker.docker_image_pull:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop:
|
loop:
|
||||||
- "{{ image_1 }}"
|
- "{{ image_1 }}"
|
||||||
@ -35,12 +35,12 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Remove tagged images
|
- name: Remove tagged images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
|
|
||||||
- name: Tag image 1 (check mode)
|
- name: Tag image 1 (check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -50,7 +50,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 1
|
- name: Tag image 1
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -59,11 +59,11 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Fetch image infos
|
- name: Fetch image infos
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ image_names }}"
|
name: "{{ image_names }}"
|
||||||
register: info_1
|
register: info_1
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_1 is changed
|
- tag_1 is changed
|
||||||
- tag_1.diff.before.images | length == 2
|
- tag_1.diff.before.images | length == 2
|
||||||
@ -79,7 +79,7 @@
|
|||||||
- tag_1_check == tag_1
|
- tag_1_check == tag_1
|
||||||
|
|
||||||
- name: Tag image 1 (idempotent, check mode)
|
- name: Tag image 1 (idempotent, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -89,7 +89,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 1 (idempotent)
|
- name: Tag image 1 (idempotent)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -97,7 +97,7 @@
|
|||||||
register: tag_2
|
register: tag_2
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_2 is not changed
|
- tag_2 is not changed
|
||||||
- tag_2.diff.before == tag_2.diff.after
|
- tag_2.diff.before == tag_2.diff.after
|
||||||
@ -105,7 +105,7 @@
|
|||||||
- tag_2_check == tag_2
|
- tag_2_check == tag_2
|
||||||
|
|
||||||
- name: Tag image 1 (idempotent, different input format, check mode)
|
- name: Tag image 1 (idempotent, different input format, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
tag: foo
|
tag: foo
|
||||||
repository:
|
repository:
|
||||||
@ -116,7 +116,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 1 (idempotent, different input format)
|
- name: Tag image 1 (idempotent, different input format)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
tag: foo
|
tag: foo
|
||||||
repository:
|
repository:
|
||||||
@ -125,7 +125,7 @@
|
|||||||
register: tag_3
|
register: tag_3
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_3 is not changed
|
- tag_3 is not changed
|
||||||
- tag_3.diff.before == tag_3.diff.after
|
- tag_3.diff.before == tag_3.diff.after
|
||||||
@ -133,7 +133,7 @@
|
|||||||
- tag_3_check == tag_3
|
- tag_3_check == tag_3
|
||||||
|
|
||||||
- name: Tag image 1 (one more, check mode)
|
- name: Tag image 1 (one more, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -144,7 +144,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 1 (one more)
|
- name: Tag image 1 (one more)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_1 }}"
|
name: "{{ image_1 }}"
|
||||||
repository:
|
repository:
|
||||||
- "{{ iname_prefix }}-tagged-1:latest"
|
- "{{ iname_prefix }}-tagged-1:latest"
|
||||||
@ -154,11 +154,11 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Fetch image infos
|
- name: Fetch image infos
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ image_names }}"
|
name: "{{ image_names }}"
|
||||||
register: info_4
|
register: info_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_4 is changed
|
- tag_4 is changed
|
||||||
- tag_4.diff.before.images | length == 3
|
- tag_4.diff.before.images | length == 3
|
||||||
@ -176,7 +176,7 @@
|
|||||||
- tag_4_check == tag_4
|
- tag_4_check == tag_4
|
||||||
|
|
||||||
- name: Tag image 2 (only change missing one, check mode)
|
- name: Tag image 2 (only change missing one, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: keep
|
existing_images: keep
|
||||||
repository:
|
repository:
|
||||||
@ -188,7 +188,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 2 (only change missing one)
|
- name: Tag image 2 (only change missing one)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: keep
|
existing_images: keep
|
||||||
repository:
|
repository:
|
||||||
@ -199,11 +199,11 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Fetch image infos
|
- name: Fetch image infos
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ image_names }}"
|
name: "{{ image_names }}"
|
||||||
register: info_5
|
register: info_5
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_5 is changed
|
- tag_5 is changed
|
||||||
- tag_5.diff.before.images | length == 3
|
- tag_5.diff.before.images | length == 3
|
||||||
@ -222,7 +222,7 @@
|
|||||||
- tag_5_check == tag_5
|
- tag_5_check == tag_5
|
||||||
|
|
||||||
- name: Tag image 2 (idempotent, check mode)
|
- name: Tag image 2 (idempotent, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: keep
|
existing_images: keep
|
||||||
repository:
|
repository:
|
||||||
@ -234,7 +234,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 2 (idempotent)
|
- name: Tag image 2 (idempotent)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: keep
|
existing_images: keep
|
||||||
repository:
|
repository:
|
||||||
@ -244,7 +244,7 @@
|
|||||||
register: tag_6
|
register: tag_6
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_6 is not changed
|
- tag_6 is not changed
|
||||||
- tag_6.diff.before == tag_6.diff.after
|
- tag_6.diff.before == tag_6.diff.after
|
||||||
@ -252,7 +252,7 @@
|
|||||||
- tag_6_check == tag_6
|
- tag_6_check == tag_6
|
||||||
|
|
||||||
- name: Tag image 2 (only change wrong ones, check mode)
|
- name: Tag image 2 (only change wrong ones, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -264,7 +264,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 2 (only change wrong ones)
|
- name: Tag image 2 (only change wrong ones)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -275,11 +275,11 @@
|
|||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- name: Fetch image infos
|
- name: Fetch image infos
|
||||||
docker_image_info:
|
community.docker.docker_image_info:
|
||||||
name: "{{ image_names }}"
|
name: "{{ image_names }}"
|
||||||
register: info_7
|
register: info_7
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_7 is changed
|
- tag_7 is changed
|
||||||
- tag_7.diff.before.images | length == 3
|
- tag_7.diff.before.images | length == 3
|
||||||
@ -299,7 +299,7 @@
|
|||||||
- tag_7_check == tag_7
|
- tag_7_check == tag_7
|
||||||
|
|
||||||
- name: Tag image 2 (idempotent, check mode)
|
- name: Tag image 2 (idempotent, check mode)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -311,7 +311,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Tag image 2 (idempotent)
|
- name: Tag image 2 (idempotent)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_2 }}"
|
name: "{{ image_2 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -321,7 +321,7 @@
|
|||||||
register: tag_8
|
register: tag_8
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_8 is not changed
|
- tag_8 is not changed
|
||||||
- tag_8.diff.before == tag_8.diff.after
|
- tag_8.diff.before == tag_8.diff.after
|
||||||
@ -329,7 +329,7 @@
|
|||||||
- tag_8_check == tag_8
|
- tag_8_check == tag_8
|
||||||
|
|
||||||
- name: Tag image 3 (source image has digest)
|
- name: Tag image 3 (source image has digest)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_3 }}"
|
name: "{{ image_3 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -337,7 +337,7 @@
|
|||||||
register: tag_9
|
register: tag_9
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_9 is changed
|
- tag_9 is changed
|
||||||
- tag_9.diff.before.images | length == 1
|
- tag_9.diff.before.images | length == 1
|
||||||
@ -345,7 +345,7 @@
|
|||||||
- tag_9.diff.after.images[0].id == pulled_images.results[2].image.Id
|
- tag_9.diff.after.images[0].id == pulled_images.results[2].image.Id
|
||||||
|
|
||||||
- name: Tag image 3 (source image is ID)
|
- name: Tag image 3 (source image is ID)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ pulled_images.results[2].image.Id }}"
|
name: "{{ pulled_images.results[2].image.Id }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -353,7 +353,7 @@
|
|||||||
register: tag_10
|
register: tag_10
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_10 is changed
|
- tag_10 is changed
|
||||||
- tag_10.diff.before.images | length == 1
|
- tag_10.diff.before.images | length == 1
|
||||||
@ -361,7 +361,7 @@
|
|||||||
- tag_10.diff.after.images[0].id == pulled_images.results[2].image.Id
|
- tag_10.diff.after.images[0].id == pulled_images.results[2].image.Id
|
||||||
|
|
||||||
- name: Tag image 3 (fail because of digest)
|
- name: Tag image 3 (fail because of digest)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_3 }}"
|
name: "{{ image_3 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -369,14 +369,14 @@
|
|||||||
register: tag_11
|
register: tag_11
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_11 is failed
|
- tag_11 is failed
|
||||||
- >-
|
- >-
|
||||||
tag_11.msg == ('repository[1] must not have a digest; got: ' ~ iname_prefix ~ '-tagged-2@sha256:' ~ docker_test_image_digest_v1)
|
tag_11.msg == ('repository[1] must not have a digest; got: ' ~ iname_prefix ~ '-tagged-2@sha256:' ~ docker_test_image_digest_v1)
|
||||||
|
|
||||||
- name: Tag image 3 (fail because of image ID)
|
- name: Tag image 3 (fail because of image ID)
|
||||||
docker_image_tag:
|
community.docker.docker_image_tag:
|
||||||
name: "{{ image_3 }}"
|
name: "{{ image_3 }}"
|
||||||
existing_images: overwrite
|
existing_images: overwrite
|
||||||
repository:
|
repository:
|
||||||
@ -384,7 +384,7 @@
|
|||||||
register: tag_12
|
register: tag_12
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- tag_12 is failed
|
- tag_12 is failed
|
||||||
- >-
|
- >-
|
||||||
@ -392,11 +392,11 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Remove tagged images
|
- name: Remove tagged images
|
||||||
docker_image_remove:
|
community.docker.docker_image_remove:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
loop: "{{ image_names }}"
|
loop: "{{ image_names }}"
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -9,5 +9,5 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||||
include_tasks:
|
ansible.builtin.include_tasks:
|
||||||
file: test.yml
|
file: test.yml
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,12 +4,12 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: test_name
|
loop_var: test_name
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Log out server
|
- name: Log out server
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Log in with wrong password (check mode)
|
- name: Log in with wrong password (check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: "1234"
|
password: "1234"
|
||||||
@ -22,7 +22,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Log in with wrong password
|
- name: Log in with wrong password
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: "1234"
|
password: "1234"
|
||||||
@ -31,7 +31,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Make sure that login failed
|
- name: Make sure that login failed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- login_failed_check is failed
|
- login_failed_check is failed
|
||||||
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed_check.msg"
|
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed_check.msg"
|
||||||
@ -39,7 +39,7 @@
|
|||||||
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed.msg"
|
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed.msg"
|
||||||
|
|
||||||
- name: Log in (check mode)
|
- name: Log in (check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -48,7 +48,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Log in
|
- name: Log in
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -56,12 +56,12 @@
|
|||||||
register: login_2
|
register: login_2
|
||||||
|
|
||||||
- name: Get permissions of ~/.docker/config.json
|
- name: Get permissions of ~/.docker/config.json
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: ~/.docker/config.json
|
path: ~/.docker/config.json
|
||||||
register: login_2_stat
|
register: login_2_stat
|
||||||
|
|
||||||
- name: Log in (idempotent)
|
- name: Log in (idempotent)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -69,7 +69,7 @@
|
|||||||
register: login_3
|
register: login_3
|
||||||
|
|
||||||
- name: Log in (idempotent, check mode)
|
- name: Log in (idempotent, check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -78,7 +78,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Make sure that login worked
|
- name: Make sure that login worked
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- login_1 is changed
|
- login_1 is changed
|
||||||
- login_2 is changed
|
- login_2 is changed
|
||||||
@ -87,7 +87,7 @@
|
|||||||
- login_2_stat.stat.mode == '0600'
|
- login_2_stat.stat.mode == '0600'
|
||||||
|
|
||||||
- name: Log in again with wrong password (check mode)
|
- name: Log in again with wrong password (check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: "1234"
|
password: "1234"
|
||||||
@ -97,7 +97,7 @@
|
|||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Log in again with wrong password
|
- name: Log in again with wrong password
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: "1234"
|
password: "1234"
|
||||||
@ -106,7 +106,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Make sure that login failed again
|
- name: Make sure that login failed again
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- login_failed_check is failed
|
- login_failed_check is failed
|
||||||
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed_check.msg"
|
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed_check.msg"
|
||||||
@ -114,33 +114,33 @@
|
|||||||
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed.msg"
|
- "('login attempt to http://' ~ registry_frontend_address ~ '/v2/ failed') in login_failed.msg"
|
||||||
|
|
||||||
- name: Log out (check mode)
|
- name: Log out (check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: logout_1
|
register: logout_1
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Log out
|
- name: Log out
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: logout_2
|
register: logout_2
|
||||||
|
|
||||||
- name: Log out (idempotent)
|
- name: Log out (idempotent)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: logout_3
|
register: logout_3
|
||||||
|
|
||||||
- name: Log out (idempotent, check mode)
|
- name: Log out (idempotent, check mode)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: logout_4
|
register: logout_4
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Make sure that login worked
|
- name: Make sure that login worked
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- logout_1 is changed
|
- logout_1 is changed
|
||||||
- logout_2 is changed
|
- logout_2 is changed
|
||||||
|
|||||||
@ -5,21 +5,21 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Log out server 1
|
- name: Log out server 1
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Log out server 2
|
- name: Log out server 2
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend2_address }}"
|
registry_url: "{{ registry_frontend2_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Log in server 1
|
- name: Log in server 1
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -27,7 +27,7 @@
|
|||||||
register: login_1
|
register: login_1
|
||||||
|
|
||||||
- name: Log in server 2
|
- name: Log in server 2
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend2_address }}"
|
registry_url: "{{ registry_frontend2_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -35,7 +35,7 @@
|
|||||||
register: login_2
|
register: login_2
|
||||||
|
|
||||||
- name: Log in server 1 (idempotent)
|
- name: Log in server 1 (idempotent)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend_address }}"
|
registry_url: "{{ registry_frontend_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -43,7 +43,7 @@
|
|||||||
register: login_1_2
|
register: login_1_2
|
||||||
|
|
||||||
- name: Log in server 2 (idempotent)
|
- name: Log in server 2 (idempotent)
|
||||||
docker_login:
|
community.docker.docker_login:
|
||||||
registry_url: "{{ registry_frontend2_address }}"
|
registry_url: "{{ registry_frontend2_address }}"
|
||||||
username: testuser
|
username: testuser
|
||||||
password: hunter2
|
password: hunter2
|
||||||
@ -51,7 +51,7 @@
|
|||||||
register: login_2_2
|
register: login_2_2
|
||||||
|
|
||||||
- name: Make sure that login worked
|
- name: Make sure that login worked
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- login_1 is changed
|
- login_1 is changed
|
||||||
- login_2 is changed
|
- login_2 is changed
|
||||||
|
|||||||
@ -9,26 +9,26 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: List inspection results for all docker networks
|
- name: List inspection results for all docker networks
|
||||||
docker_host_info:
|
community.docker.docker_host_info:
|
||||||
networks: true
|
networks: true
|
||||||
verbose_output: true
|
verbose_output: true
|
||||||
register: all_networks
|
register: all_networks
|
||||||
|
|
||||||
- name: Show inspection results for all docker networks
|
- name: Show inspection results for all docker networks
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
var: all_networks.networks
|
var: all_networks.networks
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
cnames: []
|
cnames: []
|
||||||
dnetworks: []
|
dnetworks: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -36,13 +36,13 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure all containers are removed"
|
- name: "Make sure all containers are removed"
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
loop: "{{ cnames }}"
|
loop: "{{ cnames }}"
|
||||||
- name: "Make sure all networks are removed"
|
- name: "Make sure all networks are removed"
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
@ -50,5 +50,5 @@
|
|||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=') # FIXME: find out API version!
|
when: docker_api_version is version('1.25', '>=') # FIXME: find out API version!
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_network tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_network tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,19 +4,19 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container and network names
|
- name: Registering container and network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cname_1: "{{ name_prefix ~ '-container-1' }}"
|
cname_1: "{{ name_prefix ~ '-container-1' }}"
|
||||||
cname_2: "{{ name_prefix ~ '-container-2' }}"
|
cname_2: "{{ name_prefix ~ '-container-2' }}"
|
||||||
cname_3: "{{ name_prefix ~ '-container-3' }}"
|
cname_3: "{{ name_prefix ~ '-container-3' }}"
|
||||||
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
||||||
nname_2: "{{ name_prefix ~ '-network-2' }}"
|
nname_2: "{{ name_prefix ~ '-network-2' }}"
|
||||||
- name: Registering container and network names
|
- name: Registering container and network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
cnames: "{{ cnames + [cname_1, cname_2, cname_3] }}"
|
cnames: "{{ cnames + [cname_1, cname_2, cname_3] }}"
|
||||||
dnetworks: "{{ dnetworks + [nname_1, nname_2] }}"
|
dnetworks: "{{ dnetworks + [nname_1, nname_2] }}"
|
||||||
|
|
||||||
- name: Create containers
|
- name: Create containers
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
command: /bin/sleep 10m
|
command: /bin/sleep 10m
|
||||||
@ -31,13 +31,13 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Create network
|
- name: Create network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: Connect network to containers 1
|
- name: Connect network to containers 1
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -45,7 +45,7 @@
|
|||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: Connect network to containers 1 (idempotency)
|
- name: Connect network to containers 1 (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -53,7 +53,7 @@
|
|||||||
register: networks_2_idem
|
register: networks_2_idem
|
||||||
|
|
||||||
- name: Connect network to containers 1 and 2
|
- name: Connect network to containers 1 and 2
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -62,7 +62,7 @@
|
|||||||
register: networks_3
|
register: networks_3
|
||||||
|
|
||||||
- name: Connect network to containers 1 and 2 (idempotency)
|
- name: Connect network to containers 1 and 2 (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -71,7 +71,7 @@
|
|||||||
register: networks_3_idem
|
register: networks_3_idem
|
||||||
|
|
||||||
- name: Connect network to container 3
|
- name: Connect network to container 3
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -80,7 +80,7 @@
|
|||||||
register: networks_4
|
register: networks_4
|
||||||
|
|
||||||
- name: Connect network to container 3 (idempotency)
|
- name: Connect network to container 3 (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -89,7 +89,7 @@
|
|||||||
register: networks_4_idem
|
register: networks_4_idem
|
||||||
|
|
||||||
- name: Disconnect network from container 1
|
- name: Disconnect network from container 1
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -98,7 +98,7 @@
|
|||||||
register: networks_5
|
register: networks_5
|
||||||
|
|
||||||
- name: Disconnect network from container 1 (idempotency)
|
- name: Disconnect network from container 1 (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
connected:
|
connected:
|
||||||
@ -107,11 +107,11 @@
|
|||||||
register: networks_5_idem
|
register: networks_5_idem
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
- networks_2 is changed
|
- networks_2 is changed
|
||||||
@ -126,7 +126,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Delete containers
|
- name: Delete containers
|
||||||
docker_container:
|
community.docker.docker_container:
|
||||||
name: "{{ container_name }}"
|
name: "{{ container_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_kill: true
|
force_kill: true
|
||||||
|
|||||||
@ -4,21 +4,21 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering network names
|
- name: Registering network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nname_ipam_0: "{{ name_prefix ~ '-network-ipam-0' }}"
|
nname_ipam_0: "{{ name_prefix ~ '-network-ipam-0' }}"
|
||||||
nname_ipam_1: "{{ name_prefix ~ '-network-ipam-1' }}"
|
nname_ipam_1: "{{ name_prefix ~ '-network-ipam-1' }}"
|
||||||
nname_ipam_2: "{{ name_prefix ~ '-network-ipam-2' }}"
|
nname_ipam_2: "{{ name_prefix ~ '-network-ipam-2' }}"
|
||||||
nname_ipam_3: "{{ name_prefix ~ '-network-ipam-3' }}"
|
nname_ipam_3: "{{ name_prefix ~ '-network-ipam-3' }}"
|
||||||
|
|
||||||
- name: Registering network names
|
- name: Registering network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
dnetworks: "{{ dnetworks + [nname_ipam_0, nname_ipam_1, nname_ipam_2, nname_ipam_3] }}"
|
dnetworks: "{{ dnetworks + [nname_ipam_0, nname_ipam_1, nname_ipam_2, nname_ipam_3] }}"
|
||||||
|
|
||||||
|
|
||||||
#################### IPv4 IPAM config ####################
|
#################### IPv4 IPAM config ####################
|
||||||
|
|
||||||
- name: Create network with custom IPAM config
|
- name: Create network with custom IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_1 }}"
|
name: "{{ nname_ipam_1 }}"
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: 10.25.120.0/24
|
- subnet: 10.25.120.0/24
|
||||||
@ -29,12 +29,12 @@
|
|||||||
host2: 10.25.120.4
|
host2: 10.25.120.4
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
|
|
||||||
- name: Create network with custom IPAM config (idempotence)
|
- name: Create network with custom IPAM config (idempotence)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_1 }}"
|
name: "{{ nname_ipam_1 }}"
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: 10.25.120.0/24
|
- subnet: 10.25.120.0/24
|
||||||
@ -45,12 +45,12 @@
|
|||||||
host2: 10.25.120.4
|
host2: 10.25.120.4
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Change of network created with custom IPAM config
|
- name: Change of network created with custom IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_1 }}"
|
name: "{{ nname_ipam_1 }}"
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: 10.25.121.0/24
|
- subnet: 10.25.121.0/24
|
||||||
@ -61,7 +61,7 @@
|
|||||||
register: network
|
register: network
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
- network.diff.differences | length == 4
|
- network.diff.differences | length == 4
|
||||||
@ -71,18 +71,18 @@
|
|||||||
- '"ipam_config[0].aux_addresses" in network.diff.differences'
|
- '"ipam_config[0].aux_addresses" in network.diff.differences'
|
||||||
|
|
||||||
- name: Remove gateway and iprange of network with custom IPAM config
|
- name: Remove gateway and iprange of network with custom IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_1 }}"
|
name: "{{ nname_ipam_1 }}"
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: 10.25.121.0/24
|
- subnet: 10.25.121.0/24
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Cleanup network with custom IPAM config
|
- name: Cleanup network with custom IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_1 }}"
|
name: "{{ nname_ipam_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
@ -90,31 +90,31 @@
|
|||||||
#################### IPv6 IPAM config ####################
|
#################### IPv6 IPAM config ####################
|
||||||
|
|
||||||
- name: Create network with IPv6 IPAM config
|
- name: Create network with IPv6 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_2 }}"
|
name: "{{ nname_ipam_2 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: fdd1:ac8c:0557:7ce0::/64
|
- subnet: fdd1:ac8c:0557:7ce0::/64
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
|
|
||||||
- name: Create network with IPv6 IPAM config (idempotence)
|
- name: Create network with IPv6 IPAM config (idempotence)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_2 }}"
|
name: "{{ nname_ipam_2 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
- subnet: fdd1:ac8c:0557:7ce0::/64
|
- subnet: fdd1:ac8c:0557:7ce0::/64
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Change subnet of network with IPv6 IPAM config
|
- name: Change subnet of network with IPv6 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_2 }}"
|
name: "{{ nname_ipam_2 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -122,14 +122,14 @@
|
|||||||
register: network
|
register: network
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
- network.diff.differences | length == 1
|
- network.diff.differences | length == 1
|
||||||
- network.diff.differences[0] == "ipam_config[0].subnet"
|
- network.diff.differences[0] == "ipam_config[0].subnet"
|
||||||
|
|
||||||
- name: Change subnet of network with IPv6 IPAM config
|
- name: Change subnet of network with IPv6 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_2 }}"
|
name: "{{ nname_ipam_2 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -137,13 +137,13 @@
|
|||||||
register: network
|
register: network
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is failed
|
- network is failed
|
||||||
- "network.msg == '\"fdd1:ac8c:0557:7ce1::\" is not a valid CIDR'"
|
- "network.msg == '\"fdd1:ac8c:0557:7ce1::\" is not a valid CIDR'"
|
||||||
|
|
||||||
- name: Cleanup network with IPv6 IPAM config
|
- name: Cleanup network with IPv6 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_2 }}"
|
name: "{{ nname_ipam_2 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
@ -151,7 +151,7 @@
|
|||||||
#################### IPv4 and IPv6 network ####################
|
#################### IPv4 and IPv6 network ####################
|
||||||
|
|
||||||
- name: Create network with IPv6 and custom IPv4 IPAM config
|
- name: Create network with IPv6 and custom IPv4 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -159,12 +159,12 @@
|
|||||||
- subnet: fdd1:ac8c:0557:7ce2::/64
|
- subnet: fdd1:ac8c:0557:7ce2::/64
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
|
|
||||||
- name: Change subnet order of network with IPv6 and custom IPv4 IPAM config (idempotence)
|
- name: Change subnet order of network with IPv6 and custom IPv4 IPAM config (idempotence)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -172,12 +172,12 @@
|
|||||||
- subnet: 10.26.120.0/24
|
- subnet: 10.26.120.0/24
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Remove IPv6 from network with custom IPv4 and IPv6 IPAM config (change)
|
- name: Remove IPv6 from network with custom IPv4 and IPv6 IPAM config (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
enable_ipv6: false
|
enable_ipv6: false
|
||||||
ipam_config:
|
ipam_config:
|
||||||
@ -185,14 +185,14 @@
|
|||||||
register: network
|
register: network
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
- network.diff.differences | length == 1
|
- network.diff.differences | length == 1
|
||||||
- network.diff.differences[0] == "enable_ipv6"
|
- network.diff.differences[0] == "enable_ipv6"
|
||||||
|
|
||||||
- name: Cleanup network with IPv6 and custom IPv4 IPAM config
|
- name: Cleanup network with IPv6 and custom IPv4 IPAM config
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
@ -201,7 +201,7 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Create network with two IPv4 IPAM configs
|
- name: Create network with two IPv4 IPAM configs
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
driver: "macvlan"
|
driver: "macvlan"
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -211,12 +211,12 @@
|
|||||||
- subnet: 10.26.121.0/24
|
- subnet: 10.26.121.0/24
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
|
|
||||||
- name: Create network with two IPv4 IPAM configs (idempotence)
|
- name: Create network with two IPv4 IPAM configs (idempotence)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
driver: "macvlan"
|
driver: "macvlan"
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -226,12 +226,12 @@
|
|||||||
- subnet: 10.26.120.0/24
|
- subnet: 10.26.120.0/24
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Create network with two IPv4 IPAM configs (change)
|
- name: Create network with two IPv4 IPAM configs (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
driver: "macvlan"
|
driver: "macvlan"
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -242,13 +242,13 @@
|
|||||||
register: network
|
register: network
|
||||||
diff: true
|
diff: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is changed
|
- network is changed
|
||||||
- network.diff.differences | length == 1
|
- network.diff.differences | length == 1
|
||||||
|
|
||||||
- name: Create network with one IPv4 IPAM config (no change)
|
- name: Create network with one IPv4 IPAM config (no change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
driver: "macvlan"
|
driver: "macvlan"
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -257,12 +257,12 @@
|
|||||||
- subnet: 10.26.122.0/24
|
- subnet: 10.26.122.0/24
|
||||||
register: network
|
register: network
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network is not changed
|
- network is not changed
|
||||||
|
|
||||||
- name: Cleanup network
|
- name: Cleanup network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
@ -272,7 +272,7 @@
|
|||||||
#################### IPAM driver options ####################
|
#################### IPAM driver options ####################
|
||||||
|
|
||||||
- name: Create network with IPAM driver options
|
- name: Create network with IPAM driver options
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
ipam_driver: default
|
ipam_driver: default
|
||||||
ipam_driver_options:
|
ipam_driver_options:
|
||||||
@ -280,7 +280,7 @@
|
|||||||
register: network_1
|
register: network_1
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
- name: Create network with IPAM driver options (idempotence)
|
- name: Create network with IPAM driver options (idempotence)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
ipam_driver: default
|
ipam_driver: default
|
||||||
ipam_driver_options:
|
ipam_driver_options:
|
||||||
@ -289,7 +289,7 @@
|
|||||||
register: network_2
|
register: network_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
- name: Create network with IPAM driver options (change)
|
- name: Create network with IPAM driver options (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
ipam_driver: default
|
ipam_driver: default
|
||||||
ipam_driver_options:
|
ipam_driver_options:
|
||||||
@ -298,11 +298,11 @@
|
|||||||
register: network_3
|
register: network_3
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
- name: Cleanup network
|
- name: Cleanup network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_ipam_3 }}"
|
name: "{{ nname_ipam_3 }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- network_1 is changed
|
- network_1 is changed
|
||||||
- network_2 is not changed
|
- network_2 is not changed
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering network name
|
- name: Registering network name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
||||||
- name: Registering network name
|
- name: Registering network name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
dnetworks: "{{ dnetworks + [nname_1] }}"
|
dnetworks: "{{ dnetworks + [nname_1] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -15,30 +15,30 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: internal
|
- name: internal
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
internal: true
|
internal: true
|
||||||
register: internal_1
|
register: internal_1
|
||||||
|
|
||||||
- name: internal (idempotency)
|
- name: internal (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
internal: true
|
internal: true
|
||||||
register: internal_2
|
register: internal_2
|
||||||
|
|
||||||
- name: internal (change)
|
- name: internal (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
internal: false
|
internal: false
|
||||||
register: internal_3
|
register: internal_3
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- internal_1 is changed
|
- internal_1 is changed
|
||||||
- internal_2 is not changed
|
- internal_2 is not changed
|
||||||
@ -49,47 +49,47 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: driver_options
|
- name: driver_options
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver_options:
|
driver_options:
|
||||||
com.docker.network.bridge.enable_icc: 'false'
|
com.docker.network.bridge.enable_icc: 'false'
|
||||||
register: driver_options_1
|
register: driver_options_1
|
||||||
|
|
||||||
- name: driver_options (idempotency)
|
- name: driver_options (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver_options:
|
driver_options:
|
||||||
com.docker.network.bridge.enable_icc: 'false'
|
com.docker.network.bridge.enable_icc: 'false'
|
||||||
register: driver_options_2
|
register: driver_options_2
|
||||||
|
|
||||||
- name: driver_options (idempotency with string translation)
|
- name: driver_options (idempotency with string translation)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver_options:
|
driver_options:
|
||||||
com.docker.network.bridge.enable_icc: false
|
com.docker.network.bridge.enable_icc: false
|
||||||
register: driver_options_3
|
register: driver_options_3
|
||||||
|
|
||||||
- name: driver_options (change)
|
- name: driver_options (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver_options:
|
driver_options:
|
||||||
com.docker.network.bridge.enable_icc: 'true'
|
com.docker.network.bridge.enable_icc: 'true'
|
||||||
register: driver_options_4
|
register: driver_options_4
|
||||||
|
|
||||||
- name: driver_options (idempotency with string translation)
|
- name: driver_options (idempotency with string translation)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver_options:
|
driver_options:
|
||||||
com.docker.network.bridge.enable_icc: true
|
com.docker.network.bridge.enable_icc: true
|
||||||
register: driver_options_5
|
register: driver_options_5
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- driver_options_1 is changed
|
- driver_options_1 is changed
|
||||||
- driver_options_2 is not changed
|
- driver_options_2 is not changed
|
||||||
@ -103,40 +103,40 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: scope
|
- name: scope
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: bridge
|
driver: bridge
|
||||||
scope: local
|
scope: local
|
||||||
register: scope_1
|
register: scope_1
|
||||||
|
|
||||||
- name: scope (idempotency)
|
- name: scope (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: bridge
|
driver: bridge
|
||||||
scope: local
|
scope: local
|
||||||
register: scope_2
|
register: scope_2
|
||||||
|
|
||||||
- name: swarm
|
- name: swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: present
|
state: present
|
||||||
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
||||||
|
|
||||||
# Driver change alongside scope is intentional - bridge doesn't appear to support anything but local, and overlay can't downgrade to local. Additionally, overlay reports as swarm for swarm OR global, so no change is reported in that case.
|
# Driver change alongside scope is intentional - bridge doesn't appear to support anything but local, and overlay can't downgrade to local. Additionally, overlay reports as swarm for swarm OR global, so no change is reported in that case.
|
||||||
# Test output indicates that the scope is altered, at least, so manual inspection will be required to verify this going forward, unless we come up with a test driver that supports multiple scopes.
|
# Test output indicates that the scope is altered, at least, so manual inspection will be required to verify this going forward, unless we come up with a test driver that supports multiple scopes.
|
||||||
- name: scope (change)
|
- name: scope (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
scope: swarm
|
scope: swarm
|
||||||
register: scope_3
|
register: scope_3
|
||||||
|
|
||||||
- name: cleanup network
|
- name: cleanup network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- scope_1 is changed
|
- scope_1 is changed
|
||||||
- scope_2 is not changed
|
- scope_2 is not changed
|
||||||
@ -144,7 +144,7 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: cleanup swarm
|
- name: cleanup swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
@ -153,33 +153,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: attachable
|
- name: attachable
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
attachable: true
|
attachable: true
|
||||||
register: attachable_1
|
register: attachable_1
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: attachable (idempotency)
|
- name: attachable (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
attachable: true
|
attachable: true
|
||||||
register: attachable_2
|
register: attachable_2
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: attachable (change)
|
- name: attachable (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
attachable: false
|
attachable: false
|
||||||
register: attachable_3
|
register: attachable_3
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- attachable_1 is changed
|
- attachable_1 is changed
|
||||||
- attachable_2 is not changed
|
- attachable_2 is not changed
|
||||||
@ -190,7 +190,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: labels
|
- name: labels
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
labels:
|
labels:
|
||||||
ansible.test.1: hello
|
ansible.test.1: hello
|
||||||
@ -198,7 +198,7 @@
|
|||||||
register: labels_1
|
register: labels_1
|
||||||
|
|
||||||
- name: labels (idempotency)
|
- name: labels (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
labels:
|
labels:
|
||||||
ansible.test.2: world
|
ansible.test.2: world
|
||||||
@ -206,14 +206,14 @@
|
|||||||
register: labels_2
|
register: labels_2
|
||||||
|
|
||||||
- name: labels (less labels)
|
- name: labels (less labels)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
labels:
|
labels:
|
||||||
ansible.test.1: hello
|
ansible.test.1: hello
|
||||||
register: labels_3
|
register: labels_3
|
||||||
|
|
||||||
- name: labels (more labels)
|
- name: labels (more labels)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
labels:
|
labels:
|
||||||
ansible.test.1: hello
|
ansible.test.1: hello
|
||||||
@ -221,12 +221,12 @@
|
|||||||
register: labels_4
|
register: labels_4
|
||||||
|
|
||||||
- name: cleanup
|
- name: cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- labels_1 is changed
|
- labels_1 is changed
|
||||||
- labels_2 is not changed
|
- labels_2 is not changed
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering network name
|
- name: Registering network name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
nname_1: "{{ name_prefix ~ '-network-1' }}"
|
||||||
- name: Registering network name
|
- name: Registering network name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
dnetworks: "{{ dnetworks + [nname_1] }}"
|
dnetworks: "{{ dnetworks + [nname_1] }}"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
# Overlay networks require swarm initialization before they'll work
|
# Overlay networks require swarm initialization before they'll work
|
||||||
- name: swarm
|
- name: swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: present
|
state: present
|
||||||
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
advertise_addr: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|
||||||
|
|
||||||
@ -22,7 +22,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: overlay
|
- name: overlay
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -30,7 +30,7 @@
|
|||||||
register: overlay_1
|
register: overlay_1
|
||||||
|
|
||||||
- name: overlay (idempotency)
|
- name: overlay (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
driver_options:
|
driver_options:
|
||||||
@ -38,18 +38,18 @@
|
|||||||
register: overlay_2
|
register: overlay_2
|
||||||
|
|
||||||
- name: overlay (change)
|
- name: overlay (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: bridge
|
driver: bridge
|
||||||
register: overlay_3
|
register: overlay_3
|
||||||
|
|
||||||
- name: cleanup network
|
- name: cleanup network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- overlay_1 is changed
|
- overlay_1 is changed
|
||||||
- overlay_2 is not changed
|
- overlay_2 is not changed
|
||||||
@ -60,38 +60,38 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: cleanup default swarm ingress network
|
- name: cleanup default swarm ingress network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: ingress
|
name: ingress
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: ingress
|
- name: ingress
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
ingress: true
|
ingress: true
|
||||||
register: ingress_1
|
register: ingress_1
|
||||||
|
|
||||||
- name: ingress (idempotency)
|
- name: ingress (idempotency)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
ingress: true
|
ingress: true
|
||||||
register: ingress_2
|
register: ingress_2
|
||||||
|
|
||||||
- name: ingress (change)
|
- name: ingress (change)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
driver: overlay
|
driver: overlay
|
||||||
ingress: false
|
ingress: false
|
||||||
register: ingress_3
|
register: ingress_3
|
||||||
|
|
||||||
- name: cleanup network
|
- name: cleanup network
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- ingress_1 is changed
|
- ingress_1 is changed
|
||||||
- ingress_2 is not changed
|
- ingress_2 is not changed
|
||||||
@ -99,6 +99,6 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: cleanup swarm
|
- name: cleanup swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -4,29 +4,29 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering container and network names
|
- name: Registering container and network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nname_1: "{{ name_prefix ~ '-network-foo' }}"
|
nname_1: "{{ name_prefix ~ '-network-foo' }}"
|
||||||
nname_2: "{{ name_prefix ~ '-network-foobar' }}"
|
nname_2: "{{ name_prefix ~ '-network-foobar' }}"
|
||||||
- name: Registering container and network names
|
- name: Registering container and network names
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
dnetworks: "{{ dnetworks + [nname_1, nname_2] }}"
|
dnetworks: "{{ dnetworks + [nname_1, nname_2] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Create network (superstring)
|
- name: Create network (superstring)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_2 }}"
|
name: "{{ nname_2 }}"
|
||||||
state: present
|
state: present
|
||||||
register: networks_1
|
register: networks_1
|
||||||
|
|
||||||
- name: Create network (substring)
|
- name: Create network (substring)
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname_1 }}"
|
name: "{{ nname_1 }}"
|
||||||
state: present
|
state: present
|
||||||
register: networks_2
|
register: networks_2
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ network_name }}"
|
name: "{{ network_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
loop:
|
loop:
|
||||||
@ -35,7 +35,7 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: network_name
|
loop_var: network_name
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- networks_1 is changed
|
- networks_1 is changed
|
||||||
- networks_2 is changed
|
- networks_2 is changed
|
||||||
|
|||||||
@ -10,71 +10,71 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Create random network name
|
- name: Create random network name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
nname: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Make sure network is not there
|
- name: Make sure network is not there
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname }}"
|
name: "{{ nname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Inspect a non-present network
|
- name: Inspect a non-present network
|
||||||
docker_network_info:
|
community.docker.docker_network_info:
|
||||||
name: "{{ nname }}"
|
name: "{{ nname }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "not result.exists"
|
- "not result.exists"
|
||||||
- "'network' in result"
|
- "'network' in result"
|
||||||
- "result.network is none"
|
- "result.network is none"
|
||||||
|
|
||||||
- name: Make sure network exists
|
- name: Make sure network exists
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname }}"
|
name: "{{ nname }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Inspect a present network
|
- name: Inspect a present network
|
||||||
docker_network_info:
|
community.docker.docker_network_info:
|
||||||
name: "{{ nname }}"
|
name: "{{ nname }}"
|
||||||
register: result
|
register: result
|
||||||
- name: Dump docker_network_info result
|
- name: Dump docker_network_info result
|
||||||
debug: var=result
|
ansible.builtin.debug: var=result
|
||||||
|
|
||||||
- name: "Comparison: use 'docker network inspect'"
|
- name: "Comparison: use 'docker network inspect'"
|
||||||
command: docker network inspect "{{ nname }}"
|
ansible.builtin.command: docker network inspect "{{ nname }}"
|
||||||
register: docker_inspect
|
register: docker_inspect
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
- block:
|
- block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
docker_inspect_result: "{{ docker_inspect.stdout | from_json }}"
|
docker_inspect_result: "{{ docker_inspect.stdout | from_json }}"
|
||||||
- name: Dump docker inspect result
|
- name: Dump docker inspect result
|
||||||
debug: var=docker_inspect_result
|
ansible.builtin.debug: var=docker_inspect_result
|
||||||
when: docker_inspect is not failed
|
when: docker_inspect is not failed
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ nname }}"
|
name: "{{ nname }}"
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- result.exists
|
- result.exists
|
||||||
- "'network' in result"
|
- "'network' in result"
|
||||||
- "result.network is truthy"
|
- "result.network is truthy"
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "result.network == docker_inspect_result[0]"
|
- "result.network == docker_inspect_result[0]"
|
||||||
when: docker_inspect is not failed
|
when: docker_inspect is not failed
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- "'is too new. Maximum supported API version is' in docker_inspect.stderr"
|
- "'is too new. Maximum supported API version is' in docker_inspect.stderr"
|
||||||
when: docker_inspect is failed
|
when: docker_inspect is failed
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=')
|
when: docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_network_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_network_info tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -10,32 +10,32 @@
|
|||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: test_node.yml
|
- ansible.builtin.include_tasks: test_node.yml
|
||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup (trying)
|
- name: Cleanup (trying)
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
diff: false
|
diff: false
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Restart docker daemon
|
- name: Restart docker daemon
|
||||||
service:
|
ansible.builtin.service:
|
||||||
name: docker
|
name: docker
|
||||||
state: restarted
|
state: restarted
|
||||||
become: true
|
become: true
|
||||||
- name: Wait for docker daemon to be fully restarted
|
- name: Wait for docker daemon to be fully restarted
|
||||||
command: docker ps
|
ansible.builtin.command: docker ps
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
diff: false
|
diff: false
|
||||||
|
|
||||||
when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')
|
when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_node tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_node tests!"
|
||||||
when: not(docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -5,29 +5,29 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Make sure we're not already using Docker swarm
|
- name: Make sure we're not already using Docker swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Try to get docker_node_info when docker is not running in swarm mode
|
- name: Try to get docker_node_info when docker is not running in swarm mode
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert failure when called when swarm is not in use or not run on manager node
|
- name: assert failure when called when swarm is not in use or not run on manager node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is failed'
|
- 'output is failed'
|
||||||
- 'output.msg == "Error running docker swarm module: must run on swarm manager node"'
|
- 'output.msg == "Error running docker swarm module: must run on swarm manager node"'
|
||||||
|
|
||||||
- name: Create a Swarm cluster
|
- name: Create a Swarm cluster
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: present
|
state: present
|
||||||
advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}"
|
advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert changed when create a new swarm cluster
|
- name: assert changed when create a new swarm cluster
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is changed'
|
- 'output is changed'
|
||||||
- '(output.actions[0] | regex_search("New Swarm cluster created: ")) is truthy'
|
- '(output.actions[0] | regex_search("New Swarm cluster created: ")) is truthy'
|
||||||
@ -35,17 +35,17 @@
|
|||||||
- 'output.swarm_facts.JoinTokens.Worker is truthy'
|
- 'output.swarm_facts.JoinTokens.Worker is truthy'
|
||||||
|
|
||||||
- name: Try to get docker_node_info when docker is running in swarm mode and as manager
|
- name: Try to get docker_node_info when docker is running in swarm mode and as manager
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker swarm node facts
|
- name: assert reading docker swarm node facts
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.nodes | length > 0'
|
- 'output.nodes | length > 0'
|
||||||
- 'output.nodes[0].ID is string'
|
- 'output.nodes[0].ID is string'
|
||||||
|
|
||||||
- name: Register node ID
|
- name: Register node ID
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
nodeid: "{{ output.nodes[0].ID }}"
|
nodeid: "{{ output.nodes[0].ID }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
@ -53,33 +53,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to set node as manager (check)
|
- name: Try to set node as manager (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: manager
|
role: manager
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: set_as_manager_1
|
register: set_as_manager_1
|
||||||
|
|
||||||
- name: Try to set node as manager
|
- name: Try to set node as manager
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: manager
|
role: manager
|
||||||
register: set_as_manager_2
|
register: set_as_manager_2
|
||||||
|
|
||||||
- name: Try to set node as manager (idempotent)
|
- name: Try to set node as manager (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: manager
|
role: manager
|
||||||
register: set_as_manager_3
|
register: set_as_manager_3
|
||||||
|
|
||||||
- name: Try to set node as manager (idempotent check)
|
- name: Try to set node as manager (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: manager
|
role: manager
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: set_as_manager_4
|
register: set_as_manager_4
|
||||||
|
|
||||||
- name: assert that node role does has not changed
|
- name: assert that node role does has not changed
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'set_as_manager_1 is not changed'
|
- 'set_as_manager_1 is not changed'
|
||||||
- 'set_as_manager_2 is not changed'
|
- 'set_as_manager_2 is not changed'
|
||||||
@ -95,21 +95,21 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to set node as worker (check)
|
- name: Try to set node as worker (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: worker
|
role: worker
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: set_as_worker_1
|
register: set_as_worker_1
|
||||||
|
|
||||||
- name: Try to set node as worker
|
- name: Try to set node as worker
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
role: worker
|
role: worker
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: set_as_worker_2
|
register: set_as_worker_2
|
||||||
|
|
||||||
- name: assert that node cannot change role to worker
|
- name: assert that node cannot change role to worker
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'set_as_worker_1 is changed'
|
- 'set_as_worker_1 is changed'
|
||||||
- 'set_as_worker_2 is failed'
|
- 'set_as_worker_2 is failed'
|
||||||
@ -120,33 +120,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to set node availability as paused (check)
|
- name: Try to set node availability as paused (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: pause
|
availability: pause
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: set_as_paused_1
|
register: set_as_paused_1
|
||||||
|
|
||||||
- name: Try to set node availability as paused
|
- name: Try to set node availability as paused
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: pause
|
availability: pause
|
||||||
register: set_as_paused_2
|
register: set_as_paused_2
|
||||||
|
|
||||||
- name: Try to set node availability as paused (idempotent)
|
- name: Try to set node availability as paused (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: pause
|
availability: pause
|
||||||
register: set_as_paused_3
|
register: set_as_paused_3
|
||||||
|
|
||||||
- name: Try to set node availability as paused (idempotent check)
|
- name: Try to set node availability as paused (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: pause
|
availability: pause
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: set_as_paused_4
|
register: set_as_paused_4
|
||||||
|
|
||||||
- name: assert node changed availability to paused
|
- name: assert node changed availability to paused
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'set_as_paused_1 is changed'
|
- 'set_as_paused_1 is changed'
|
||||||
- 'set_as_paused_2 is changed'
|
- 'set_as_paused_2 is changed'
|
||||||
@ -159,33 +159,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to set node availability as drained (check)
|
- name: Try to set node availability as drained (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: drain
|
availability: drain
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_drain_1
|
register: output_drain_1
|
||||||
|
|
||||||
- name: Try to set node availability as drained
|
- name: Try to set node availability as drained
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: drain
|
availability: drain
|
||||||
register: output_drain_2
|
register: output_drain_2
|
||||||
|
|
||||||
- name: Try to set node availability as drained (idempotent)
|
- name: Try to set node availability as drained (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: drain
|
availability: drain
|
||||||
register: output_drain_3
|
register: output_drain_3
|
||||||
|
|
||||||
- name: Try to set node availability as drained (idempotent check)
|
- name: Try to set node availability as drained (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: drain
|
availability: drain
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_drain_4
|
register: output_drain_4
|
||||||
|
|
||||||
- name: assert node changed availability to drained
|
- name: assert node changed availability to drained
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_drain_1 is changed'
|
- 'output_drain_1 is changed'
|
||||||
- 'output_drain_2 is changed'
|
- 'output_drain_2 is changed'
|
||||||
@ -199,33 +199,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to set node availability as active (check)
|
- name: Try to set node availability as active (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: active
|
availability: active
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_active_1
|
register: output_active_1
|
||||||
|
|
||||||
- name: Try to set node availability as active
|
- name: Try to set node availability as active
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: active
|
availability: active
|
||||||
register: output_active_2
|
register: output_active_2
|
||||||
|
|
||||||
- name: Try to set node availability as active (idempotent)
|
- name: Try to set node availability as active (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: active
|
availability: active
|
||||||
register: output_active_3
|
register: output_active_3
|
||||||
|
|
||||||
- name: Try to set node availability as active (idempotent check)
|
- name: Try to set node availability as active (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
availability: active
|
availability: active
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_active_4
|
register: output_active_4
|
||||||
|
|
||||||
- name: assert node changed availability to active
|
- name: assert node changed availability to active
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_active_1 is changed'
|
- 'output_active_1 is changed'
|
||||||
- 'output_active_2 is changed'
|
- 'output_active_2 is changed'
|
||||||
@ -238,7 +238,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to add single label to swarm node (check)
|
- name: Try to add single label to swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1
|
label1: value1
|
||||||
@ -246,21 +246,21 @@
|
|||||||
register: output_add_single_label_1
|
register: output_add_single_label_1
|
||||||
|
|
||||||
- name: Try to add single label to swarm node
|
- name: Try to add single label to swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1
|
label1: value1
|
||||||
register: output_add_single_label_2
|
register: output_add_single_label_2
|
||||||
|
|
||||||
- name: Try to add single label to swarm node (idempotent)
|
- name: Try to add single label to swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1
|
label1: value1
|
||||||
register: output_add_single_label_3
|
register: output_add_single_label_3
|
||||||
|
|
||||||
- name: Try to add single label to swarm node (idempotent check)
|
- name: Try to add single label to swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1
|
label1: value1
|
||||||
@ -268,7 +268,7 @@
|
|||||||
register: output_add_single_label_4
|
register: output_add_single_label_4
|
||||||
|
|
||||||
- name: assert adding single label to swarm node
|
- name: assert adding single label to swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_add_single_label_1 is changed'
|
- 'output_add_single_label_1 is changed'
|
||||||
- 'output_add_single_label_2 is changed'
|
- 'output_add_single_label_2 is changed'
|
||||||
@ -282,7 +282,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to add five labels to swarm node (check)
|
- name: Try to add five labels to swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2
|
label2: value2
|
||||||
@ -294,7 +294,7 @@
|
|||||||
register: output_add_multiple_labels_1
|
register: output_add_multiple_labels_1
|
||||||
|
|
||||||
- name: Try to add five labels to swarm node
|
- name: Try to add five labels to swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2
|
label2: value2
|
||||||
@ -305,7 +305,7 @@
|
|||||||
register: output_add_multiple_labels_2
|
register: output_add_multiple_labels_2
|
||||||
|
|
||||||
- name: Try to add five labels to swarm node (idempotent)
|
- name: Try to add five labels to swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2
|
label2: value2
|
||||||
@ -316,7 +316,7 @@
|
|||||||
register: output_add_multiple_labels_3
|
register: output_add_multiple_labels_3
|
||||||
|
|
||||||
- name: Try to add five labels to swarm node (idempotent check)
|
- name: Try to add five labels to swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2
|
label2: value2
|
||||||
@ -328,7 +328,7 @@
|
|||||||
register: output_add_multiple_labels_4
|
register: output_add_multiple_labels_4
|
||||||
|
|
||||||
- name: assert adding multiple labels to swarm node
|
- name: assert adding multiple labels to swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_add_multiple_labels_1 is changed'
|
- 'output_add_multiple_labels_1 is changed'
|
||||||
- 'output_add_multiple_labels_2 is changed'
|
- 'output_add_multiple_labels_2 is changed'
|
||||||
@ -343,7 +343,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Update value of existing label (check)
|
- name: Update value of existing label (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1111
|
label1: value1111
|
||||||
@ -351,21 +351,21 @@
|
|||||||
register: output_update_label_1
|
register: output_update_label_1
|
||||||
|
|
||||||
- name: Update value of existing label
|
- name: Update value of existing label
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1111
|
label1: value1111
|
||||||
register: output_update_label_2
|
register: output_update_label_2
|
||||||
|
|
||||||
- name: Update value of existing label (idempotent)
|
- name: Update value of existing label (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1111
|
label1: value1111
|
||||||
register: output_update_label_3
|
register: output_update_label_3
|
||||||
|
|
||||||
- name: Update value of existing label (idempotent check)
|
- name: Update value of existing label (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label1: value1111
|
label1: value1111
|
||||||
@ -373,7 +373,7 @@
|
|||||||
register: output_update_label_4
|
register: output_update_label_4
|
||||||
|
|
||||||
- name: assert updating single label assigned to swarm node
|
- name: assert updating single label assigned to swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_update_label_1 is changed'
|
- 'output_update_label_1 is changed'
|
||||||
- 'output_update_label_2 is changed'
|
- 'output_update_label_2 is changed'
|
||||||
@ -388,7 +388,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Update value of multiple existing label (check)
|
- name: Update value of multiple existing label (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2222
|
label2: value2222
|
||||||
@ -397,7 +397,7 @@
|
|||||||
register: output_update_labels_1
|
register: output_update_labels_1
|
||||||
|
|
||||||
- name: Update value of multiple existing label
|
- name: Update value of multiple existing label
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2222
|
label2: value2222
|
||||||
@ -405,7 +405,7 @@
|
|||||||
register: output_update_labels_2
|
register: output_update_labels_2
|
||||||
|
|
||||||
- name: Update value of multiple existing label (idempotent)
|
- name: Update value of multiple existing label (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2222
|
label2: value2222
|
||||||
@ -413,7 +413,7 @@
|
|||||||
register: output_update_labels_3
|
register: output_update_labels_3
|
||||||
|
|
||||||
- name: Update value of multiple existing label (idempotent check)
|
- name: Update value of multiple existing label (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label2: value2222
|
label2: value2222
|
||||||
@ -422,7 +422,7 @@
|
|||||||
register: output_update_labels_4
|
register: output_update_labels_4
|
||||||
|
|
||||||
- name: assert updating multiple labels assigned to swarm node
|
- name: assert updating multiple labels assigned to swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_update_labels_1 is changed'
|
- 'output_update_labels_1 is changed'
|
||||||
- 'output_update_labels_2 is changed'
|
- 'output_update_labels_2 is changed'
|
||||||
@ -438,7 +438,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to remove single existing label from swarm node (check)
|
- name: Try to remove single existing label from swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label1
|
- label1
|
||||||
@ -446,21 +446,21 @@
|
|||||||
register: output_remove_label_1
|
register: output_remove_label_1
|
||||||
|
|
||||||
- name: Try to remove single existing label from swarm node
|
- name: Try to remove single existing label from swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label1
|
- label1
|
||||||
register: output_remove_label_2
|
register: output_remove_label_2
|
||||||
|
|
||||||
- name: Try to remove single existing label from swarm node (idempotent)
|
- name: Try to remove single existing label from swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label1
|
- label1
|
||||||
register: output_remove_label_3
|
register: output_remove_label_3
|
||||||
|
|
||||||
- name: Try to remove single existing label from swarm node (idempotent check)
|
- name: Try to remove single existing label from swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label1
|
- label1
|
||||||
@ -468,7 +468,7 @@
|
|||||||
register: output_remove_label_4
|
register: output_remove_label_4
|
||||||
|
|
||||||
- name: assert removing single label from swarm node
|
- name: assert removing single label from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_remove_label_1 is changed'
|
- 'output_remove_label_1 is changed'
|
||||||
- 'output_remove_label_2 is changed'
|
- 'output_remove_label_2 is changed'
|
||||||
@ -485,7 +485,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to remove single non-existing label from swarm node (check)
|
- name: Try to remove single non-existing label from swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- labelnotexist
|
- labelnotexist
|
||||||
@ -493,21 +493,21 @@
|
|||||||
register: output_remove_nonexist_label_1
|
register: output_remove_nonexist_label_1
|
||||||
|
|
||||||
- name: Try to remove single non-existing label from swarm node
|
- name: Try to remove single non-existing label from swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- labelnotexist
|
- labelnotexist
|
||||||
register: output_remove_nonexist_label_2
|
register: output_remove_nonexist_label_2
|
||||||
|
|
||||||
- name: Try to remove single non-existing label from swarm node (idempotent)
|
- name: Try to remove single non-existing label from swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- labelnotexist
|
- labelnotexist
|
||||||
register: output_remove_nonexist_label_3
|
register: output_remove_nonexist_label_3
|
||||||
|
|
||||||
- name: Try to remove single non-existing label from swarm node (idempotent check)
|
- name: Try to remove single non-existing label from swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- labelnotexist
|
- labelnotexist
|
||||||
@ -515,7 +515,7 @@
|
|||||||
register: output_remove_nonexist_label_4
|
register: output_remove_nonexist_label_4
|
||||||
|
|
||||||
- name: assert removing single non-existing label from swarm node
|
- name: assert removing single non-existing label from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_remove_nonexist_label_1 is not changed'
|
- 'output_remove_nonexist_label_1 is not changed'
|
||||||
- 'output_remove_nonexist_label_2 is not changed'
|
- 'output_remove_nonexist_label_2 is not changed'
|
||||||
@ -531,7 +531,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to remove two existing labels from swarm node (check)
|
- name: Try to remove two existing labels from swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label2
|
- label2
|
||||||
@ -540,7 +540,7 @@
|
|||||||
register: output_remove_label_1
|
register: output_remove_label_1
|
||||||
|
|
||||||
- name: Try to remove two existing labels from swarm node
|
- name: Try to remove two existing labels from swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label2
|
- label2
|
||||||
@ -548,7 +548,7 @@
|
|||||||
register: output_remove_label_2
|
register: output_remove_label_2
|
||||||
|
|
||||||
- name: Try to remove two existing labels from swarm node (idempotent)
|
- name: Try to remove two existing labels from swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label2
|
- label2
|
||||||
@ -556,7 +556,7 @@
|
|||||||
register: output_remove_label_3
|
register: output_remove_label_3
|
||||||
|
|
||||||
- name: Try to remove two existing labels from swarm node (idempotent check)
|
- name: Try to remove two existing labels from swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label2
|
- label2
|
||||||
@ -565,7 +565,7 @@
|
|||||||
register: output_remove_label_4
|
register: output_remove_label_4
|
||||||
|
|
||||||
- name: assert removing multiple labels from swarm node
|
- name: assert removing multiple labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_remove_label_1 is changed'
|
- 'output_remove_label_1 is changed'
|
||||||
- 'output_remove_label_2 is changed'
|
- 'output_remove_label_2 is changed'
|
||||||
@ -581,7 +581,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to remove mix of existing amd non-existing labels from swarm node (check)
|
- name: Try to remove mix of existing amd non-existing labels from swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label4
|
- label4
|
||||||
@ -590,7 +590,7 @@
|
|||||||
register: output_remove_mix_labels_1
|
register: output_remove_mix_labels_1
|
||||||
|
|
||||||
- name: Try to remove mix of existing amd non-existing labels from swarm node
|
- name: Try to remove mix of existing amd non-existing labels from swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label4
|
- label4
|
||||||
@ -598,7 +598,7 @@
|
|||||||
register: output_remove_mix_labels_2
|
register: output_remove_mix_labels_2
|
||||||
|
|
||||||
- name: Try to remove mix of existing amd non-existing labels from swarm node (idempotent)
|
- name: Try to remove mix of existing amd non-existing labels from swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label4
|
- label4
|
||||||
@ -606,7 +606,7 @@
|
|||||||
register: output_remove_mix_labels_3
|
register: output_remove_mix_labels_3
|
||||||
|
|
||||||
- name: Try to remove mix of existing amd non-existing labels from swarm node (idempotent check)
|
- name: Try to remove mix of existing amd non-existing labels from swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_to_remove:
|
labels_to_remove:
|
||||||
- label4
|
- label4
|
||||||
@ -615,7 +615,7 @@
|
|||||||
register: output_remove_mix_labels_4
|
register: output_remove_mix_labels_4
|
||||||
|
|
||||||
- name: assert removing mix of existing and non-existing labels from swarm node
|
- name: assert removing mix of existing and non-existing labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_remove_mix_labels_1 is changed'
|
- 'output_remove_mix_labels_1 is changed'
|
||||||
- 'output_remove_mix_labels_2 is changed'
|
- 'output_remove_mix_labels_2 is changed'
|
||||||
@ -631,7 +631,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to add and remove nonoverlapping labels at the same time (check)
|
- name: Try to add and remove nonoverlapping labels at the same time (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label7: value7
|
label7: value7
|
||||||
@ -642,7 +642,7 @@
|
|||||||
register: output_add_del_labels_1
|
register: output_add_del_labels_1
|
||||||
|
|
||||||
- name: Try to add and remove nonoverlapping labels at the same time
|
- name: Try to add and remove nonoverlapping labels at the same time
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label7: value7
|
label7: value7
|
||||||
@ -652,7 +652,7 @@
|
|||||||
register: output_add_del_labels_2
|
register: output_add_del_labels_2
|
||||||
|
|
||||||
- name: Try to add and remove nonoverlapping labels at the same time (idempotent)
|
- name: Try to add and remove nonoverlapping labels at the same time (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label7: value7
|
label7: value7
|
||||||
@ -662,7 +662,7 @@
|
|||||||
register: output_add_del_labels_3
|
register: output_add_del_labels_3
|
||||||
|
|
||||||
- name: Try to add and remove nonoverlapping labels at the same time (idempotent check)
|
- name: Try to add and remove nonoverlapping labels at the same time (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label7: value7
|
label7: value7
|
||||||
@ -673,7 +673,7 @@
|
|||||||
register: output_add_del_labels_4
|
register: output_add_del_labels_4
|
||||||
|
|
||||||
- name: assert adding and removing nonoverlapping labels from swarm node
|
- name: assert adding and removing nonoverlapping labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_add_del_labels_1 is changed'
|
- 'output_add_del_labels_1 is changed'
|
||||||
- 'output_add_del_labels_2 is changed'
|
- 'output_add_del_labels_2 is changed'
|
||||||
@ -688,7 +688,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Try to add or update and remove overlapping labels at the same time (check)
|
- name: Try to add or update and remove overlapping labels at the same time (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label22: value22
|
label22: value22
|
||||||
@ -700,7 +700,7 @@
|
|||||||
register: output_add_del_overlap_labels_1
|
register: output_add_del_overlap_labels_1
|
||||||
|
|
||||||
- name: Try to add or update and remove overlapping labels at the same time
|
- name: Try to add or update and remove overlapping labels at the same time
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label22: value22
|
label22: value22
|
||||||
@ -711,7 +711,7 @@
|
|||||||
register: output_add_del_overlap_labels_2
|
register: output_add_del_overlap_labels_2
|
||||||
|
|
||||||
- name: Try to add or update and remove overlapping labels at the same time (idempotent)
|
- name: Try to add or update and remove overlapping labels at the same time (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label22: value22
|
label22: value22
|
||||||
@ -722,7 +722,7 @@
|
|||||||
register: output_add_del_overlap_labels_3
|
register: output_add_del_overlap_labels_3
|
||||||
|
|
||||||
- name: Try to add or update and remove overlapping labels at the same time (idempotent check)
|
- name: Try to add or update and remove overlapping labels at the same time (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label22: value22
|
label22: value22
|
||||||
@ -734,7 +734,7 @@
|
|||||||
register: output_add_del_overlap_labels_4
|
register: output_add_del_overlap_labels_4
|
||||||
|
|
||||||
- name: assert adding or updating and removing overlapping labels from swarm node
|
- name: assert adding or updating and removing overlapping labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_add_del_overlap_labels_1 is changed'
|
- 'output_add_del_overlap_labels_1 is changed'
|
||||||
- 'output_add_del_overlap_labels_2 is changed'
|
- 'output_add_del_overlap_labels_2 is changed'
|
||||||
@ -750,7 +750,7 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Replace labels on swarm node (check)
|
- name: Replace labels on swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label11: value11
|
label11: value11
|
||||||
@ -760,7 +760,7 @@
|
|||||||
register: output_replace_labels_1
|
register: output_replace_labels_1
|
||||||
|
|
||||||
- name: Replace labels on swarm node
|
- name: Replace labels on swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label11: value11
|
label11: value11
|
||||||
@ -769,7 +769,7 @@
|
|||||||
register: output_replace_labels_2
|
register: output_replace_labels_2
|
||||||
|
|
||||||
- name: Replace labels on swarm node (idempotent)
|
- name: Replace labels on swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label11: value11
|
label11: value11
|
||||||
@ -778,7 +778,7 @@
|
|||||||
register: output_replace_labels_3
|
register: output_replace_labels_3
|
||||||
|
|
||||||
- name: Replace labels on swarm node (idempotent check)
|
- name: Replace labels on swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels:
|
labels:
|
||||||
label11: value11
|
label11: value11
|
||||||
@ -788,7 +788,7 @@
|
|||||||
register: output_replace_labels_4
|
register: output_replace_labels_4
|
||||||
|
|
||||||
- name: assert replacing labels from swarm node
|
- name: assert replacing labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_replace_labels_1 is changed'
|
- 'output_replace_labels_1 is changed'
|
||||||
- 'output_replace_labels_2 is changed'
|
- 'output_replace_labels_2 is changed'
|
||||||
@ -803,33 +803,33 @@
|
|||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Remove all labels from swarm node (check)
|
- name: Remove all labels from swarm node (check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_state: replace
|
labels_state: replace
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_remove_labels_1
|
register: output_remove_labels_1
|
||||||
|
|
||||||
- name: Remove all labels from swarm node
|
- name: Remove all labels from swarm node
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_state: replace
|
labels_state: replace
|
||||||
register: output_remove_labels_2
|
register: output_remove_labels_2
|
||||||
|
|
||||||
- name: Remove all labels from swarm node (idempotent)
|
- name: Remove all labels from swarm node (idempotent)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_state: replace
|
labels_state: replace
|
||||||
register: output_remove_labels_3
|
register: output_remove_labels_3
|
||||||
|
|
||||||
- name: Remove all labels from swarm node (idempotent check)
|
- name: Remove all labels from swarm node (idempotent check)
|
||||||
docker_node:
|
community.docker.docker_node:
|
||||||
hostname: "{{ nodeid }}"
|
hostname: "{{ nodeid }}"
|
||||||
labels_state: replace
|
labels_state: replace
|
||||||
check_mode: true
|
check_mode: true
|
||||||
register: output_remove_labels_4
|
register: output_remove_labels_4
|
||||||
|
|
||||||
- name: assert removing all labels from swarm node
|
- name: assert removing all labels from swarm node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output_remove_labels_1 is changed'
|
- 'output_remove_labels_1 is changed'
|
||||||
- 'output_remove_labels_2 is changed'
|
- 'output_remove_labels_2 is changed'
|
||||||
@ -839,6 +839,6 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
# and should not be used as examples of how to write Ansible roles #
|
# and should not be used as examples of how to write Ansible roles #
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- include_tasks: test_node_info.yml
|
- ansible.builtin.include_tasks: test_node_info.yml
|
||||||
when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')
|
when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_node_info tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_node_info tests!"
|
||||||
when: not(docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -5,29 +5,29 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Make sure we're not already using Docker swarm
|
- name: Make sure we're not already using Docker swarm
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: Try to get docker_node_info when docker is not running in swarm mode
|
- name: Try to get docker_node_info when docker is not running in swarm mode
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert failure when called when swarm is not in use or not run on manager node
|
- name: assert failure when called when swarm is not in use or not run on manager node
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is failed'
|
- 'output is failed'
|
||||||
- 'output.msg == "Error running docker swarm module: must run on swarm manager node"'
|
- 'output.msg == "Error running docker swarm module: must run on swarm manager node"'
|
||||||
|
|
||||||
- name: Create a Swarm cluster
|
- name: Create a Swarm cluster
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: present
|
state: present
|
||||||
advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}"
|
advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert changed when create a new swarm cluster
|
- name: assert changed when create a new swarm cluster
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output is changed'
|
- 'output is changed'
|
||||||
- '(output.actions[0] | regex_search("New Swarm cluster created: ")) is truthy'
|
- '(output.actions[0] | regex_search("New Swarm cluster created: ")) is truthy'
|
||||||
@ -35,58 +35,58 @@
|
|||||||
- 'output.swarm_facts.JoinTokens.Worker is truthy'
|
- 'output.swarm_facts.JoinTokens.Worker is truthy'
|
||||||
|
|
||||||
- name: Try to get docker_node_info when docker is running in swarm mode and as manager
|
- name: Try to get docker_node_info when docker is running in swarm mode and as manager
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading docker swarm node facts
|
- name: assert reading docker swarm node facts
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.nodes | length > 0'
|
- 'output.nodes | length > 0'
|
||||||
- 'output.nodes[0].ID is string'
|
- 'output.nodes[0].ID is string'
|
||||||
|
|
||||||
- name: Try to get docker_node_info using the self parameter
|
- name: Try to get docker_node_info using the self parameter
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
self: true
|
self: true
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading swarm facts with list of nodes option
|
- name: assert reading swarm facts with list of nodes option
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.nodes | length == 1'
|
- 'output.nodes | length == 1'
|
||||||
- 'output.nodes[0].ID is string'
|
- 'output.nodes[0].ID is string'
|
||||||
|
|
||||||
- name: Get local docker node name
|
- name: Get local docker node name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
localnodename: "{{ output.nodes[0].Description.Hostname }}"
|
localnodename: "{{ output.nodes[0].Description.Hostname }}"
|
||||||
|
|
||||||
|
|
||||||
- name: Try to get docker_node_info using the local node name as parameter
|
- name: Try to get docker_node_info using the local node name as parameter
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
name: "{{ localnodename }}"
|
name: "{{ localnodename }}"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading reading swarm facts and using node filter (random node name)
|
- name: assert reading reading swarm facts and using node filter (random node name)
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.nodes | length == 1'
|
- 'output.nodes | length == 1'
|
||||||
- 'output.nodes[0].ID is string'
|
- 'output.nodes[0].ID is string'
|
||||||
|
|
||||||
- name: Create random name
|
- name: Create random name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
randomnodename: "{{ 'node-%0x' % ((2**32) | random) }}"
|
randomnodename: "{{ 'node-%0x' % ((2**32) | random) }}"
|
||||||
|
|
||||||
- name: Try to get docker_node_info using random node name as parameter
|
- name: Try to get docker_node_info using random node name as parameter
|
||||||
docker_node_info:
|
community.docker.docker_node_info:
|
||||||
name: "{{ randomnodename }}"
|
name: "{{ randomnodename }}"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- name: assert reading reading swarm facts and using node filter (random node name)
|
- name: assert reading reading swarm facts and using node filter (random node name)
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- 'output.nodes | length == 0'
|
- 'output.nodes | length == 0'
|
||||||
|
|
||||||
always:
|
always:
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_swarm:
|
community.docker.docker_swarm:
|
||||||
state: absent
|
state: absent
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@ -4,20 +4,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Create random name prefix
|
- name: Create random name prefix
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
name_prefix: "vieux/sshfs"
|
name_prefix: "vieux/sshfs"
|
||||||
plugin_names: []
|
plugin_names: []
|
||||||
|
|
||||||
- debug:
|
- ansible.builtin.debug:
|
||||||
msg: "Using name prefix {{ name_prefix }}"
|
msg: "Using name prefix {{ name_prefix }}"
|
||||||
|
|
||||||
- name: Check whether /dev/fuse exists
|
- name: Check whether /dev/fuse exists
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: /dev/fuse
|
path: /dev/fuse
|
||||||
register: dev_fuse_stat
|
register: dev_fuse_stat
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- include_tasks: run-test.yml
|
- ansible.builtin.include_tasks: run-test.yml
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "tests/*.yml"
|
- "tests/*.yml"
|
||||||
loop_control:
|
loop_control:
|
||||||
@ -25,12 +25,12 @@
|
|||||||
|
|
||||||
always:
|
always:
|
||||||
- name: "Make sure plugin is removed"
|
- name: "Make sure plugin is removed"
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ item }}"
|
plugin_name: "{{ item }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_items: "{{ plugin_names }}"
|
with_items: "{{ plugin_names }}"
|
||||||
|
|
||||||
when: docker_api_version is version('1.25', '>=') and dev_fuse_stat.stat.exists
|
when: docker_api_version is version('1.25', '>=') and dev_fuse_stat.stat.exists
|
||||||
|
|
||||||
- fail: msg="Too old docker / docker-py version to run docker_plugin tests!"
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_plugin tests!"
|
||||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: "Loading tasks from {{ test_name }}"
|
- name: "Loading tasks from {{ test_name }}"
|
||||||
include_tasks: "{{ test_name }}"
|
ansible.builtin.include_tasks: "{{ test_name }}"
|
||||||
|
|||||||
@ -4,127 +4,127 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Registering plugin name
|
- name: Registering plugin name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
plugin_name: "{{ name_prefix }}"
|
plugin_name: "{{ name_prefix }}"
|
||||||
|
|
||||||
- name: Registering container name
|
- name: Registering container name
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
plugin_names: "{{ plugin_names + [plugin_name] }}"
|
plugin_names: "{{ plugin_names + [plugin_name] }}"
|
||||||
|
|
||||||
############ basic test ############
|
############ basic test ############
|
||||||
####################################
|
####################################
|
||||||
|
|
||||||
- name: Create a plugin (check mode)
|
- name: Create a plugin (check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_1_check
|
register: create_1_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Create a plugin
|
- name: Create a plugin
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Create a plugin (Idempotent, check mode)
|
- name: Create a plugin (Idempotent, check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_2_check
|
register: create_2_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Create a plugin (Idempotent)
|
- name: Create a plugin (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- name: Enable a plugin (check mode)
|
- name: Enable a plugin (check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_3_check
|
register: create_3_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Enable a plugin
|
- name: Enable a plugin
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_3
|
register: create_3
|
||||||
|
|
||||||
- name: Enable a plugin (Idempotent, check mode)
|
- name: Enable a plugin (Idempotent, check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_4_check
|
register: create_4_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Enable a plugin (Idempotent)
|
- name: Enable a plugin (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_4
|
register: create_4
|
||||||
|
|
||||||
- name: Disable a plugin (check mode)
|
- name: Disable a plugin (check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_1_check
|
register: absent_1_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Disable a plugin
|
- name: Disable a plugin
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_1
|
register: absent_1
|
||||||
|
|
||||||
- name: Disable a plugin (Idempotent, check mode)
|
- name: Disable a plugin (Idempotent, check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_2_check
|
register: absent_2_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Disable a plugin (Idempotent)
|
- name: Disable a plugin (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_2
|
register: absent_2
|
||||||
|
|
||||||
- name: Remove a plugin (check mode)
|
- name: Remove a plugin (check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_3_check
|
register: absent_3_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Remove a plugin
|
- name: Remove a plugin
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_3
|
register: absent_3
|
||||||
|
|
||||||
- name: Remove a plugin (Idempotent, check mode)
|
- name: Remove a plugin (Idempotent, check mode)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_4_check
|
register: absent_4_check
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
- name: Remove a plugin (Idempotent)
|
- name: Remove a plugin (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_4
|
register: absent_4
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_remove: true
|
force_remove: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1_check is changed
|
- create_1_check is changed
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
@ -147,7 +147,7 @@
|
|||||||
########################################
|
########################################
|
||||||
|
|
||||||
- name: Install a plugin with options
|
- name: Install a plugin with options
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
plugin_options:
|
plugin_options:
|
||||||
DEBUG: '1'
|
DEBUG: '1'
|
||||||
@ -155,7 +155,7 @@
|
|||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Install a plugin with options (idempotent)
|
- name: Install a plugin with options (idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
plugin_options:
|
plugin_options:
|
||||||
DEBUG: '1'
|
DEBUG: '1'
|
||||||
@ -163,7 +163,7 @@
|
|||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- name: Install a plugin with different options
|
- name: Install a plugin with different options
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
plugin_options:
|
plugin_options:
|
||||||
DEBUG: '0'
|
DEBUG: '0'
|
||||||
@ -171,7 +171,7 @@
|
|||||||
register: update_1
|
register: update_1
|
||||||
|
|
||||||
- name: Install a plugin with different options (idempotent)
|
- name: Install a plugin with different options (idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
plugin_options:
|
plugin_options:
|
||||||
DEBUG: '0'
|
DEBUG: '0'
|
||||||
@ -179,12 +179,12 @@
|
|||||||
register: update_2
|
register: update_2
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
state: absent
|
state: absent
|
||||||
force_remove: true
|
force_remove: true
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
- create_2 is not changed
|
- create_2 is not changed
|
||||||
|
|||||||
@ -4,67 +4,67 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
- name: Register plugin name and alias
|
- name: Register plugin name and alias
|
||||||
set_fact:
|
ansible.builtin.set_fact:
|
||||||
plugin_name: "{{ name_prefix }}"
|
plugin_name: "{{ name_prefix }}"
|
||||||
alias: "test"
|
alias: "test"
|
||||||
|
|
||||||
- name: Create a plugin with an alias
|
- name: Create a plugin with an alias
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_1
|
register: create_1
|
||||||
|
|
||||||
- name: Create a plugin with an alias (Idempotent)
|
- name: Create a plugin with an alias (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: present
|
state: present
|
||||||
register: create_2
|
register: create_2
|
||||||
|
|
||||||
- name: Enable a plugin with an alias
|
- name: Enable a plugin with an alias
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_3
|
register: create_3
|
||||||
|
|
||||||
- name: Enable a plugin with an alias (Idempotent)
|
- name: Enable a plugin with an alias (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: enable
|
state: enable
|
||||||
register: create_4
|
register: create_4
|
||||||
|
|
||||||
- name: Disable a plugin with an alias
|
- name: Disable a plugin with an alias
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_1
|
register: absent_1
|
||||||
|
|
||||||
- name: Disable a plugin with an alias (Idempotent)
|
- name: Disable a plugin with an alias (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: disable
|
state: disable
|
||||||
register: absent_2
|
register: absent_2
|
||||||
|
|
||||||
- name: Remove a plugin with an alias
|
- name: Remove a plugin with an alias
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_3
|
register: absent_3
|
||||||
|
|
||||||
- name: Remove a plugin with an alias (Idempotent)
|
- name: Remove a plugin with an alias (Idempotent)
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: absent
|
state: absent
|
||||||
register: absent_4
|
register: absent_4
|
||||||
|
|
||||||
- assert:
|
- ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- create_1 is changed
|
- create_1 is changed
|
||||||
- create_2 is not changed
|
- create_2 is not changed
|
||||||
@ -76,7 +76,7 @@
|
|||||||
- absent_4 is not changed
|
- absent_4 is not changed
|
||||||
|
|
||||||
- name: Cleanup plugin with an alias
|
- name: Cleanup plugin with an alias
|
||||||
docker_plugin:
|
community.docker.docker_plugin:
|
||||||
plugin_name: "{{ plugin_name }}"
|
plugin_name: "{{ plugin_name }}"
|
||||||
alias: "{{ alias }}"
|
alias: "{{ alias }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user