mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 11:55:04 +00:00
Prepare 4.0.0 release. (#971)
This commit is contained in:
@@ -1,6 +0,0 @@
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
azp/6
|
||||
destructive
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_docker_compose_v1
|
||||
- setup_remote_tmp_dir
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
####################################################################
|
||||
|
||||
# Create random name prefix (for containers, networks, ...)
|
||||
- name: Create random container name prefix
|
||||
set_fact:
|
||||
cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
||||
cnames: []
|
||||
dnetworks: []
|
||||
|
||||
- debug:
|
||||
msg: "Using container name prefix {{ cname_prefix }}"
|
||||
|
||||
# Run the tests
|
||||
- module_defaults:
|
||||
community.docker.docker_compose:
|
||||
api_version: '{{ omit if docker_api_version is version("1.45", "<") else "1.44" }}'
|
||||
|
||||
block:
|
||||
- include_tasks: run-test.yml
|
||||
with_fileglob:
|
||||
- "tests/*.yml"
|
||||
loop_control:
|
||||
loop_var: test_name
|
||||
|
||||
always:
|
||||
- name: "Make sure all containers are removed"
|
||||
docker_container:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
force_kill: true
|
||||
with_items: "{{ cnames }}"
|
||||
diff: false
|
||||
- name: "Make sure all networks are removed"
|
||||
docker_network:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
force: true
|
||||
with_items: "{{ dnetworks }}"
|
||||
when: docker_py_version is version('1.10.0', '>=')
|
||||
diff: false
|
||||
|
||||
when: has_docker_compose and docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')
|
||||
|
||||
- fail: msg="Too old docker / docker-py version to run all docker_container tests!"
|
||||
when: has_docker_compose and not(docker_py_version is version('3.5.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: "Loading tasks from {{ test_name }}"
|
||||
include_tasks: "{{ test_name }}"
|
||||
@@ -1,243 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Registering container name
|
||||
set_fact:
|
||||
pname: "{{ cname_prefix }}"
|
||||
cname_1: "{{ cname_prefix ~ '1' }}"
|
||||
cname_2: "{{ cname_prefix ~ '2' }}"
|
||||
|
||||
####################################################################
|
||||
## Profiles ########################################################
|
||||
####################################################################
|
||||
|
||||
- block:
|
||||
- name: Define service
|
||||
set_fact:
|
||||
test_service: |
|
||||
version: '3'
|
||||
services:
|
||||
{{ cname_1 }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 10m"'
|
||||
profiles:
|
||||
- profile_1
|
||||
- profile_all
|
||||
stop_grace_period: 1s
|
||||
{{ cname_2 }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 10m"'
|
||||
profiles:
|
||||
- profile_2
|
||||
- profile_all
|
||||
stop_grace_period: 1s
|
||||
test_cases:
|
||||
- test_name: no services enabled
|
||||
- test_name: enable 1
|
||||
profiles_value:
|
||||
- profile_1
|
||||
- test_name: stop all services
|
||||
profiles_value:
|
||||
- profile_1
|
||||
stopped_value: true
|
||||
- test_name: enable 2
|
||||
profiles_value:
|
||||
- profile_2
|
||||
- test_name: stop all services
|
||||
profiles_value:
|
||||
- profile_2
|
||||
stopped_value: true
|
||||
- test_name: enable both
|
||||
profiles_value:
|
||||
- profile_1
|
||||
- profile_2
|
||||
- test_name: stop all services
|
||||
profiles_value:
|
||||
- profile_1
|
||||
- profile_2
|
||||
stopped_value: true
|
||||
- test_name: enable all
|
||||
profiles_value:
|
||||
- profile_all
|
||||
|
||||
- name: Profiles ({{ test_case.test_name }})
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
profiles: "{{ test_case.profiles_value | default(omit) }}"
|
||||
stopped: "{{ test_case.stopped_value | default(omit) }}"
|
||||
state: present
|
||||
register: profiles_outputs
|
||||
loop: "{{ test_cases }}"
|
||||
loop_control:
|
||||
loop_var: test_case
|
||||
|
||||
- name: Cleanup
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- profiles_outputs.results[0] is not changed
|
||||
- profiles_outputs.results[1].services[cname_1][cname_1_name].state.running
|
||||
- profiles_outputs.results[1].services[cname_2] == {}
|
||||
- not profiles_outputs.results[2].services[cname_1][cname_1_name].state.running
|
||||
- profiles_outputs.results[2].services[cname_2] == {}
|
||||
- not profiles_outputs.results[3].services[cname_1][cname_1_name].state.running
|
||||
- profiles_outputs.results[3].services[cname_2][cname_2_name].state.running
|
||||
- not profiles_outputs.results[4].services[cname_1][cname_1_name].state.running
|
||||
- not profiles_outputs.results[4].services[cname_2][cname_2_name].state.running
|
||||
- profiles_outputs.results[5].services[cname_1][cname_1_name].state.running
|
||||
- profiles_outputs.results[5].services[cname_2][cname_2_name].state.running
|
||||
- not profiles_outputs.results[6].services[cname_1][cname_1_name].state.running
|
||||
- not profiles_outputs.results[6].services[cname_2][cname_2_name].state.running
|
||||
- profiles_outputs.results[7].services[cname_1][cname_1_name].state.running
|
||||
- profiles_outputs.results[7].services[cname_2][cname_2_name].state.running
|
||||
vars:
|
||||
cname_1_name: "{{ pname + '_' + cname_1 + '_1' }}"
|
||||
cname_2_name: "{{ pname + '_' + cname_2 + '_1' }}"
|
||||
when: docker_compose_version is version('1.28.0', '>=')
|
||||
|
||||
####################################################################
|
||||
## Env_file ########################################################
|
||||
####################################################################
|
||||
|
||||
- block:
|
||||
- name: Define service and files
|
||||
set_fact:
|
||||
compose_file: "{{ remote_tmp_dir }}/docker-compose.yml"
|
||||
env_file: "{{ remote_tmp_dir }}/.env"
|
||||
env_sleep_cmd: sleep 10m
|
||||
new_env_file: "{{ remote_tmp_dir }}/new.env"
|
||||
new_env_sleep_cmd: sleep 20m
|
||||
test_service: |
|
||||
version: '3'
|
||||
services:
|
||||
{{ cname_1 }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "${SLEEP_CMD}"'
|
||||
stop_grace_period: 1s
|
||||
|
||||
- name: Define testcases
|
||||
set_fact:
|
||||
test_cases:
|
||||
- test_name: Without env_file option
|
||||
- test_name: With env_file option
|
||||
env_file: "{{ new_env_file }}"
|
||||
|
||||
- name: Generate compose file
|
||||
ansible.builtin.copy:
|
||||
content: "{{ test_service }}"
|
||||
dest: "{{ compose_file }}"
|
||||
|
||||
- name: Generate .env file
|
||||
ansible.builtin.copy:
|
||||
content: |
|
||||
SLEEP_CMD="{{ env_sleep_cmd }}"
|
||||
dest: "{{ env_file }}"
|
||||
|
||||
- name: Generate new.env file
|
||||
ansible.builtin.copy:
|
||||
content: |
|
||||
SLEEP_CMD="{{ new_env_sleep_cmd }}"
|
||||
dest: "{{ new_env_file }}"
|
||||
|
||||
- name: Env_file
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
project_src: "{{ remote_tmp_dir }}"
|
||||
env_file: "{{ test_case.env_file | default(omit) }}"
|
||||
register: env_file_outputs
|
||||
loop: "{{ test_cases }}"
|
||||
loop_control:
|
||||
loop_var: test_case
|
||||
|
||||
- name: Cleanup
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "env_sleep_cmd is in (env_file_outputs.results[0].services[cname_1][cname_1_name].cmd | join(' '))"
|
||||
- "new_env_sleep_cmd is in (env_file_outputs.results[1].services[cname_1][cname_1_name].cmd | join(' '))"
|
||||
vars:
|
||||
cname_1_name: "{{ pname + '_' + cname_1 + '_1' }}"
|
||||
cname_2_name: "{{ pname + '_' + cname_2 + '_1' }}"
|
||||
|
||||
- name: Remove files
|
||||
ansible.builtin.file:
|
||||
path: "{{ file_path }}"
|
||||
state: absent
|
||||
loop_control:
|
||||
loop_var: file_path
|
||||
loop:
|
||||
- "{{ compose_file }}"
|
||||
- "{{ env_file }}"
|
||||
- "{{ new_env_file }}"
|
||||
when: docker_compose_version is version('1.25.0', '>=')
|
||||
|
||||
####################################################################
|
||||
## Project_src #####################################################
|
||||
####################################################################
|
||||
|
||||
- name: Define service and files
|
||||
set_fact:
|
||||
compose_file: "{{ remote_tmp_dir }}/docker-compose.yml"
|
||||
env_sleep_cmd: sleep 10m
|
||||
new_env_sleep_cmd: sleep 20m
|
||||
test_service: |
|
||||
version: '3'
|
||||
services:
|
||||
{{ cname_1 }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c 10m'
|
||||
stop_grace_period: 1s
|
||||
|
||||
- name: Generate compose file
|
||||
ansible.builtin.copy:
|
||||
content: "{{ test_service }}"
|
||||
dest: "{{ compose_file }}"
|
||||
|
||||
- name: Start with project_src
|
||||
docker_compose:
|
||||
project_src: "{{ remote_tmp_dir }}"
|
||||
register: project_src_1
|
||||
|
||||
- name: Start with project_src (idempotent)
|
||||
docker_compose:
|
||||
project_src: "{{ remote_tmp_dir }}"
|
||||
register: project_src_2
|
||||
|
||||
- name: Stop with project_src
|
||||
docker_compose:
|
||||
project_src: "{{ remote_tmp_dir }}"
|
||||
state: absent
|
||||
register: project_src_3
|
||||
|
||||
- name: Stop with project_src (idempotent)
|
||||
docker_compose:
|
||||
project_src: "{{ remote_tmp_dir }}"
|
||||
state: absent
|
||||
register: project_src_4
|
||||
|
||||
- name: Remove files
|
||||
ansible.builtin.file:
|
||||
path: "{{ file_path }}"
|
||||
state: absent
|
||||
loop_control:
|
||||
loop_var: file_path
|
||||
loop:
|
||||
- "{{ compose_file }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- project_src_1 is changed
|
||||
# - project_src_2 is not changed -- for some reason, this currently fails!
|
||||
- project_src_3 is changed
|
||||
- project_src_4 is not changed
|
||||
@@ -1,233 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Registering container name
|
||||
set_fact:
|
||||
pname: "{{ cname_prefix }}"
|
||||
cname: "{{ cname_prefix ~ '-hi' }}"
|
||||
- name: Registering container name
|
||||
set_fact:
|
||||
cnames: "{{ cnames + [pname ~ '-' ~ cname] }}"
|
||||
dnetworks: "{{ dnetworks + [pname ~ '_default'] }}"
|
||||
|
||||
- name: Define service
|
||||
set_fact:
|
||||
test_service: |
|
||||
version: '3'
|
||||
services:
|
||||
{{ cname }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 10m"'
|
||||
stop_grace_period: 1s
|
||||
test_service_mod: |
|
||||
version: '3'
|
||||
services:
|
||||
{{ cname }}:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 15m"'
|
||||
stop_grace_period: 1s
|
||||
|
||||
####################################################################
|
||||
## Present #########################################################
|
||||
####################################################################
|
||||
|
||||
- name: Present (check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
check_mode: true
|
||||
register: present_1
|
||||
|
||||
- name: Present
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
register: present_2
|
||||
|
||||
- name: Present (idempotent)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
register: present_3
|
||||
|
||||
- name: Present (idempotent check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
check_mode: true
|
||||
register: present_4
|
||||
|
||||
- name: Present (changed check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
check_mode: true
|
||||
register: present_5
|
||||
|
||||
- name: Present (changed)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
register: present_6
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- present_1 is changed
|
||||
- present_2 is changed
|
||||
- present_3 is not changed
|
||||
- present_4 is not changed
|
||||
- present_5 is changed
|
||||
- present_6 is changed
|
||||
|
||||
####################################################################
|
||||
## Absent ##########################################################
|
||||
####################################################################
|
||||
|
||||
- name: Absent (check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
check_mode: true
|
||||
register: absent_1
|
||||
|
||||
- name: Absent
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
register: absent_2
|
||||
|
||||
- name: Absent (idempotent)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
register: absent_3
|
||||
|
||||
- name: Absent (idempotent check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service_mod | from_yaml }}"
|
||||
check_mode: true
|
||||
register: absent_4
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- absent_1 is changed
|
||||
- absent_2 is changed
|
||||
- absent_3 is not changed
|
||||
- absent_4 is not changed
|
||||
|
||||
####################################################################
|
||||
## Stopping and starting ###########################################
|
||||
####################################################################
|
||||
|
||||
- name: Present stopped (check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
check_mode: true
|
||||
register: present_1
|
||||
|
||||
- name: Present stopped
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
register: present_2
|
||||
|
||||
- name: Present stopped (idempotent)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
register: present_3
|
||||
|
||||
- name: Present stopped (idempotent check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
check_mode: true
|
||||
register: present_4
|
||||
|
||||
- name: Started (check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
check_mode: true
|
||||
register: started_1
|
||||
|
||||
- name: Started
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
register: started_2
|
||||
|
||||
- name: Started (idempotent)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
register: started_3
|
||||
|
||||
- name: Started (idempotent check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
check_mode: true
|
||||
register: started_4
|
||||
|
||||
- name: Stopped (check)
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
check_mode: true
|
||||
register: stopped_1
|
||||
|
||||
- name: Stopped
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: present
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
stopped: true
|
||||
register: stopped_2
|
||||
|
||||
- name: Cleanup
|
||||
docker_compose:
|
||||
project_name: "{{ pname }}"
|
||||
state: absent
|
||||
definition: "{{ test_service | from_yaml }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- present_1 is changed
|
||||
- present_2 is changed
|
||||
- present_3 is not changed
|
||||
- present_4 is not changed
|
||||
- started_1 is changed
|
||||
- started_2 is changed
|
||||
- started_3 is not changed
|
||||
- started_4 is not changed
|
||||
- stopped_1 is changed
|
||||
- stopped_2 is changed
|
||||
@@ -77,6 +77,7 @@
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
name: "{{ cname }}"
|
||||
state: present
|
||||
image_name_mismatch: ignore
|
||||
register: create_5
|
||||
check_mode: true
|
||||
|
||||
@@ -85,6 +86,7 @@
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
name: "{{ cname }}"
|
||||
state: present
|
||||
image_name_mismatch: ignore
|
||||
register: create_6
|
||||
|
||||
- name: Cleanup
|
||||
|
||||
@@ -385,18 +385,16 @@
|
||||
networks_cli_compatible: true
|
||||
register: networks_7
|
||||
|
||||
- name: networks_cli_compatible=yes, networks not specified, purge_networks
|
||||
- name: networks_cli_compatible=yes, networks empty, purge_networks
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 10m"'
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
networks_cli_compatible: true
|
||||
purge_networks: true
|
||||
# To replace `purge_networks=true`, we have to specify `networks: []`:
|
||||
# comparisons:
|
||||
# networks: strict
|
||||
# networks: []
|
||||
comparisons:
|
||||
networks: strict
|
||||
networks: []
|
||||
force_kill: true
|
||||
register: networks_8
|
||||
|
||||
|
||||
@@ -2290,7 +2290,7 @@
|
||||
- interactive_3 is changed
|
||||
|
||||
####################################################################
|
||||
## image / image_comparison / ignore_image #########################
|
||||
## image / image_comparison ########################################
|
||||
####################################################################
|
||||
|
||||
- name: Pull images to make sure ignore_image test succeeds
|
||||
@@ -2570,7 +2570,8 @@
|
||||
- name: ignore_image
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_hello_world }}"
|
||||
ignore_image: true
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
register: ignore_image
|
||||
@@ -2579,8 +2580,9 @@
|
||||
- name: ignore_image (labels and env differ in image, image_comparison=current-image)
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_registry_nginx }}"
|
||||
ignore_image: true
|
||||
image_comparison: current-image
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
register: ignore_image_2
|
||||
@@ -2589,8 +2591,9 @@
|
||||
- name: ignore_image (labels and env differ in image, image_comparison=desired-image)
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_registry_nginx }}"
|
||||
ignore_image: true
|
||||
image_comparison: desired-image
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
force_kill: true
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: false
|
||||
|
||||
docker_pip_extra_packages: []
|
||||
docker_pip_package: docker
|
||||
docker_pip_package_limit: '<7.0.0'
|
||||
|
||||
docker_compose_packages:
|
||||
- docker-compose
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_remote_constraints
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
apk:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
pacman:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
apt:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,10 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
enablerepo: docker-ce-test
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
yum:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
community.general.zypper:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
force: true
|
||||
disable_gpg_check: true
|
||||
update_cache: true
|
||||
notify: cleanup docker
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
####################################################################
|
||||
|
||||
- set_fact:
|
||||
has_docker_compose: false
|
||||
|
||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||
include_tasks:
|
||||
file: setup.yml
|
||||
@@ -1,79 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Include distribution specific variables
|
||||
include_vars: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
- default.yml
|
||||
paths:
|
||||
- "{{ role_path }}/vars"
|
||||
|
||||
- block:
|
||||
- name: Include distribution specific tasks
|
||||
include_tasks: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
paths:
|
||||
- "{{ role_path }}/tasks"
|
||||
|
||||
- name: Limit docker pypi package version to < 4.3.0
|
||||
set_fact:
|
||||
docker_pip_package_limit: '<4.3.0'
|
||||
when: docker_api_version is version('1.39', '<')
|
||||
|
||||
- name: Install/upgrade Docker SDK for Python
|
||||
pip:
|
||||
name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
state: present
|
||||
|
||||
- name: Install docker-compose
|
||||
pip:
|
||||
state: present
|
||||
name: "{{ docker_compose_pip_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
|
||||
- name: Check docker-py version
|
||||
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
||||
register: docker_py_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- name: Register docker-compose version
|
||||
command: "{{ ansible_python.executable }} -c 'import compose; print(compose.__version__)'"
|
||||
register: docker_compose_version
|
||||
ignore_errors: true
|
||||
|
||||
- name: Declare docker-py and docker-compose version
|
||||
set_fact:
|
||||
docker_py_version: "{{ docker_py_version_stdout.stdout | default('0.0') }}"
|
||||
docker_compose_version: "{{ docker_compose_version.stdout | default('0.0.0') }}"
|
||||
|
||||
- debug:
|
||||
msg: "Docker SDK for Python version: {{ docker_py_version }}; Docker Compose version: {{ docker_compose_version }}"
|
||||
|
||||
- name: Declare docker-compose as existing
|
||||
set_fact:
|
||||
has_docker_compose: true
|
||||
|
||||
when: not skip_docker_compose
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages:
|
||||
- docker-compose
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
||||
# Force PyYAML to 5.3.1
|
||||
- PyYAML==5.3.1
|
||||
# Force requests to < 2.32.0 (https://github.com/docker/docker-py/issues/3256)
|
||||
- requests<2.32.0
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
||||
# Force PyYAML to 5.3.1
|
||||
- PyYAML==5.3.1
|
||||
# Force requests to < 2.32.0 (https://github.com/docker/docker-py/issues/3256)
|
||||
- requests<2.32.0
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# https://github.com/docker/docker-py/issues/3113
|
||||
- requests<2.29.0
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# https://github.com/docker/docker-py/issues/3113
|
||||
- requests<2.29.0
|
||||
@@ -1,10 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# Not sure why RHEL7 needs this specific version
|
||||
- requests==2.6.0
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# Installing requests >=2.12.0 on Ubuntu 14.04 breaks certificate validation. We restrict to an older version
|
||||
# to ensure out get_url tests work out fine. This is only an issue if pyOpenSSL is also installed.
|
||||
- requests==2.6.0
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_pip_packages: []
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -1,14 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-2.6!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-2.7!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-3.5!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py future-import-boilerplate
|
||||
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
|
||||
plugins/modules/current_container_facts.py validate-modules:return-syntax-error
|
||||
plugins/module_utils/module_container/module.py compile-2.6!skip # Uses Python 2.7+ syntax
|
||||
plugins/module_utils/module_container/module.py import-2.6!skip # Uses Python 2.7+ syntax
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2_pull.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container.py import-2.6!skip # Import uses Python 2.7+ syntax
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
||||
@@ -1,3 +0,0 @@
|
||||
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-FileCopyrightText: Ansible Project
|
||||
@@ -1,6 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/current_container_facts.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2_pull.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
||||
@@ -1,3 +0,0 @@
|
||||
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-FileCopyrightText: Ansible Project
|
||||
@@ -1,4 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
||||
@@ -1,3 +0,0 @@
|
||||
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-FileCopyrightText: Ansible Project
|
||||
@@ -1,3 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
||||
@@ -1,3 +0,0 @@
|
||||
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-FileCopyrightText: Ansible Project
|
||||
Reference in New Issue
Block a user