mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-04-18 21:04:01 +03: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'
|
||||
- name: Units
|
||||
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
|
||||
- stage: Docker_devel
|
||||
@ -131,7 +120,6 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
# - 6 -- some images no longer work with docker-compose v1
|
||||
- stage: Docker_2_18
|
||||
displayName: Docker 2.18
|
||||
dependsOn: []
|
||||
@ -145,7 +133,6 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
# - 6 -- some images no longer work with docker-compose v1
|
||||
- stage: Docker_2_17
|
||||
displayName: Docker 2.17
|
||||
dependsOn: []
|
||||
@ -163,7 +150,6 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
- stage: Docker_2_16
|
||||
displayName: Docker 2.16
|
||||
dependsOn: []
|
||||
@ -183,23 +169,6 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 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
|
||||
- stage: Docker_community_devel
|
||||
@ -219,7 +188,6 @@ stages:
|
||||
groups:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
|
||||
### Remote
|
||||
- stage: Remote_devel
|
||||
@ -238,7 +206,6 @@ stages:
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
||||
- stage: Remote_2_18
|
||||
displayName: Remote 2.18
|
||||
dependsOn: []
|
||||
@ -255,7 +222,6 @@ stages:
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
||||
- stage: Remote_2_17
|
||||
displayName: Remote 2.17
|
||||
dependsOn: []
|
||||
@ -272,7 +238,6 @@ stages:
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
# - 6 -- Docker 26 no longer works with docker-compose v1
|
||||
- stage: Remote_2_16
|
||||
displayName: Remote 2.16
|
||||
dependsOn: []
|
||||
@ -286,24 +251,6 @@ stages:
|
||||
# Currently always hangs in group 2
|
||||
# - name: 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
|
||||
test: rhel/7.9
|
||||
groups:
|
||||
@ -322,17 +269,14 @@ stages:
|
||||
- Ansible_2_18
|
||||
- Ansible_2_17
|
||||
- Ansible_2_16
|
||||
- Ansible_2_15
|
||||
- Remote_devel
|
||||
- Remote_2_18
|
||||
- Remote_2_17
|
||||
- Remote_2_16
|
||||
- Remote_2_15
|
||||
- Docker_devel
|
||||
- Docker_2_18
|
||||
- Docker_2_17
|
||||
- Docker_2_16
|
||||
- Docker_2_15
|
||||
- Docker_community_devel
|
||||
jobs:
|
||||
- template: templates/coverage.yml
|
||||
|
112
.github/workflows/ansible-test.yml
vendored
112
.github/workflows/ansible-test.yml
vendored
@ -29,10 +29,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
ansible:
|
||||
- '2.11'
|
||||
- '2.12'
|
||||
- '2.13'
|
||||
- '2.14'
|
||||
- '2.15'
|
||||
# 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
|
||||
# image for these stable branches. The list of branches where this is necessary will
|
||||
@ -71,10 +68,7 @@ jobs:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
ansible:
|
||||
- '2.11'
|
||||
- '2.12'
|
||||
- '2.13'
|
||||
- '2.14'
|
||||
- '2.15'
|
||||
|
||||
steps:
|
||||
- name: Perform unit testing against Ansible version ${{ matrix.ansible }}
|
||||
@ -118,107 +112,15 @@ jobs:
|
||||
exclude:
|
||||
- ansible: ''
|
||||
include:
|
||||
# 2.11
|
||||
- ansible: '2.11'
|
||||
docker: alpine3
|
||||
# 2.15
|
||||
- ansible: '2.15'
|
||||
docker: fedora37
|
||||
python: ''
|
||||
target: azp/4/
|
||||
extra-constraints: urllib3 < 2.0.0
|
||||
- ansible: '2.11'
|
||||
docker: alpine3
|
||||
- ansible: '2.15'
|
||||
docker: fedora37
|
||||
python: ''
|
||||
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:
|
||||
- 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
|
||||
base_image: quay.io/rockylinux/rockylinux:9
|
||||
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
|
||||
steps:
|
||||
- name: Check out code
|
||||
|
@ -37,9 +37,7 @@ For more information about communication, see the [Ansible communication guide](
|
||||
|
||||
## 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.
|
||||
|
||||
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+.
|
||||
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.
|
||||
|
||||
## 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
|
||||
name: docker
|
||||
version: 3.13.2
|
||||
version: 4.0.0
|
||||
readme: README.md
|
||||
authors:
|
||||
- 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)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
requires_ansible: '>=2.11.0'
|
||||
requires_ansible: '>=2.15.0'
|
||||
action_groups:
|
||||
docker:
|
||||
- docker_compose
|
||||
- docker_compose_v2
|
||||
- docker_compose_v2_exec
|
||||
- docker_compose_v2_pull
|
||||
@ -47,6 +46,6 @@ action_groups:
|
||||
plugin_routing:
|
||||
modules:
|
||||
docker_compose:
|
||||
deprecation:
|
||||
tombstone:
|
||||
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.
|
||||
|
@ -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.
|
||||
extends_documentation_fragment:
|
||||
- community.docker.docker.api_documentation
|
||||
- community.docker.docker.ssl_version_deprecation
|
||||
- community.docker.docker.var_names
|
||||
options:
|
||||
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.
|
||||
type: 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:
|
||||
description:
|
||||
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
||||
@ -110,7 +102,7 @@ options:
|
||||
|
||||
notes:
|
||||
- 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
|
||||
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.
|
||||
@ -148,9 +140,6 @@ options:
|
||||
client_key:
|
||||
vars:
|
||||
- name: ansible_docker_client_key
|
||||
ssl_version:
|
||||
vars:
|
||||
- name: ansible_docker_ssl_version
|
||||
tls:
|
||||
vars:
|
||||
- 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.
|
||||
type: 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:
|
||||
description:
|
||||
- Secure the connection to the API by using TLS without verifying the authenticity of the Docker host
|
||||
@ -286,7 +269,7 @@ options:
|
||||
|
||||
notes:
|
||||
- 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
|
||||
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.
|
||||
@ -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
|
||||
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:
|
||||
- ansible.builtin.constructed
|
||||
- community.docker.docker.api_documentation
|
||||
- community.docker.docker.ssl_version_deprecation
|
||||
- community.library_inventory_filtering_v1.inventory_filter
|
||||
description:
|
||||
- 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
|
||||
the server.
|
||||
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:
|
||||
description:
|
||||
- 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'),
|
||||
api_version=self.get_option('api_version'),
|
||||
timeout=self.get_option('timeout'),
|
||||
ssl_version=self.get_option('ssl_version'),
|
||||
use_ssh_client=self.get_option('use_ssh_client'),
|
||||
debug=None,
|
||||
)
|
||||
|
@ -122,18 +122,6 @@ if not HAS_DOCKER_PY:
|
||||
|
||||
|
||||
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'):
|
||||
assert_hostname = kwargs.pop('assert_hostname')
|
||||
if assert_hostname is not None:
|
||||
@ -174,7 +162,6 @@ def get_connect_params(auth, fail_function):
|
||||
tls_config = dict(
|
||||
verify=True,
|
||||
assert_hostname=auth['tls_hostname'],
|
||||
ssl_version=auth['ssl_version'],
|
||||
fail_function=fail_function,
|
||||
)
|
||||
if auth['cert_path'] and auth['key_path']:
|
||||
@ -186,7 +173,6 @@ def get_connect_params(auth, fail_function):
|
||||
# TLS without verification
|
||||
tls_config = dict(
|
||||
verify=False,
|
||||
ssl_version=auth['ssl_version'],
|
||||
fail_function=fail_function,
|
||||
)
|
||||
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'),
|
||||
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'),
|
||||
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_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
||||
DEFAULT_TLS_VERIFY, type='bool'),
|
||||
|
@ -83,7 +83,6 @@ def get_connect_params(auth_data, fail_function):
|
||||
tls_config = dict(
|
||||
verify=True,
|
||||
assert_hostname=auth_data['tls_hostname'],
|
||||
ssl_version=auth_data['ssl_version'],
|
||||
fail_function=fail_function,
|
||||
)
|
||||
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_config = dict(
|
||||
verify=False,
|
||||
ssl_version=auth_data['ssl_version'],
|
||||
fail_function=fail_function,
|
||||
)
|
||||
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'),
|
||||
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'),
|
||||
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_verify=self._get_value('tls_verfy', params['validate_certs'], 'DOCKER_TLS_VERIFY',
|
||||
DEFAULT_TLS_VERIFY, type='bool'),
|
||||
|
@ -135,11 +135,6 @@ class ContainerManager(DockerBaseClass):
|
||||
comp_aliases[option_name] = option_name
|
||||
for alias in option.ansible_aliases:
|
||||
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
|
||||
if self.module.params.get('comparisons'):
|
||||
# If '*' appears in comparisons, process it first
|
||||
@ -184,11 +179,6 @@ class ContainerManager(DockerBaseClass):
|
||||
for option in self.all_options.values():
|
||||
if option.copy_comparison_from is not None:
|
||||
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):
|
||||
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
|
||||
if self.all_options['image'].comparison == 'strict':
|
||||
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':
|
||||
different = True
|
||||
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 self.param_image_name_mismatch == 'recreate' and self.param_image is not None and self.param_image != container.image_name:
|
||||
different = True
|
||||
self.diff_tracker.add('image_name', parameter=self.param_image, active=container.image_name)
|
||||
if image_different or different or self.param_recreate:
|
||||
self.diff_tracker.merge(differences)
|
||||
self.diff['differences'] = differences.get_legacy_docker_container_diffs()
|
||||
@ -704,13 +683,6 @@ class ContainerManager(DockerBaseClass):
|
||||
updated_container = self._add_networks(container, network_differences)
|
||||
|
||||
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:
|
||||
has_extra_networks, extra_networks = self.has_extra_networks(container)
|
||||
if has_extra_networks:
|
||||
@ -890,11 +862,10 @@ def run_module(engine_driver):
|
||||
command_handling=dict(type='str', choices=['compatibility', 'correct'], default='correct'),
|
||||
default_host_ip=dict(type='str'),
|
||||
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_comparison=dict(type='str', choices=['desired-image', 'current-image'], default='desired-image'),
|
||||
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),
|
||||
kill_signal=dict(type='str'),
|
||||
name=dict(type='str', required=True),
|
||||
@ -903,7 +874,6 @@ def run_module(engine_driver):
|
||||
paused=dict(type='bool'),
|
||||
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'),
|
||||
purge_networks=dict(type='bool', default=False, removed_in_version='4.0.0', removed_from_collection='community.docker'),
|
||||
recreate=dict(type='bool', default=False),
|
||||
removal_wait_timeout=dict(type='float'),
|
||||
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']),
|
||||
client_cert=dict(type='path', aliases=['tls_client_cert', 'cert_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'])),
|
||||
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']),
|
||||
|
@ -10,15 +10,4 @@ from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
# Once we drop support for ansible-core 2.11, we can remove the try/except.
|
||||
|
||||
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)
|
||||
from ansible.module_utils.compat.version import LooseVersion, StrictVersion # noqa: F401, pylint: disable=unused-import
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -143,7 +143,6 @@ author:
|
||||
- Felix Fontein (@felixfontein)
|
||||
|
||||
seealso:
|
||||
- module: community.docker.docker_compose
|
||||
- module: community.docker.docker_compose_v2_pull
|
||||
'''
|
||||
|
||||
|
@ -429,18 +429,6 @@ options:
|
||||
description:
|
||||
- The container's hostname.
|
||||
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:
|
||||
description:
|
||||
- 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(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.
|
||||
- Since community.docker 3.5.0, the default V(ignore) has been deprecated. If not specified, a deprecation warning
|
||||
will be emitted if this setting would make a difference. The default will change to V(recreate) in community.docker 4.0.0.
|
||||
- The default changed from V(ignore) to V(recreate) in community.docker 4.0.0.
|
||||
type: str
|
||||
choices:
|
||||
- recreate
|
||||
- ignore
|
||||
default: recreate
|
||||
version_added: 3.2.0
|
||||
init:
|
||||
description:
|
||||
@ -849,15 +837,6 @@ options:
|
||||
- image_not_present
|
||||
- always
|
||||
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:
|
||||
description:
|
||||
- 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 }}"
|
||||
name: "{{ cname }}"
|
||||
state: present
|
||||
image_name_mismatch: ignore
|
||||
register: create_5
|
||||
check_mode: true
|
||||
|
||||
@ -85,6 +86,7 @@
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
name: "{{ cname }}"
|
||||
state: present
|
||||
image_name_mismatch: ignore
|
||||
register: create_6
|
||||
|
||||
- name: Cleanup
|
||||
|
@ -385,18 +385,16 @@
|
||||
networks_cli_compatible: true
|
||||
register: networks_7
|
||||
|
||||
- name: networks_cli_compatible=yes, networks not specified, purge_networks
|
||||
- name: networks_cli_compatible=yes, networks empty, purge_networks
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_alpine }}"
|
||||
command: '/bin/sh -c "sleep 10m"'
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
networks_cli_compatible: true
|
||||
purge_networks: true
|
||||
# To replace `purge_networks=true`, we have to specify `networks: []`:
|
||||
# comparisons:
|
||||
# networks: strict
|
||||
# networks: []
|
||||
comparisons:
|
||||
networks: strict
|
||||
networks: []
|
||||
force_kill: true
|
||||
register: networks_8
|
||||
|
||||
|
@ -2290,7 +2290,7 @@
|
||||
- interactive_3 is changed
|
||||
|
||||
####################################################################
|
||||
## image / image_comparison / ignore_image #########################
|
||||
## image / image_comparison ########################################
|
||||
####################################################################
|
||||
|
||||
- name: Pull images to make sure ignore_image test succeeds
|
||||
@ -2570,7 +2570,8 @@
|
||||
- name: ignore_image
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_hello_world }}"
|
||||
ignore_image: true
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
register: ignore_image
|
||||
@ -2579,8 +2580,9 @@
|
||||
- name: ignore_image (labels and env differ in image, image_comparison=current-image)
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_registry_nginx }}"
|
||||
ignore_image: true
|
||||
image_comparison: current-image
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
register: ignore_image_2
|
||||
@ -2589,8 +2591,9 @@
|
||||
- name: ignore_image (labels and env differ in image, image_comparison=desired-image)
|
||||
docker_container:
|
||||
image: "{{ docker_test_image_registry_nginx }}"
|
||||
ignore_image: true
|
||||
image_comparison: desired-image
|
||||
comparisons:
|
||||
image: ignore
|
||||
name: "{{ cname }}"
|
||||
state: started
|
||||
force_kill: true
|
||||
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: false
|
||||
|
||||
docker_pip_extra_packages: []
|
||||
docker_pip_package: docker
|
||||
docker_pip_package_limit: '<7.0.0'
|
||||
|
||||
docker_compose_packages:
|
||||
- docker-compose
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_docker
|
||||
- setup_remote_constraints
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
apk:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
pacman:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
apt:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,10 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
||||
enablerepo: docker-ce-test
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
yum:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
dnf:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
state: present
|
@ -1,12 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Install docker-compose as system package
|
||||
community.general.zypper:
|
||||
name: "{{ docker_compose_packages }}"
|
||||
force: true
|
||||
disable_gpg_check: true
|
||||
update_cache: true
|
||||
notify: cleanup docker
|
@ -1,16 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
####################################################################
|
||||
|
||||
- set_fact:
|
||||
has_docker_compose: false
|
||||
|
||||
- when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||
include_tasks:
|
||||
file: setup.yml
|
@ -1,79 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Include distribution specific variables
|
||||
include_vars: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
- default.yml
|
||||
paths:
|
||||
- "{{ role_path }}/vars"
|
||||
|
||||
- block:
|
||||
- name: Include distribution specific tasks
|
||||
include_tasks: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-py{{ ansible_python.version.major }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
paths:
|
||||
- "{{ role_path }}/tasks"
|
||||
|
||||
- name: Limit docker pypi package version to < 4.3.0
|
||||
set_fact:
|
||||
docker_pip_package_limit: '<4.3.0'
|
||||
when: docker_api_version is version('1.39', '<')
|
||||
|
||||
- name: Install/upgrade Docker SDK for Python
|
||||
pip:
|
||||
name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
state: present
|
||||
|
||||
- name: Install docker-compose
|
||||
pip:
|
||||
state: present
|
||||
name: "{{ docker_compose_pip_packages }}"
|
||||
extra_args: "-c {{ remote_constraints }}"
|
||||
|
||||
- name: Check docker-py version
|
||||
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
||||
register: docker_py_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- name: Register docker-compose version
|
||||
command: "{{ ansible_python.executable }} -c 'import compose; print(compose.__version__)'"
|
||||
register: docker_compose_version
|
||||
ignore_errors: true
|
||||
|
||||
- name: Declare docker-py and docker-compose version
|
||||
set_fact:
|
||||
docker_py_version: "{{ docker_py_version_stdout.stdout | default('0.0') }}"
|
||||
docker_compose_version: "{{ docker_compose_version.stdout | default('0.0.0') }}"
|
||||
|
||||
- debug:
|
||||
msg: "Docker SDK for Python version: {{ docker_py_version }}; Docker Compose version: {{ docker_compose_version }}"
|
||||
|
||||
- name: Declare docker-compose as existing
|
||||
set_fact:
|
||||
has_docker_compose: true
|
||||
|
||||
when: not skip_docker_compose
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages:
|
||||
- docker-compose
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
||||
# Force PyYAML to 5.3.1
|
||||
- PyYAML==5.3.1
|
||||
# Force requests to < 2.32.0 (https://github.com/docker/docker-py/issues/3256)
|
||||
- requests<2.32.0
|
@ -1,11 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_pip_packages:
|
||||
- docker-compose
|
||||
# Force PyYAML to 5.3.1
|
||||
- PyYAML==5.3.1
|
||||
# Force requests to < 2.32.0 (https://github.com/docker/docker-py/issues/3256)
|
||||
- requests<2.32.0
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# https://github.com/docker/docker-py/issues/3113
|
||||
- requests<2.29.0
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# https://github.com/docker/docker-py/issues/3113
|
||||
- requests<2.29.0
|
@ -1,10 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# Not sure why RHEL7 needs this specific version
|
||||
- requests==2.6.0
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_packages: []
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_pip_extra_packages:
|
||||
# Installing requests >=2.12.0 on Ubuntu 14.04 breaks certificate validation. We restrict to an older version
|
||||
# to ensure out get_url tests work out fine. This is only an issue if pyOpenSSL is also installed.
|
||||
- requests==2.6.0
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
skip_docker_compose: true
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
docker_compose_pip_packages: []
|
@ -1,4 +0,0 @@
|
||||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
@ -1,14 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-2.6!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-2.7!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py compile-3.5!skip # Uses Python 3.6+ syntax
|
||||
.azure-pipelines/scripts/publish-codecov.py future-import-boilerplate
|
||||
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
|
||||
plugins/modules/current_container_facts.py validate-modules:return-syntax-error
|
||||
plugins/module_utils/module_container/module.py compile-2.6!skip # Uses Python 2.7+ syntax
|
||||
plugins/module_utils/module_container/module.py import-2.6!skip # Uses Python 2.7+ syntax
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2_pull.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container.py import-2.6!skip # Import uses Python 2.7+ syntax
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
@ -1,3 +0,0 @@
|
||||
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: Ansible Project
|
@ -1,6 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/current_container_facts.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_compose_v2_pull.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
@ -1,3 +0,0 @@
|
||||
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: Ansible Project
|
@ -1,4 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/docker_compose_v2.py validate-modules:return-syntax-error
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
@ -1,3 +0,0 @@
|
||||
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: Ansible Project
|
@ -1,3 +0,0 @@
|
||||
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
|
||||
plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin
|
||||
plugins/modules/docker_image_build.py validate-modules:invalid-documentation
|
@ -1,3 +0,0 @@
|
||||
GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: Ansible Project
|
Loading…
x
Reference in New Issue
Block a user