mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-12-15 19:42:06 +00:00
Integration tests: split up Docker setup, move docker_compose tests into own group (#718)
* Rename setup role. * Create new CI group 6, and move docker_compose v1 tests into there. * Split up Docker setup in integration tests. * Change setup_docker_compose_v1 to install its own Docker SDK for Python. * Docker SDK for Python not needed to set up registry or query host info.
This commit is contained in:
parent
80e39f84d8
commit
4929ef603a
@ -120,6 +120,7 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- stage: Docker_2_16
|
||||
displayName: Docker 2.16
|
||||
dependsOn: []
|
||||
@ -137,6 +138,7 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- stage: Docker_2_15
|
||||
displayName: Docker 2.15
|
||||
dependsOn: []
|
||||
@ -152,6 +154,7 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- stage: Docker_2_14
|
||||
displayName: Docker 2.14
|
||||
dependsOn: []
|
||||
@ -165,6 +168,7 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
|
||||
### Community Docker
|
||||
- stage: Docker_community_devel
|
||||
@ -184,6 +188,7 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
|
||||
### Remote
|
||||
- stage: Remote_devel
|
||||
@ -205,6 +210,7 @@ stages:
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- stage: Remote_2_16
|
||||
displayName: Remote 2.16
|
||||
dependsOn: []
|
||||
|
||||
32
.github/workflows/ansible-test.yml
vendored
32
.github/workflows/ansible-test.yml
vendored
@ -121,6 +121,10 @@ jobs:
|
||||
docker: fedora32
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.11'
|
||||
docker: fedora32
|
||||
python: ''
|
||||
target: azp/6/
|
||||
- ansible: '2.11'
|
||||
docker: alpine3
|
||||
python: ''
|
||||
@ -130,6 +134,10 @@ jobs:
|
||||
docker: alpine3
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.11'
|
||||
docker: alpine3
|
||||
python: ''
|
||||
target: azp/6/
|
||||
# 2.12
|
||||
- ansible: '2.12'
|
||||
docker: fedora33
|
||||
@ -139,6 +147,10 @@ jobs:
|
||||
docker: fedora33
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.12'
|
||||
docker: fedora33
|
||||
python: ''
|
||||
target: azp/6/
|
||||
- ansible: '2.12'
|
||||
docker: fedora34
|
||||
python: ''
|
||||
@ -147,6 +159,10 @@ jobs:
|
||||
docker: fedora34
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.12'
|
||||
docker: fedora34
|
||||
python: ''
|
||||
target: azp/6/
|
||||
- ansible: '2.12'
|
||||
docker: ubuntu1804
|
||||
python: ''
|
||||
@ -155,6 +171,10 @@ jobs:
|
||||
docker: ubuntu1804
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.12'
|
||||
docker: ubuntu1804
|
||||
python: ''
|
||||
target: azp/6/
|
||||
# 2.13
|
||||
- ansible: '2.13'
|
||||
docker: fedora35
|
||||
@ -164,6 +184,10 @@ jobs:
|
||||
docker: fedora35
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.13'
|
||||
docker: fedora35
|
||||
python: ''
|
||||
target: azp/6/
|
||||
- ansible: '2.13'
|
||||
docker: opensuse15py2
|
||||
python: ''
|
||||
@ -172,6 +196,10 @@ jobs:
|
||||
docker: opensuse15py2
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.13'
|
||||
docker: opensuse15py2
|
||||
python: ''
|
||||
target: azp/6/
|
||||
- ansible: '2.13'
|
||||
docker: alpine3
|
||||
python: ''
|
||||
@ -180,6 +208,10 @@ jobs:
|
||||
docker: alpine3
|
||||
python: ''
|
||||
target: azp/5/
|
||||
- ansible: '2.13'
|
||||
docker: alpine3
|
||||
python: ''
|
||||
target: azp/6/
|
||||
|
||||
steps:
|
||||
- name: >-
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -12,3 +12,7 @@
|
||||
- name: Setup docker
|
||||
import_role:
|
||||
name: setup_docker
|
||||
|
||||
- name: Setup docker
|
||||
import_role:
|
||||
name: setup_docker_python_deps
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
# 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/4
|
||||
azp/6
|
||||
destructive
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_docker_compose
|
||||
- setup_docker_compose_v1
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,4 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,4 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,4 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker_registry
|
||||
- setup_docker_python_deps
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,4 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker_registry
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
- setup_docker_sdk_for_python # for Swarm support
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,4 +5,5 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,5 +5,6 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
- setup_openssl
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,5 +5,7 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
- setup_docker_current_container_network_ip
|
||||
- setup_openssl
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -6,3 +6,4 @@
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_paramiko
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -68,7 +68,6 @@
|
||||
docker_host: "ssh://root@localhost"
|
||||
use_ssh_client: true
|
||||
register: output
|
||||
ignore_errors: true
|
||||
|
||||
- name: Make sure we got information
|
||||
assert:
|
||||
@ -80,11 +79,3 @@
|
||||
- 'output.volumes is not defined'
|
||||
- 'output.images is not defined'
|
||||
- 'output.disk_usage is not defined'
|
||||
when: docker_py_version is version('4.4.0', '>=')
|
||||
|
||||
- name: Make sure we got information
|
||||
assert:
|
||||
that:
|
||||
- output is failed
|
||||
- "'use_ssh_client=True requires Docker SDK for Python 4.4.0 or newer' in output.msg"
|
||||
when: docker_py_version is version('4.4.0', '<')
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_python_deps
|
||||
|
||||
@ -5,3 +5,4 @@
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_docker_sdk_for_python
|
||||
|
||||
@ -13,6 +13,10 @@
|
||||
import_role:
|
||||
name: setup_docker
|
||||
|
||||
- name: Setup Docker SDK for Python
|
||||
import_role:
|
||||
name: setup_docker_sdk_for_python
|
||||
|
||||
- name: Create a Swarm cluster
|
||||
community.docker.docker_swarm:
|
||||
state: present
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
|
||||
docker_cli_version: '0.0'
|
||||
docker_api_version: '0.0'
|
||||
docker_py_version: '0.0'
|
||||
docker_skip_cleanup: true
|
||||
docker_prereq_packages: []
|
||||
docker_packages:
|
||||
@ -13,10 +12,6 @@ docker_packages:
|
||||
docker_cli_packages:
|
||||
- docker-ce-cli
|
||||
|
||||
docker_pip_extra_packages: []
|
||||
docker_pip_package: docker
|
||||
docker_pip_package_limit: ''
|
||||
|
||||
docker_cleanup_packages:
|
||||
- docker
|
||||
- docker-ce
|
||||
|
||||
@ -3,13 +3,6 @@
|
||||
# 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: Remove pip packages
|
||||
pip:
|
||||
state: present
|
||||
name: "{{ [docker_pip_package] | union(docker_pip_extra_packages) }}"
|
||||
listen: cleanup docker
|
||||
when: not docker_skip_cleanup | bool
|
||||
|
||||
- name: Remove docker pagkages
|
||||
action: "{{ ansible_facts.pkg_mgr }}"
|
||||
args:
|
||||
|
||||
@ -68,36 +68,18 @@
|
||||
register: docker_api_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- name: Limit docker pypi package version to < 4.3.0
|
||||
set_fact:
|
||||
docker_pip_package_limit: '<4.3.0'
|
||||
when: (docker_api_version_stdout.stdout | default('0.0')) is version('1.39', '<')
|
||||
|
||||
- name: Install/upgrade Python requirements
|
||||
pip:
|
||||
name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
state: "{{ 'latest' if force_docker_sdk_for_python_pypi | default(false) else 'present' }}"
|
||||
notify: cleanup docker
|
||||
|
||||
# Detect docker CLI and docker-py versions
|
||||
- name: Check Docker CLI version
|
||||
command: "docker version -f {% raw %}'{{.Client.Version}}'{% endraw %}"
|
||||
register: docker_cli_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- name: Check docker-py version
|
||||
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
||||
register: docker_py_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- set_fact:
|
||||
docker_cli_version: "{{ docker_cli_version_stdout.stdout | default('0.0') }}"
|
||||
docker_api_version: "{{ docker_api_version_stdout.stdout | default('0.0') }}"
|
||||
docker_py_version: "{{ docker_py_version_stdout.stdout | default('0.0') }}"
|
||||
|
||||
- debug:
|
||||
msg: "Docker CLI version: {{ docker_cli_version }}; Docker API version: {{ docker_api_version }}; docker-py library version: {{ docker_py_version }}"
|
||||
msg: "Docker CLI version: {{ docker_cli_version }}; Docker API version: {{ docker_api_version }}"
|
||||
|
||||
- block:
|
||||
# Cleanup docker daemon
|
||||
@ -162,13 +144,3 @@
|
||||
images: "{{ docker_images.stdout_lines | default([]) }}"
|
||||
|
||||
when: docker_cli_version is version('0.0', '>')
|
||||
|
||||
- name: Inspect current container
|
||||
docker_container_info:
|
||||
name: "{{ ansible_module_container_id }}"
|
||||
register: current_container_info
|
||||
when: ansible_module_running_in_container
|
||||
|
||||
- name: Determine network name
|
||||
set_fact:
|
||||
current_container_network_ip: "{{ (current_container_info.container.NetworkSettings.Networks | dictsort)[0].0 | default('') if ansible_module_running_in_container else '' }}"
|
||||
|
||||
@ -8,6 +8,3 @@ docker_prereq_packages:
|
||||
- device-mapper-persistent-data
|
||||
- lvm2
|
||||
- libseccomp
|
||||
|
||||
docker_pip_extra_packages:
|
||||
- requests==2.6.0
|
||||
|
||||
@ -2,9 +2,3 @@
|
||||
# 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.
|
||||
# Not sure why RHEL7 needs this specific version
|
||||
- requests==2.6.0
|
||||
|
||||
@ -4,6 +4,11 @@
|
||||
# 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:
|
||||
@ -37,21 +37,41 @@
|
||||
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-compose version
|
||||
- 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
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
# 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
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
# 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
|
||||
@ -0,0 +1,10 @@
|
||||
---
|
||||
# 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
|
||||
@ -0,0 +1,9 @@
|
||||
---
|
||||
# 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
|
||||
@ -0,0 +1,7 @@
|
||||
---
|
||||
# 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_python_deps
|
||||
@ -0,0 +1,25 @@
|
||||
---
|
||||
# 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 #
|
||||
####################################################################
|
||||
|
||||
- name: Setup Docker
|
||||
when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||
block:
|
||||
- name: Detect whether we are running inside a container
|
||||
current_container_facts:
|
||||
|
||||
- name: Inspect current container
|
||||
docker_container_info:
|
||||
name: "{{ ansible_module_container_id }}"
|
||||
register: current_container_info
|
||||
when: ansible_module_running_in_container
|
||||
|
||||
- name: Determine network name
|
||||
set_fact:
|
||||
current_container_network_ip: "{{ (current_container_info.container.NetworkSettings.Networks | dictsort)[0].0 | default('') if ansible_module_running_in_container else '' }}"
|
||||
@ -0,0 +1,5 @@
|
||||
# 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
|
||||
|
||||
needs/target/setup_epel
|
||||
@ -0,0 +1,12 @@
|
||||
---
|
||||
# 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_api_packages:
|
||||
- requests
|
||||
# - paramiko
|
||||
# - pyOpenSSL
|
||||
|
||||
docker_pip_api_packages_python2:
|
||||
- backports.ssl-match-hostname
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
# 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_remote_constraints
|
||||
- setup_pkg_mgr
|
||||
@ -0,0 +1,15 @@
|
||||
---
|
||||
# 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 #
|
||||
####################################################################
|
||||
|
||||
- name: Install/upgrade Python requirements
|
||||
pip:
|
||||
name: "{{ docker_pip_api_packages + (docker_pip_api_packages_python2 if ansible_facts.python.version.major == 2 else []) }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
state: present
|
||||
@ -0,0 +1,10 @@
|
||||
---
|
||||
# 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_api_packages:
|
||||
# Not sure why RHEL7 needs this specific version of requests
|
||||
- requests==2.6.0
|
||||
# - paramiko
|
||||
# - pyOpenSSL
|
||||
@ -0,0 +1,11 @@
|
||||
---
|
||||
# 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_api_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
|
||||
# - paramiko
|
||||
# - pyOpenSSL
|
||||
@ -2,5 +2,3 @@
|
||||
# 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
|
||||
@ -3,4 +3,5 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
needs/target/setup_docker
|
||||
needs/target/setup_docker_current_container_network_ip
|
||||
needs/target/setup_openssl
|
||||
|
||||
@ -5,5 +5,7 @@
|
||||
|
||||
dependencies:
|
||||
#- setup_docker -- done in setup.yml, to work around cleanup problems!
|
||||
#- setup_docker_current_container_network_ip
|
||||
- setup_docker_python_deps
|
||||
- setup_openssl
|
||||
- setup_remote_tmp_dir
|
||||
|
||||
@ -16,6 +16,10 @@
|
||||
include_role:
|
||||
name: setup_docker
|
||||
|
||||
- name: Figure out current container's network IP
|
||||
include_role:
|
||||
name: setup_docker_current_container_network_ip
|
||||
|
||||
- name: Create random name prefix and test registry name
|
||||
set_fact:
|
||||
docker_registry_container_name_registry: '{{ ''ansible-docker-test-registry-%0x'' % ((2**32) | random) }}'
|
||||
@ -36,10 +40,10 @@
|
||||
- debug:
|
||||
msg: Using test registry name {{ docker_registry_container_name_registry }} and nginx frontend names {{ docker_registry_container_name_nginx }} and {{ docker_registry_container_name_nginx2 }}
|
||||
|
||||
- fail: msg="Too old docker / docker-py version to set up docker registry!"
|
||||
when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||
- fail: msg="Too old docker version to set up docker registry!"
|
||||
when: not(docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|
||||
|
||||
- when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')
|
||||
- when: docker_api_version is version('1.25', '>=')
|
||||
block:
|
||||
|
||||
# Set up registry container
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
# 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
|
||||
|
||||
needs/target/setup_epel
|
||||
@ -0,0 +1,10 @@
|
||||
---
|
||||
# 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_py_version: '0.0'
|
||||
|
||||
docker_pip_extra_packages: []
|
||||
docker_pip_package: docker
|
||||
docker_pip_package_limit: ''
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
# 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_remote_constraints
|
||||
- setup_pkg_mgr
|
||||
@ -0,0 +1,47 @@
|
||||
---
|
||||
# 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 #
|
||||
####################################################################
|
||||
|
||||
- name: Setup Docker SDK for Python
|
||||
when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||
block:
|
||||
- name: Include distribution specific variables
|
||||
include_vars: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
- default.yml
|
||||
paths:
|
||||
- "{{ role_path }}/vars"
|
||||
|
||||
- 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 Python requirements
|
||||
pip:
|
||||
name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
state: "{{ 'latest' if force_docker_sdk_for_python_pypi | default(false) else 'present' }}"
|
||||
|
||||
- name: Check docker-py version
|
||||
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
||||
register: docker_py_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- set_fact:
|
||||
docker_py_version: "{{ docker_py_version_stdout.stdout | default('0.0') }}"
|
||||
|
||||
- debug:
|
||||
msg: "Docker SDK for Python version: {{ docker_py_version }}"
|
||||
@ -0,0 +1,8 @@
|
||||
---
|
||||
# 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:
|
||||
# Not sure why RHEL7 needs this specific version
|
||||
- requests==2.6.0
|
||||
@ -0,0 +1,9 @@
|
||||
---
|
||||
# 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
|
||||
@ -0,0 +1,4 @@
|
||||
---
|
||||
# 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
|
||||
Loading…
Reference in New Issue
Block a user