mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-12-17 20:38:42 +00:00
Prepare 4.0.0 release. (#971)
This commit is contained in:
parent
8c5b90df55
commit
f7823ea626
@ -99,17 +99,6 @@ stages:
|
|||||||
test: '2.16/sanity/1'
|
test: '2.16/sanity/1'
|
||||||
- name: Units
|
- name: Units
|
||||||
test: '2.16/units/1'
|
test: '2.16/units/1'
|
||||||
- stage: Ansible_2_15
|
|
||||||
displayName: Sanity & Units 2.15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
targets:
|
|
||||||
- name: Sanity
|
|
||||||
test: '2.15/sanity/1'
|
|
||||||
- name: Units
|
|
||||||
test: '2.15/units/1'
|
|
||||||
|
|
||||||
### Docker
|
### Docker
|
||||||
- stage: Docker_devel
|
- stage: Docker_devel
|
||||||
@ -131,7 +120,6 @@ stages:
|
|||||||
groups:
|
groups:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
# - 6 -- some images no longer work with docker-compose v1
|
|
||||||
- stage: Docker_2_18
|
- stage: Docker_2_18
|
||||||
displayName: Docker 2.18
|
displayName: Docker 2.18
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -145,7 +133,6 @@ stages:
|
|||||||
groups:
|
groups:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
# - 6 -- some images no longer work with docker-compose v1
|
|
||||||
- stage: Docker_2_17
|
- stage: Docker_2_17
|
||||||
displayName: Docker 2.17
|
displayName: Docker 2.17
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -163,7 +150,6 @@ stages:
|
|||||||
groups:
|
groups:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
- 6
|
|
||||||
- stage: Docker_2_16
|
- stage: Docker_2_16
|
||||||
displayName: Docker 2.16
|
displayName: Docker 2.16
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -183,23 +169,6 @@ stages:
|
|||||||
groups:
|
groups:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
- 6
|
|
||||||
- stage: Docker_2_15
|
|
||||||
displayName: Docker 2.15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
testFormat: 2.15/linux/{0}
|
|
||||||
targets:
|
|
||||||
- name: Fedora 37
|
|
||||||
test: fedora37
|
|
||||||
- name: CentOS 7
|
|
||||||
test: centos7
|
|
||||||
groups:
|
|
||||||
- 4
|
|
||||||
- 5
|
|
||||||
- 6
|
|
||||||
|
|
||||||
### Community Docker
|
### Community Docker
|
||||||
- stage: Docker_community_devel
|
- stage: Docker_community_devel
|
||||||
@ -219,7 +188,6 @@ stages:
|
|||||||
groups:
|
groups:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
- 6
|
|
||||||
|
|
||||||
### Remote
|
### Remote
|
||||||
- stage: Remote_devel
|
- stage: Remote_devel
|
||||||
@ -238,7 +206,6 @@ stages:
|
|||||||
- 3
|
- 3
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
|
||||||
- stage: Remote_2_18
|
- stage: Remote_2_18
|
||||||
displayName: Remote 2.18
|
displayName: Remote 2.18
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -255,7 +222,6 @@ stages:
|
|||||||
- 3
|
- 3
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
|
||||||
- stage: Remote_2_17
|
- stage: Remote_2_17
|
||||||
displayName: Remote 2.17
|
displayName: Remote 2.17
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -272,7 +238,6 @@ stages:
|
|||||||
- 3
|
- 3
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
|
||||||
- stage: Remote_2_16
|
- stage: Remote_2_16
|
||||||
displayName: Remote 2.16
|
displayName: Remote 2.16
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
@ -286,24 +251,6 @@ stages:
|
|||||||
# Currently always hangs in group 2
|
# Currently always hangs in group 2
|
||||||
# - name: RHEL 8.8
|
# - name: RHEL 8.8
|
||||||
# test: rhel/8.8
|
# test: rhel/8.8
|
||||||
groups:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 3
|
|
||||||
- 4
|
|
||||||
- 5
|
|
||||||
- stage: Remote_2_15
|
|
||||||
displayName: Remote 2.15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/matrix.yml
|
|
||||||
parameters:
|
|
||||||
testFormat: 2.15/{0}
|
|
||||||
targets:
|
|
||||||
- name: RHEL 9.1
|
|
||||||
test: rhel/9.1
|
|
||||||
- name: RHEL 8.7
|
|
||||||
test: rhel/8.7
|
|
||||||
- name: RHEL 7.9
|
- name: RHEL 7.9
|
||||||
test: rhel/7.9
|
test: rhel/7.9
|
||||||
groups:
|
groups:
|
||||||
@ -322,17 +269,14 @@ stages:
|
|||||||
- Ansible_2_18
|
- Ansible_2_18
|
||||||
- Ansible_2_17
|
- Ansible_2_17
|
||||||
- Ansible_2_16
|
- Ansible_2_16
|
||||||
- Ansible_2_15
|
|
||||||
- Remote_devel
|
- Remote_devel
|
||||||
- Remote_2_18
|
- Remote_2_18
|
||||||
- Remote_2_17
|
- Remote_2_17
|
||||||
- Remote_2_16
|
- Remote_2_16
|
||||||
- Remote_2_15
|
|
||||||
- Docker_devel
|
- Docker_devel
|
||||||
- Docker_2_18
|
- Docker_2_18
|
||||||
- Docker_2_17
|
- Docker_2_17
|
||||||
- Docker_2_16
|
- Docker_2_16
|
||||||
- Docker_2_15
|
|
||||||
- Docker_community_devel
|
- Docker_community_devel
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/coverage.yml
|
- template: templates/coverage.yml
|
||||||
|
|||||||
112
.github/workflows/ansible-test.yml
vendored
112
.github/workflows/ansible-test.yml
vendored
@ -29,10 +29,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
ansible:
|
ansible:
|
||||||
- '2.11'
|
- '2.15'
|
||||||
- '2.12'
|
|
||||||
- '2.13'
|
|
||||||
- '2.14'
|
|
||||||
# Ansible-test on various stable branches does not yet work well with cgroups v2.
|
# Ansible-test on various stable branches does not yet work well with cgroups v2.
|
||||||
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
|
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
|
||||||
# image for these stable branches. The list of branches where this is necessary will
|
# image for these stable branches. The list of branches where this is necessary will
|
||||||
@ -71,10 +68,7 @@ jobs:
|
|||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
ansible:
|
ansible:
|
||||||
- '2.11'
|
- '2.15'
|
||||||
- '2.12'
|
|
||||||
- '2.13'
|
|
||||||
- '2.14'
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Perform unit testing against Ansible version ${{ matrix.ansible }}
|
- name: Perform unit testing against Ansible version ${{ matrix.ansible }}
|
||||||
@ -118,107 +112,15 @@ jobs:
|
|||||||
exclude:
|
exclude:
|
||||||
- ansible: ''
|
- ansible: ''
|
||||||
include:
|
include:
|
||||||
# 2.11
|
# 2.15
|
||||||
- ansible: '2.11'
|
- ansible: '2.15'
|
||||||
docker: alpine3
|
docker: fedora37
|
||||||
python: ''
|
python: ''
|
||||||
target: azp/4/
|
target: azp/4/
|
||||||
extra-constraints: urllib3 < 2.0.0
|
- ansible: '2.15'
|
||||||
- ansible: '2.11'
|
docker: fedora37
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
python: ''
|
||||||
target: azp/5/
|
target: azp/5/
|
||||||
- ansible: '2.11'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
# 2.12
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
# 2.13
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
# 2.14
|
|
||||||
- ansible: '2.14'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/4/
|
|
||||||
- ansible: '2.14'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/5/
|
|
||||||
- ansible: '2.14'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: azp/6/
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Perform integration testing against Ansible version ${{ matrix.ansible }} under Python ${{ matrix.python }}
|
- name: Perform integration testing against Ansible version ${{ matrix.ansible }} under Python ${{ matrix.python }}
|
||||||
|
|||||||
13
.github/workflows/ee.yml
vendored
13
.github/workflows/ee.yml
vendored
@ -57,19 +57,6 @@ jobs:
|
|||||||
ansible_runner: ansible-runner
|
ansible_runner: ansible-runner
|
||||||
base_image: quay.io/rockylinux/rockylinux:9
|
base_image: quay.io/rockylinux/rockylinux:9
|
||||||
pre_base: '"#"'
|
pre_base: '"#"'
|
||||||
- name: ansible-core 2.14 @ CentOS Stream 9
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/stable-2.14.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
base_image: quay.io/centos/centos:stream9
|
|
||||||
pre_base: '"#"'
|
|
||||||
- name: ansible-core 2.13 @ RHEL UBI 8
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/stable-2.13.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
other_deps: |2
|
|
||||||
python_interpreter:
|
|
||||||
package_system: python39 python39-pip python39-wheel python39-cryptography
|
|
||||||
base_image: docker.io/redhat/ubi8:latest
|
|
||||||
pre_base: '"#"'
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
|
|||||||
@ -37,9 +37,7 @@ For more information about communication, see the [Ansible communication guide](
|
|||||||
|
|
||||||
## Tested with Ansible
|
## Tested with Ansible
|
||||||
|
|
||||||
Tested with the current ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, ansible-core 2.14, ansible-core 2.15, ansible-core 2.16, ansible-core 2.17, and ansible-core 2.18 releases, and the current development version of ansible-core. Ansible/ansible-base versions before 2.11.0 are not supported.
|
Tested with the current ansible-core 2.15, ansible-core 2.16, ansible-core 2.17, and ansible-core 2.18 releases, and the current development version of ansible-core. Ansible/ansible-base versions before 2.15.0 are not supported.
|
||||||
|
|
||||||
Please note that Ansible 2.9 and ansible-base 2.10 are no longer supported. If you need to use them, use community.docker 2.x.y. Also note that this collection does not work with ansible-core 2.11 (this includes ansible-base and Ansible 2.9) on Python 3.12+.
|
|
||||||
|
|
||||||
## External requirements
|
## External requirements
|
||||||
|
|
||||||
|
|||||||
9
changelogs/fragments/4.0.0.yml
Normal file
9
changelogs/fragments/4.0.0.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
release_summary: Major release with removed deprecated features.
|
||||||
|
removed_features:
|
||||||
|
- "The collection no longer supports ansible-core 2.11, 2.12, 2.13, and 2.14. You need ansible-core 2.15.0 or newer to use community.docker 4.x.y (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
|
- "The docker_compose module has been removed. Please migrate to community.docker.docker_compose_v2 (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
|
- "various modules and plugins - remove the ``ssl_version`` option (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
|
- "docker_container - the ``ignore_image`` option has been removed. Use ``image: ignore`` in ``comparisons`` instead (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
|
- "docker_container - the ``purge_networks`` option has been removed. Use ``networks: strict`` in ``comparisons`` instead and make sure that ``networks`` is specified (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
|
breaking_changes:
|
||||||
|
- "docker_container - the default of ``image_name_mismatch`` changed from ``ignore`` to ``recreate`` (https://github.com/ansible-collections/community.docker/pull/971)."
|
||||||
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace: community
|
namespace: community
|
||||||
name: docker
|
name: docker
|
||||||
version: 3.13.2
|
version: 4.0.0
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- Ansible Docker Working Group
|
- Ansible Docker Working Group
|
||||||
|
|||||||
@ -3,10 +3,9 @@
|
|||||||
# 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
|
||||||
|
|
||||||
requires_ansible: '>=2.11.0'
|
requires_ansible: '>=2.15.0'
|
||||||
action_groups:
|
action_groups:
|
||||||
docker:
|
docker:
|
||||||
- docker_compose
|
|
||||||
- docker_compose_v2
|
- docker_compose_v2
|
||||||
- docker_compose_v2_exec
|
- docker_compose_v2_exec
|
||||||
- docker_compose_v2_pull
|
- docker_compose_v2_pull
|
||||||
@ -47,6 +46,6 @@ action_groups:
|
|||||||
plugin_routing:
|
plugin_routing:
|
||||||
modules:
|
modules:
|
||||||
docker_compose:
|
docker_compose:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 4.0.0
|
removal_version: 4.0.0
|
||||||
warning_text: This module uses docker-compose v1, which is End of Life since July 2022. Please migrate to community.docker.docker_compose_v2.
|
warning_text: This module uses docker-compose v1, which is End of Life since July 2022. Please migrate to community.docker.docker_compose_v2.
|
||||||
|
|||||||
@ -21,7 +21,6 @@ notes:
|
|||||||
with Python's C(SSLSocket)s. See U(https://github.com/ansible-collections/community.docker/issues/605) for more information.
|
with Python's C(SSLSocket)s. See U(https://github.com/ansible-collections/community.docker/issues/605) for more information.
|
||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
- community.docker.docker.api_documentation
|
- community.docker.docker.api_documentation
|
||||||
- community.docker.docker.ssl_version_deprecation
|
|
||||||
- community.docker.docker.var_names
|
- community.docker.docker.var_names
|
||||||
options:
|
options:
|
||||||
remote_user:
|
remote_user:
|
||||||
|
|||||||
@ -71,14 +71,6 @@ options:
|
|||||||
the file C(key.pem) from the directory specified in the environment variable E(DOCKER_CERT_PATH) will be used.
|
the file C(key.pem) from the directory specified in the environment variable E(DOCKER_CERT_PATH) will be used.
|
||||||
type: path
|
type: path
|
||||||
aliases: [ tls_client_key, key_path ]
|
aliases: [ tls_client_key, key_path ]
|
||||||
ssl_version:
|
|
||||||
description:
|
|
||||||
- Provide a valid SSL version number. Default value determined by L(SSL Python module, https://docs.python.org/3/library/ssl.html).
|
|
||||||
- If the value is not specified in the task, the value of environment variable E(DOCKER_SSL_VERSION) will be
|
|
||||||
used instead.
|
|
||||||
- B(Note:) this option is no longer supported for Docker SDK for Python 7.0.0+. Specifying it with Docker SDK for
|
|
||||||
Python 7.0.0 or newer will lead to an error.
|
|
||||||
type: str
|
|
||||||
tls:
|
tls:
|
||||||
description:
|
description:
|
||||||
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
||||||
@ -110,7 +102,7 @@ options:
|
|||||||
|
|
||||||
notes:
|
notes:
|
||||||
- Connect to the Docker daemon by providing parameters with each task or by defining environment variables.
|
- Connect to the Docker daemon by providing parameters with each task or by defining environment variables.
|
||||||
You can define E(DOCKER_HOST), E(DOCKER_TLS_HOSTNAME), E(DOCKER_API_VERSION), E(DOCKER_CERT_PATH), E(DOCKER_SSL_VERSION),
|
You can define E(DOCKER_HOST), E(DOCKER_TLS_HOSTNAME), E(DOCKER_API_VERSION), E(DOCKER_CERT_PATH),
|
||||||
E(DOCKER_TLS), E(DOCKER_TLS_VERIFY) and E(DOCKER_TIMEOUT). If you are using docker machine, run the script shipped
|
E(DOCKER_TLS), E(DOCKER_TLS_VERIFY) and E(DOCKER_TIMEOUT). If you are using docker machine, run the script shipped
|
||||||
with the product that sets up the environment. It will set these variables for you. See
|
with the product that sets up the environment. It will set these variables for you. See
|
||||||
U(https://docs.docker.com/machine/reference/env/) for more details.
|
U(https://docs.docker.com/machine/reference/env/) for more details.
|
||||||
@ -148,9 +140,6 @@ options:
|
|||||||
client_key:
|
client_key:
|
||||||
vars:
|
vars:
|
||||||
- name: ansible_docker_client_key
|
- name: ansible_docker_client_key
|
||||||
ssl_version:
|
|
||||||
vars:
|
|
||||||
- name: ansible_docker_ssl_version
|
|
||||||
tls:
|
tls:
|
||||||
vars:
|
vars:
|
||||||
- name: ansible_docker_tls
|
- name: ansible_docker_tls
|
||||||
@ -250,12 +239,6 @@ options:
|
|||||||
the file C(key.pem) from the directory specified in the environment variable E(DOCKER_CERT_PATH) will be used.
|
the file C(key.pem) from the directory specified in the environment variable E(DOCKER_CERT_PATH) will be used.
|
||||||
type: path
|
type: path
|
||||||
aliases: [ tls_client_key, key_path ]
|
aliases: [ tls_client_key, key_path ]
|
||||||
ssl_version:
|
|
||||||
description:
|
|
||||||
- Provide a valid SSL version number. Default value determined by L(SSL Python module, https://docs.python.org/3/library/ssl.html).
|
|
||||||
- If the value is not specified in the task, the value of environment variable E(DOCKER_SSL_VERSION) will be
|
|
||||||
used instead.
|
|
||||||
type: str
|
|
||||||
tls:
|
tls:
|
||||||
description:
|
description:
|
||||||
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
||||||
@ -286,7 +269,7 @@ options:
|
|||||||
|
|
||||||
notes:
|
notes:
|
||||||
- Connect to the Docker daemon by providing parameters with each task or by defining environment variables.
|
- Connect to the Docker daemon by providing parameters with each task or by defining environment variables.
|
||||||
You can define E(DOCKER_HOST), E(DOCKER_TLS_HOSTNAME), E(DOCKER_API_VERSION), E(DOCKER_CERT_PATH), E(DOCKER_SSL_VERSION),
|
You can define E(DOCKER_HOST), E(DOCKER_TLS_HOSTNAME), E(DOCKER_API_VERSION), E(DOCKER_CERT_PATH),
|
||||||
E(DOCKER_TLS), E(DOCKER_TLS_VERIFY) and E(DOCKER_TIMEOUT). If you are using docker machine, run the script shipped
|
E(DOCKER_TLS), E(DOCKER_TLS_VERIFY) and E(DOCKER_TIMEOUT). If you are using docker machine, run the script shipped
|
||||||
with the product that sets up the environment. It will set these variables for you. See
|
with the product that sets up the environment. It will set these variables for you. See
|
||||||
U(https://docs.docker.com/machine/reference/env/) for more details.
|
U(https://docs.docker.com/machine/reference/env/) for more details.
|
||||||
@ -394,13 +377,3 @@ notes:
|
|||||||
- This module does B(not) use the L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) to
|
- This module does B(not) use the L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) to
|
||||||
communicate with the Docker daemon. It directly calls the Docker CLI program.
|
communicate with the Docker daemon. It directly calls the Docker CLI program.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# DEPRECATED: this will be removed from community.docker 4.0.0! Use with care!
|
|
||||||
SSL_VERSION_DEPRECATION = '''
|
|
||||||
options:
|
|
||||||
ssl_version:
|
|
||||||
deprecated:
|
|
||||||
why: This was necessary a long time ago to handle problems with older TLS/SSL versions. It is no longer necessary nowadays.
|
|
||||||
version: 4.0.0
|
|
||||||
alternatives: None.
|
|
||||||
'''
|
|
||||||
|
|||||||
@ -21,7 +21,6 @@ author:
|
|||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
- ansible.builtin.constructed
|
- ansible.builtin.constructed
|
||||||
- community.docker.docker.api_documentation
|
- community.docker.docker.api_documentation
|
||||||
- community.docker.docker.ssl_version_deprecation
|
|
||||||
- community.library_inventory_filtering_v1.inventory_filter
|
- community.library_inventory_filtering_v1.inventory_filter
|
||||||
description:
|
description:
|
||||||
- Reads inventories from the Docker API.
|
- Reads inventories from the Docker API.
|
||||||
|
|||||||
@ -77,15 +77,6 @@ DOCUMENTATION = r'''
|
|||||||
description: When verifying the authenticity of the Docker host server, provide the expected name of
|
description: When verifying the authenticity of the Docker host server, provide the expected name of
|
||||||
the server.
|
the server.
|
||||||
type: str
|
type: str
|
||||||
ssl_version:
|
|
||||||
description:
|
|
||||||
- Provide a valid SSL version number. Default value determined
|
|
||||||
by L(SSL Python module, https://docs.python.org/3/library/ssl.html).
|
|
||||||
type: str
|
|
||||||
deprecated:
|
|
||||||
why: This was necessary a long time ago to handle problems with SSL versions. It is no longer necessary nowadays.
|
|
||||||
version: 4.0.0
|
|
||||||
alternatives: None.
|
|
||||||
api_version:
|
api_version:
|
||||||
description:
|
description:
|
||||||
- The version of the Docker API running on the Docker Host.
|
- The version of the Docker API running on the Docker Host.
|
||||||
@ -197,7 +188,6 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
|
|||||||
tls_hostname=self.get_option('tls_hostname'),
|
tls_hostname=self.get_option('tls_hostname'),
|
||||||
api_version=self.get_option('api_version'),
|
api_version=self.get_option('api_version'),
|
||||||
timeout=self.get_option('timeout'),
|
timeout=self.get_option('timeout'),
|
||||||
ssl_version=self.get_option('ssl_version'),
|
|
||||||
use_ssh_client=self.get_option('use_ssh_client'),
|
use_ssh_client=self.get_option('use_ssh_client'),
|
||||||
debug=None,
|
debug=None,
|
||||||
)
|
)
|
||||||
|
|||||||
@ -122,18 +122,6 @@ if not HAS_DOCKER_PY:
|
|||||||
|
|
||||||
|
|
||||||
def _get_tls_config(fail_function, **kwargs):
|
def _get_tls_config(fail_function, **kwargs):
|
||||||
if 'ssl_version' in kwargs and LooseVersion(docker_version) >= LooseVersion('7.0.0b1'):
|
|
||||||
ssl_version = kwargs.pop('ssl_version')
|
|
||||||
if ssl_version is not None:
|
|
||||||
fail_function(
|
|
||||||
"ssl_version is not compatible with Docker SDK for Python 7.0.0+. You are using"
|
|
||||||
" Docker SDK for Python {docker_py_version}. The ssl_version option (value: {ssl_version})"
|
|
||||||
" has either been set directly or with the environment variable DOCKER_SSL_VERSION."
|
|
||||||
" Make sure it is not set, or switch to an older version of Docker SDK for Python.".format(
|
|
||||||
docker_py_version=docker_version,
|
|
||||||
ssl_version=ssl_version,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
if 'assert_hostname' in kwargs and LooseVersion(docker_version) >= LooseVersion('7.0.0b1'):
|
if 'assert_hostname' in kwargs and LooseVersion(docker_version) >= LooseVersion('7.0.0b1'):
|
||||||
assert_hostname = kwargs.pop('assert_hostname')
|
assert_hostname = kwargs.pop('assert_hostname')
|
||||||
if assert_hostname is not None:
|
if assert_hostname is not None:
|
||||||
@ -174,7 +162,6 @@ def get_connect_params(auth, fail_function):
|
|||||||
tls_config = dict(
|
tls_config = dict(
|
||||||
verify=True,
|
verify=True,
|
||||||
assert_hostname=auth['tls_hostname'],
|
assert_hostname=auth['tls_hostname'],
|
||||||
ssl_version=auth['ssl_version'],
|
|
||||||
fail_function=fail_function,
|
fail_function=fail_function,
|
||||||
)
|
)
|
||||||
if auth['cert_path'] and auth['key_path']:
|
if auth['cert_path'] and auth['key_path']:
|
||||||
@ -186,7 +173,6 @@ def get_connect_params(auth, fail_function):
|
|||||||
# TLS without verification
|
# TLS without verification
|
||||||
tls_config = dict(
|
tls_config = dict(
|
||||||
verify=False,
|
verify=False,
|
||||||
ssl_version=auth['ssl_version'],
|
|
||||||
fail_function=fail_function,
|
fail_function=fail_function,
|
||||||
)
|
)
|
||||||
if auth['cert_path'] and auth['key_path']:
|
if auth['cert_path'] and auth['key_path']:
|
||||||
@ -334,7 +320,6 @@ class AnsibleDockerClientBase(Client):
|
|||||||
cacert_path=self._get_value('cacert_path', params['ca_path'], 'DOCKER_CERT_PATH', None, type='str'),
|
cacert_path=self._get_value('cacert_path', params['ca_path'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
cert_path=self._get_value('cert_path', params['client_cert'], 'DOCKER_CERT_PATH', None, type='str'),
|
cert_path=self._get_value('cert_path', params['client_cert'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
key_path=self._get_value('key_path', params['client_key'], 'DOCKER_CERT_PATH', None, type='str'),
|
key_path=self._get_value('key_path', params['client_key'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
ssl_version=self._get_value('ssl_version', params['ssl_version'], 'DOCKER_SSL_VERSION', None, type='str'),
|
|
||||||
tls=self._get_value('tls', params['tls'], 'DOCKER_TLS', DEFAULT_TLS, type='bool'),
|
tls=self._get_value('tls', params['tls'], 'DOCKER_TLS', DEFAULT_TLS, type='bool'),
|
||||||
tls_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
tls_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
||||||
DEFAULT_TLS_VERIFY, type='bool'),
|
DEFAULT_TLS_VERIFY, type='bool'),
|
||||||
|
|||||||
@ -83,7 +83,6 @@ def get_connect_params(auth_data, fail_function):
|
|||||||
tls_config = dict(
|
tls_config = dict(
|
||||||
verify=True,
|
verify=True,
|
||||||
assert_hostname=auth_data['tls_hostname'],
|
assert_hostname=auth_data['tls_hostname'],
|
||||||
ssl_version=auth_data['ssl_version'],
|
|
||||||
fail_function=fail_function,
|
fail_function=fail_function,
|
||||||
)
|
)
|
||||||
if auth_data['cert_path'] and auth_data['key_path']:
|
if auth_data['cert_path'] and auth_data['key_path']:
|
||||||
@ -95,7 +94,6 @@ def get_connect_params(auth_data, fail_function):
|
|||||||
# TLS without verification
|
# TLS without verification
|
||||||
tls_config = dict(
|
tls_config = dict(
|
||||||
verify=False,
|
verify=False,
|
||||||
ssl_version=auth_data['ssl_version'],
|
|
||||||
fail_function=fail_function,
|
fail_function=fail_function,
|
||||||
)
|
)
|
||||||
if auth_data['cert_path'] and auth_data['key_path']:
|
if auth_data['cert_path'] and auth_data['key_path']:
|
||||||
@ -205,7 +203,6 @@ class AnsibleDockerClientBase(Client):
|
|||||||
cacert_path=self._get_value('cacert_path', params['ca_path'], 'DOCKER_CERT_PATH', None, type='str'),
|
cacert_path=self._get_value('cacert_path', params['ca_path'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
cert_path=self._get_value('cert_path', params['client_cert'], 'DOCKER_CERT_PATH', None, type='str'),
|
cert_path=self._get_value('cert_path', params['client_cert'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
key_path=self._get_value('key_path', params['client_key'], 'DOCKER_CERT_PATH', None, type='str'),
|
key_path=self._get_value('key_path', params['client_key'], 'DOCKER_CERT_PATH', None, type='str'),
|
||||||
ssl_version=self._get_value('ssl_version', params['ssl_version'], 'DOCKER_SSL_VERSION', None, type='str'),
|
|
||||||
tls=self._get_value('tls', params['tls'], 'DOCKER_TLS', DEFAULT_TLS, type='bool'),
|
tls=self._get_value('tls', params['tls'], 'DOCKER_TLS', DEFAULT_TLS, type='bool'),
|
||||||
tls_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
tls_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
||||||
DEFAULT_TLS_VERIFY, type='bool'),
|
DEFAULT_TLS_VERIFY, type='bool'),
|
||||||
|
|||||||
@ -135,11 +135,6 @@ class ContainerManager(DockerBaseClass):
|
|||||||
comp_aliases[option_name] = option_name
|
comp_aliases[option_name] = option_name
|
||||||
for alias in option.ansible_aliases:
|
for alias in option.ansible_aliases:
|
||||||
comp_aliases[alias] = option_name
|
comp_aliases[alias] = option_name
|
||||||
# Process legacy ignore options
|
|
||||||
if self.module.params['ignore_image']:
|
|
||||||
self.all_options['image'].comparison = 'ignore'
|
|
||||||
if self.module.params['purge_networks']:
|
|
||||||
self.all_options['networks'].comparison = 'strict'
|
|
||||||
# Process comparisons specified by user
|
# Process comparisons specified by user
|
||||||
if self.module.params.get('comparisons'):
|
if self.module.params.get('comparisons'):
|
||||||
# If '*' appears in comparisons, process it first
|
# If '*' appears in comparisons, process it first
|
||||||
@ -184,11 +179,6 @@ class ContainerManager(DockerBaseClass):
|
|||||||
for option in self.all_options.values():
|
for option in self.all_options.values():
|
||||||
if option.copy_comparison_from is not None:
|
if option.copy_comparison_from is not None:
|
||||||
option.comparison = self.all_options[option.copy_comparison_from].comparison
|
option.comparison = self.all_options[option.copy_comparison_from].comparison
|
||||||
# Check legacy values
|
|
||||||
if self.module.params['ignore_image'] and self.all_options['image'].comparison != 'ignore':
|
|
||||||
self.module.warn('The ignore_image option has been overridden by the comparisons option!')
|
|
||||||
if self.module.params['purge_networks'] and self.all_options['networks'].comparison != 'strict':
|
|
||||||
self.module.warn('The purge_networks option has been overridden by the comparisons option!')
|
|
||||||
|
|
||||||
def _update_params(self):
|
def _update_params(self):
|
||||||
if self.param_networks_cli_compatible is True and self.module.params['networks'] and self.module.params['network_mode'] is None:
|
if self.param_networks_cli_compatible is True and self.module.params['networks'] and self.module.params['network_mode'] is None:
|
||||||
@ -332,20 +322,9 @@ class ContainerManager(DockerBaseClass):
|
|||||||
image_different = False
|
image_different = False
|
||||||
if self.all_options['image'].comparison == 'strict':
|
if self.all_options['image'].comparison == 'strict':
|
||||||
image_different = self._image_is_different(image, container)
|
image_different = self._image_is_different(image, container)
|
||||||
if self.param_image_name_mismatch != 'ignore' and self.param_image is not None and self.param_image != container.image_name:
|
if self.param_image_name_mismatch == 'recreate' and self.param_image is not None and self.param_image != container.image_name:
|
||||||
if self.param_image_name_mismatch == 'recreate':
|
|
||||||
different = True
|
different = True
|
||||||
self.diff_tracker.add('image_name', parameter=self.param_image, active=container.image_name)
|
self.diff_tracker.add('image_name', parameter=self.param_image, active=container.image_name)
|
||||||
else:
|
|
||||||
# The default has been deprecated!
|
|
||||||
self.module.deprecate(
|
|
||||||
'The default value "ignore" for image_name_mismatch has been deprecated and will change to "recreate"'
|
|
||||||
' in community.docker 4.0.0. In the current situation, this would cause the container to be recreated'
|
|
||||||
' since the current container\'s image name "{active}" does not match the desired image name "{parameter}".'.format(
|
|
||||||
parameter=self.param_image, active=container.image_name),
|
|
||||||
version='4.0.0',
|
|
||||||
collection_name='community.docker',
|
|
||||||
)
|
|
||||||
if image_different or different or self.param_recreate:
|
if image_different or different or self.param_recreate:
|
||||||
self.diff_tracker.merge(differences)
|
self.diff_tracker.merge(differences)
|
||||||
self.diff['differences'] = differences.get_legacy_docker_container_diffs()
|
self.diff['differences'] = differences.get_legacy_docker_container_diffs()
|
||||||
@ -704,13 +683,6 @@ class ContainerManager(DockerBaseClass):
|
|||||||
updated_container = self._add_networks(container, network_differences)
|
updated_container = self._add_networks(container, network_differences)
|
||||||
|
|
||||||
purge_networks = self.all_options['networks'].comparison == 'strict' and self.module.params['networks'] is not None
|
purge_networks = self.all_options['networks'].comparison == 'strict' and self.module.params['networks'] is not None
|
||||||
if not purge_networks and self.module.params['purge_networks']:
|
|
||||||
purge_networks = True
|
|
||||||
self.module.deprecate(
|
|
||||||
'The purge_networks option is used while networks is not specified. In this case purge_networks=true cannot'
|
|
||||||
' be replaced by `networks: strict` in comparisons, which is necessary once purge_networks is removed.'
|
|
||||||
' Please modify the docker_container invocation by adding `networks: []`',
|
|
||||||
version='4.0.0', collection_name='community.docker')
|
|
||||||
if purge_networks:
|
if purge_networks:
|
||||||
has_extra_networks, extra_networks = self.has_extra_networks(container)
|
has_extra_networks, extra_networks = self.has_extra_networks(container)
|
||||||
if has_extra_networks:
|
if has_extra_networks:
|
||||||
@ -890,11 +862,10 @@ def run_module(engine_driver):
|
|||||||
command_handling=dict(type='str', choices=['compatibility', 'correct'], default='correct'),
|
command_handling=dict(type='str', choices=['compatibility', 'correct'], default='correct'),
|
||||||
default_host_ip=dict(type='str'),
|
default_host_ip=dict(type='str'),
|
||||||
force_kill=dict(type='bool', default=False, aliases=['forcekill']),
|
force_kill=dict(type='bool', default=False, aliases=['forcekill']),
|
||||||
ignore_image=dict(type='bool', default=False, removed_in_version='4.0.0', removed_from_collection='community.docker'),
|
|
||||||
image=dict(type='str'),
|
image=dict(type='str'),
|
||||||
image_comparison=dict(type='str', choices=['desired-image', 'current-image'], default='desired-image'),
|
image_comparison=dict(type='str', choices=['desired-image', 'current-image'], default='desired-image'),
|
||||||
image_label_mismatch=dict(type='str', choices=['ignore', 'fail'], default='ignore'),
|
image_label_mismatch=dict(type='str', choices=['ignore', 'fail'], default='ignore'),
|
||||||
image_name_mismatch=dict(type='str', choices=['ignore', 'recreate']),
|
image_name_mismatch=dict(type='str', choices=['ignore', 'recreate'], default='recreate'),
|
||||||
keep_volumes=dict(type='bool', default=True),
|
keep_volumes=dict(type='bool', default=True),
|
||||||
kill_signal=dict(type='str'),
|
kill_signal=dict(type='str'),
|
||||||
name=dict(type='str', required=True),
|
name=dict(type='str', required=True),
|
||||||
@ -903,7 +874,6 @@ def run_module(engine_driver):
|
|||||||
paused=dict(type='bool'),
|
paused=dict(type='bool'),
|
||||||
pull=dict(type='raw', choices=['never', 'missing', 'always', True, False], default='missing'),
|
pull=dict(type='raw', choices=['never', 'missing', 'always', True, False], default='missing'),
|
||||||
pull_check_mode_behavior=dict(type='str', choices=['image_not_present', 'always'], default='image_not_present'),
|
pull_check_mode_behavior=dict(type='str', choices=['image_not_present', 'always'], default='image_not_present'),
|
||||||
purge_networks=dict(type='bool', default=False, removed_in_version='4.0.0', removed_from_collection='community.docker'),
|
|
||||||
recreate=dict(type='bool', default=False),
|
recreate=dict(type='bool', default=False),
|
||||||
removal_wait_timeout=dict(type='float'),
|
removal_wait_timeout=dict(type='float'),
|
||||||
restart=dict(type='bool', default=False),
|
restart=dict(type='bool', default=False),
|
||||||
|
|||||||
@ -29,12 +29,6 @@ DOCKER_COMMON_ARGS = dict(
|
|||||||
ca_path=dict(type='path', aliases=['ca_cert', 'tls_ca_cert', 'cacert_path']),
|
ca_path=dict(type='path', aliases=['ca_cert', 'tls_ca_cert', 'cacert_path']),
|
||||||
client_cert=dict(type='path', aliases=['tls_client_cert', 'cert_path']),
|
client_cert=dict(type='path', aliases=['tls_client_cert', 'cert_path']),
|
||||||
client_key=dict(type='path', aliases=['tls_client_key', 'key_path']),
|
client_key=dict(type='path', aliases=['tls_client_key', 'key_path']),
|
||||||
ssl_version=dict(
|
|
||||||
type='str',
|
|
||||||
fallback=(env_fallback, ['DOCKER_SSL_VERSION']),
|
|
||||||
removed_in_version='4.0.0',
|
|
||||||
removed_from_collection='community.docker',
|
|
||||||
),
|
|
||||||
tls=dict(type='bool', default=DEFAULT_TLS, fallback=(env_fallback, ['DOCKER_TLS'])),
|
tls=dict(type='bool', default=DEFAULT_TLS, fallback=(env_fallback, ['DOCKER_TLS'])),
|
||||||
use_ssh_client=dict(type='bool', default=False),
|
use_ssh_client=dict(type='bool', default=False),
|
||||||
validate_certs=dict(type='bool', default=DEFAULT_TLS_VERIFY, fallback=(env_fallback, ['DOCKER_TLS_VERIFY']), aliases=['tls_verify']),
|
validate_certs=dict(type='bool', default=DEFAULT_TLS_VERIFY, fallback=(env_fallback, ['DOCKER_TLS_VERIFY']), aliases=['tls_verify']),
|
||||||
|
|||||||
@ -10,15 +10,4 @@ from __future__ import absolute_import, division, print_function
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
|
|
||||||
# Once we drop support for ansible-core 2.11, we can remove the try/except.
|
from ansible.module_utils.compat.version import LooseVersion, StrictVersion # noqa: F401, pylint: disable=unused-import
|
||||||
|
|
||||||
from ansible.module_utils.six import raise_from
|
|
||||||
|
|
||||||
try:
|
|
||||||
from ansible.module_utils.compat.version import LooseVersion, StrictVersion # noqa: F401, pylint: disable=unused-import
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
from distutils.version import LooseVersion, StrictVersion # noqa: F401, pylint: disable=unused-import
|
|
||||||
except ImportError as exc:
|
|
||||||
msg = 'To use this plugin or module with ansible-core 2.11, you need to use Python < 3.12 with distutils.version present'
|
|
||||||
raise_from(ImportError(msg), exc)
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -143,7 +143,6 @@ author:
|
|||||||
- Felix Fontein (@felixfontein)
|
- Felix Fontein (@felixfontein)
|
||||||
|
|
||||||
seealso:
|
seealso:
|
||||||
- module: community.docker.docker_compose
|
|
||||||
- module: community.docker.docker_compose_v2_pull
|
- module: community.docker.docker_compose_v2_pull
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|||||||
@ -429,18 +429,6 @@ options:
|
|||||||
description:
|
description:
|
||||||
- The container's hostname.
|
- The container's hostname.
|
||||||
type: str
|
type: str
|
||||||
ignore_image:
|
|
||||||
description:
|
|
||||||
- When O(state) is V(present) or V(started), the module compares the configuration of an existing
|
|
||||||
container to requested configuration. The evaluation includes the image version. If the image
|
|
||||||
version in the registry does not match the container, the container will be recreated. You can
|
|
||||||
stop this behavior by setting O(ignore_image) to V(true).
|
|
||||||
- "B(Warning:) This option is ignored if C(image: ignore) or C(*: ignore) is specified in the
|
|
||||||
O(comparisons) option."
|
|
||||||
- "This option is deprecated since community.docker 3.2.0 and will be removed in community.docker 4.0.0.
|
|
||||||
Use C(image: ignore) in O(comparisons) instead of O(ignore_image=true)."
|
|
||||||
type: bool
|
|
||||||
default: false
|
|
||||||
image:
|
image:
|
||||||
description:
|
description:
|
||||||
- Repository path and tag used to create the container. If an image is not found or pull is true, the image
|
- Repository path and tag used to create the container. If an image is not found or pull is true, the image
|
||||||
@ -485,12 +473,12 @@ options:
|
|||||||
- If set to V(recreate) the container will be recreated.
|
- If set to V(recreate) the container will be recreated.
|
||||||
- If set to V(ignore) (currently the default) the container will not be recreated because of this. It might still get recreated for other reasons.
|
- If set to V(ignore) (currently the default) the container will not be recreated because of this. It might still get recreated for other reasons.
|
||||||
This has been the default behavior of the module for a long time, but might not be what users expect.
|
This has been the default behavior of the module for a long time, but might not be what users expect.
|
||||||
- Since community.docker 3.5.0, the default V(ignore) has been deprecated. If not specified, a deprecation warning
|
- The default changed from V(ignore) to V(recreate) in community.docker 4.0.0.
|
||||||
will be emitted if this setting would make a difference. The default will change to V(recreate) in community.docker 4.0.0.
|
|
||||||
type: str
|
type: str
|
||||||
choices:
|
choices:
|
||||||
- recreate
|
- recreate
|
||||||
- ignore
|
- ignore
|
||||||
|
default: recreate
|
||||||
version_added: 3.2.0
|
version_added: 3.2.0
|
||||||
init:
|
init:
|
||||||
description:
|
description:
|
||||||
@ -849,15 +837,6 @@ options:
|
|||||||
- image_not_present
|
- image_not_present
|
||||||
- always
|
- always
|
||||||
version_added: 3.8.0
|
version_added: 3.8.0
|
||||||
purge_networks:
|
|
||||||
description:
|
|
||||||
- Remove the container from ALL networks not included in O(networks) parameter.
|
|
||||||
- Any default networks such as C(bridge), if not found in O(networks), will be removed as well.
|
|
||||||
- "This option is deprecated since community.docker 3.2.0 and will be removed in community.docker 4.0.0.
|
|
||||||
Use C(networks: strict) in O(comparisons) instead of O(purge_networks=true) and make sure that
|
|
||||||
O(networks) is specified. If you want to remove all networks, specify O(networks) as C([])."
|
|
||||||
type: bool
|
|
||||||
default: false
|
|
||||||
read_only:
|
read_only:
|
||||||
description:
|
description:
|
||||||
- Mount the container's root file system as read-only.
|
- Mount the container's root file system as read-only.
|
||||||
|
|||||||
@ -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 }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
|
image_name_mismatch: ignore
|
||||||
register: create_5
|
register: create_5
|
||||||
check_mode: true
|
check_mode: true
|
||||||
|
|
||||||
@ -85,6 +86,7 @@
|
|||||||
image: "{{ docker_test_image_alpine }}"
|
image: "{{ docker_test_image_alpine }}"
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: present
|
state: present
|
||||||
|
image_name_mismatch: ignore
|
||||||
register: create_6
|
register: create_6
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
|
|||||||
@ -385,18 +385,16 @@
|
|||||||
networks_cli_compatible: true
|
networks_cli_compatible: true
|
||||||
register: networks_7
|
register: networks_7
|
||||||
|
|
||||||
- name: networks_cli_compatible=yes, networks not specified, purge_networks
|
- name: networks_cli_compatible=yes, networks empty, purge_networks
|
||||||
docker_container:
|
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
|
||||||
networks_cli_compatible: true
|
networks_cli_compatible: true
|
||||||
purge_networks: true
|
comparisons:
|
||||||
# To replace `purge_networks=true`, we have to specify `networks: []`:
|
networks: strict
|
||||||
# comparisons:
|
networks: []
|
||||||
# networks: strict
|
|
||||||
# networks: []
|
|
||||||
force_kill: true
|
force_kill: true
|
||||||
register: networks_8
|
register: networks_8
|
||||||
|
|
||||||
|
|||||||
@ -2290,7 +2290,7 @@
|
|||||||
- interactive_3 is changed
|
- interactive_3 is changed
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
## image / image_comparison / ignore_image #########################
|
## image / image_comparison ########################################
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
||||||
- name: Pull images to make sure ignore_image test succeeds
|
- name: Pull images to make sure ignore_image test succeeds
|
||||||
@ -2570,7 +2570,8 @@
|
|||||||
- name: ignore_image
|
- name: ignore_image
|
||||||
docker_container:
|
docker_container:
|
||||||
image: "{{ docker_test_image_hello_world }}"
|
image: "{{ docker_test_image_hello_world }}"
|
||||||
ignore_image: true
|
comparisons:
|
||||||
|
image: ignore
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: ignore_image
|
register: ignore_image
|
||||||
@ -2579,8 +2580,9 @@
|
|||||||
- name: ignore_image (labels and env differ in image, image_comparison=current-image)
|
- name: ignore_image (labels and env differ in image, image_comparison=current-image)
|
||||||
docker_container:
|
docker_container:
|
||||||
image: "{{ docker_test_image_registry_nginx }}"
|
image: "{{ docker_test_image_registry_nginx }}"
|
||||||
ignore_image: true
|
|
||||||
image_comparison: current-image
|
image_comparison: current-image
|
||||||
|
comparisons:
|
||||||
|
image: ignore
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
register: ignore_image_2
|
register: ignore_image_2
|
||||||
@ -2589,8 +2591,9 @@
|
|||||||
- name: ignore_image (labels and env differ in image, image_comparison=desired-image)
|
- name: ignore_image (labels and env differ in image, image_comparison=desired-image)
|
||||||
docker_container:
|
docker_container:
|
||||||
image: "{{ docker_test_image_registry_nginx }}"
|
image: "{{ docker_test_image_registry_nginx }}"
|
||||||
ignore_image: true
|
|
||||||
image_comparison: desired-image
|
image_comparison: desired-image
|
||||||
|
comparisons:
|
||||||
|
image: ignore
|
||||||
name: "{{ cname }}"
|
name: "{{ cname }}"
|
||||||
state: started
|
state: started
|
||||||
force_kill: true
|
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
|
|
||||||
Loading…
Reference in New Issue
Block a user