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:
Felix Fontein
2023-12-09 17:35:54 +01:00
committed by GitHub
parent 80e39f84d8
commit 4929ef603a
86 changed files with 334 additions and 67 deletions
@@ -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