Commit Graph

200 Commits

Author SHA1 Message Date
Felix Fontein
7b46e4d414
Deprecate all API versions until 1.24 (#397)
* Deprecate all API versions until 1.24.

* Fix newlines.
2022-07-02 14:18:14 +02:00
Felix Fontein
49ce0a3cb1
Remove deprecations from docker_container, bump collection version to 3.0.0 (#399)
* Remove deprecated features in docker_container.

* Bump collection version to 3.0.0.

* Remove 'published_ports: all' tests.
2022-07-01 19:16:22 +02:00
Felix Fontein
209aeb57fd
Remove deprecated functionality. (#363) 2022-07-01 19:02:22 +02:00
Felix Fontein
00ddbbdeb2
Deprecate Python 2.6 (#388)
* Deprecate Python 2.6 support.

* Document deprecations in README.
2022-06-30 20:47:46 +02:00
Felix Fontein
f41d7ac1b8
Move common utility code to plugins.module_utils.util (#390)
* Move common utility code to plugins.module_utils.util.

* Also adjust plugins.

* Fix import.
2022-06-20 18:39:13 +02:00
Felix Fontein
a44e0736cf
Improve API version handling. (#389) 2022-06-20 07:34:38 +02:00
Felix Fontein
01ca3f0e1c Release 2.6.0. 2022-05-24 12:50:19 +02:00
Rodrigo Candido Gryzinski
497c2fda91
Add image_label_mismatch parameter to docker_container (#370)
* Add image_label_mismatch to docker_container

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

* Test image_label_mismatch error message

* Add change fragment for image_label_mismatch

* Break long line in docker_container.py for pep-8 compliance

* pep8 compliance

* Update changelogs/fragments/370-add-image-label-mismatch.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: add expected_labels to parameters_map in docker_container

* Apply suggestions from code review

* Apply suggestions from code review

* Update tests/integration/targets/docker_container/tasks/tests/options.yml

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-05-24 08:35:33 +02:00
Felix Fontein
9580c25579
Deprecate docker-compose EE dependency. (#373) 2022-05-24 08:11:31 +02:00
Felix Fontein
184dd63e55 Prepare 2.6.0 release. 2022-05-24 07:48:07 +02:00
Felix Fontein
401a76ff00
docker_container: fail if there are too many parts in a parsed port (#367)
* Fail if there are too many parts in a parsed port.

* Add tests.

* Prevent bad parsing.
2022-05-22 17:20:05 +02:00
Felix Fontein
1425faadd0
Deprecate Ansible 2.9 and ansible-base 2.10 support. (#361) 2022-05-20 14:46:07 +02:00
Felix Fontein
7e710f743d
Bump deprecations we forgot to remove in 2.0.0. (#362) 2022-05-20 14:45:52 +02:00
Felix Fontein
fb55b1d780
Avoid breakage with Python 3.13. (#354) 2022-05-18 22:22:50 +02:00
Felix Fontein
929a2f6e5f Release 2.5.1. 2022-05-16 12:27:39 +02:00
Felix Fontein
6adc7bddf3
Add PSF-license.txt file. (#350) 2022-05-16 07:35:23 +02:00
Felix Fontein
71fb48b7c5 Prepare 2.5.1 release. 2022-05-16 07:11:56 +02:00
Felix Fontein
1848142d4f Release 2.5.0. 2022-05-14 12:11:04 +02:00
Felix Fontein
e5ba309f03 Prepare 2.5.0 release. 2022-05-11 07:28:08 +02:00
Sasha Jenner
c63ef4116d
Support --template-driver for docker_config (#332) (#345)
* initial templating changes

* adding docs

* author

* responding to pr comments

* testing for idempotency

* using template_driver rather than templating

* adding explicit idem check

* remove local testing changes

* bug fix

* fixing idempotency

Co-authored-by: Sasha Jenner <sasha.jenner@cba.com.au>
2022-05-11 07:26:59 +02:00
chrische
98b227003e
docker_swarm: adds data_path_addr option for swarm init and swarm join (#344)
* adds data_path_addr option for swarm init and swarm join. (ansible-collections/community.docker#339)

* adds changelog fragment (ansible-collections/community.docker#339)

* adds formatting to changelog entry

Co-authored-by: Felix Fontein <felix@fontein.de>

* adds version to doc entry in ansible_swarm

Co-authored-by: Felix Fontein <felix@fontein.de>

* rewrites doc entry to formal language

Co-authored-by: Felix Fontein <felix@fontein.de>

* Correct docker api version (src: docker api docs)

Co-authored-by: Felix Fontein <felix@fontein.de>

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-05-09 20:37:27 +02:00
Felix Fontein
2cef29e2e1 Release 2.4.0. 2022-04-25 21:32:27 +02:00
Felix Fontein
497453aab2 Prepare 2.4.0 release. 2022-04-25 20:43:54 +02:00
Brian Coca
6679eee41e
docker connection: handle version and docker_args (#327)
* handle version and docker_args

* Remove breaking change.

* Add changelog fragment.

* Fix unit tests.

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-04-25 20:35:33 +02:00
Shane St Savage
eaacf6c8f6
Support getting container output from local logging driver (#337)
The `local` [Docker logging driver](https://docs.docker.com/config/containers/logging/local/) is a new-ish, optimized local logging driver that improves upon json-file. Since logs written using `local` can still be accessed through the Docker daemon API, all that is needed here is to add to the supported list.
2022-04-24 21:39:59 +02:00
Felix Fontein
e12a487e6a
Add EE support, support GHA in current_container_facts (#336)
* Try adding EE support.

* Use GHA instead of AZP for EE tests.

* Update changelog fragment, extend tests.

* Disable current_container_facts test.

* Increase verbosity.

* 2.9 compatibility.

* Use docker instead of podman for building EE and running tests in it.

* Output some more information (helpful for debugging).

* Fix GHA handling for current_container_facts.

* Try to fix permissions.
2022-04-18 22:54:00 +02:00
Felix Fontein
4be3a64f8a Release 2.3.0. 2022-03-28 20:56:14 +02:00
Felix Fontein
14d3fcd7d2 Prepare 2.3.0 release. 2022-03-27 21:48:06 +02:00
Felix Fontein
3c7c496e67
Implement connection reset. (#312) 2022-03-22 07:13:39 +01:00
Felix Fontein
b353a39ada
Adjust docker_api plugin to ansible-core 2.13. (#308) 2022-03-22 07:11:32 +01:00
Felix Fontein
421b712812
docker connection plugin: simplify actual_user handling code (#311)
* Simplify actual_user handling code.

* Forgot self.
2022-03-22 07:11:14 +01:00
Brian Coca
37a3264042
docker connection plugin: fix config docs and update to use config system (#297)
* fix config docs and update to use config system

 wean off play_context which did not have the correct data in all cases

* moar fixes

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* updated for backwards compat

* badmergeresolution

* makeitworks

* attempt to fix unit test

* mocking it# No more than 50 chars. #### 50 chars is here: #

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/connection/docker.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* nomock

* remove bad paste

* properly load connection to initialize config

* initizlie docker args

* Fix bugs.

* Call _set_conn_data() when needed.

* Cache result of _get_docker_remote_user() now that it is called multiple times per task.

* Fix unit tests.

* list.clear() is Python 3...

* Add changelog.

* Call _set_conn_data() also in _connect().

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-03-21 19:19:14 +01:00
Felix Fontein
d6c20e76c6 Release 2.2.1. 2022-03-14 21:39:08 +01:00
Felix Fontein
a338327a79 Prepare 2.2.1 release. 2022-03-14 21:15:13 +01:00
Felix Fontein
ba5e6f89f3
Fix warning/error extraction. (#305) 2022-03-14 21:01:35 +01:00
Felix Fontein
ea82ebbd37 Releasing 2.2.0. 2022-02-21 22:10:53 +01:00
Felix Fontein
063c9ed2a6 Prepare 2.2.0 release. 2022-02-19 23:30:59 +01:00
András Maróy
3ad49824db
Implement cap_add and cap_drop handling for docker_swarm_service (#294)
* Implement `cap_add` and `cap_drop` handling for `docker_swarm_service`

* Fix typos in changelog fragment

* Add missing `version_added` docstrings to `docker_swarm_service`

* Check api version too in `docker_swarm_service` capability tests

* Fix API version checking in tests for docker_swarm_service

Co-authored-by: Felix Fontein <felix@fontein.de>

* Add `cap_add` and `cap_drop` to sample output for `docker_swarm_service`

* Use proper diff checking for `docker_swarm_service` capabilities

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-02-12 08:30:44 +01:00
András Maróy
1d062dad5c
Implement rolling_versions for docker_config (#295) 2022-02-12 08:30:09 +01:00
András Maróy
b481fa4801
Add support for rotating docker secrets (#293)
* Add parameters for rolling updates to `docker_secret`

* Extract `remove_secrets` to its own function in `docker_secret`

* Store existing secrets in a list instead of a single secret

With this change `docker_secret` now supports the case where we store
multiple versions of a secret with the `_v123` postfix.

`absent` state implicitly handles removing these this way.

* When using `rolling_versions` don't automatically remove current secret

To make rolling updates actually work instead of failing on trying to
remove a secret that is attached to a service, use the
`versions_to_keep` parameter to remove old versions of the secret after
creating the new one. This way the secret with the new data is created
with a different name and can be attached to the service by its ID
without having to delete the previous one first which would fail if it
is already attached to a service.

* Add version numbers to newly created secrets

Attach the incremental version number to the secret name as a `_v123`
postfix where `123` is replaced with an incremental counter starting
from 1.
A label with the numeric version is also attached to the secret to ease
calculating the new version number upon change with the name
`ansible_version`.

* Return `secret_name` for docker secrets as well

* Add integration test for rolling secrets

* Update `docker_secret` documentation as per review comments

* Correctly return `docker_secret` version number as int

* Use template string for naming `docker_secrets` instead of concatenation

* Return the correct secret name on deletion failure

* Simplify `docker_secret` creation

* Add missing comma for `docker_secret` schema

* Only remove old docker secrets if `rolling_versions` is set

* Add check in `docker_secret` version parsing to handle NaNs

* Add newly created `docker_secret` to internal secret list to avoid additional deletions

* Add changelog fragment for `docker_secret` `rolling_versions` feature

* Update changelogs/fragments/270-rolling-secrets.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-02-12 08:29:49 +01:00
Felix Fontein
9cd46a7d41
Try to make more compatible with podman-docker. (#292) 2022-02-11 12:23:36 +01:00
Felix Fontein
e87b66b806 Release 2.1.1. 2022-01-05 22:33:40 +01:00
Felix Fontein
a11b6f5880 Prepare 2.1.1 release. 2022-01-05 21:17:11 +01:00
Felix Fontein
264f5238c7
Fix unintended breaking change by vendoring distutils.version. (#269) 2022-01-05 20:08:59 +00:00
Felix Fontein
2c855d2391 Release 2.1.0. 2022-01-04 06:42:42 +01:00
Felix Fontein
5cd4b68538 Prepare 2.1.0 release. 2022-01-04 06:16:53 +01:00
Felix Fontein
4b235a2607
Prepare for distutils.version being removed in Python 3.12 (#258)
* Prepare for distutils.version being removed in Python 2.12.

* Fix copy'n'paste error.

* Fix import.

* Re-add Loose prefix.

* Fix Python version typo.

* Improve formulation.

* Move message into own line.

* Fix casing, now that the object is no longer called Version.
2021-12-24 11:28:35 +01:00
Felix Fontein
93ea131f30
Get rid of distutils.spawn. (#257) 2021-12-24 11:27:23 +01:00
Felix Fontein
40576e317b
docker_container_exec: allow to specify environment (#254)
* Allow to specify environment parameters for docker_container_exec.

* Add changelog fragment.

* sorted -> list.
2021-12-22 16:56:22 +00:00
Felix Fontein
02596835b1
Add detach parameter. (#255) 2021-12-22 17:37:08 +01:00
Felix Fontein
5a23c4d336
Set minimal Docker API version for chdir to 1.35. (#253) 2021-12-22 17:14:08 +01:00
Felix Fontein
1b9416b572 Release 2.0.2. 2021-12-09 06:03:52 +01:00
Jeff Goldschrafe
d224752cf1
Minor fixes to nsenter connection plugin (#249)
* Minor fixes to nsenter connection plugin

- Ensure the nsoption_pid option is retrieved in _connect instead of
  __init__ to prevent a crasher due to initialization order
- Replace the use of --all-namespaces with specific namespaces to
  support compatibility with Busybox nsenter (for example, Alpine)

* minor tidy

* Fix PEP8 violation

* Changelog fragment

* Update changelogs/fragments/249-nsenter-fixes.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

Co-authored-by: Jeff Goldschrafe <jeff.goldschrafe@flatiron.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2021-12-09 05:53:43 +01:00
Felix Fontein
699dd4146e Prepare 2.0.2 release. 2021-12-08 20:24:14 +01:00
Felix Fontein
bed775c4ea
docker_container_exec: improve handling of chdir option (#243)
* Only pass chdir on when it is provided, and prevent this option from being used for Docker SDK for Python < 3.0.0.

* Also fix docker_api connection plugin.
2021-11-30 09:14:34 +01:00
Felix Fontein
b31e7d7d9c Release 2.0.1. 2021-11-13 14:13:44 +01:00
Felix Fontein
772f35c65c Prepare 2.0.1 release. 2021-11-13 13:56:14 +01:00
Felix Fontein
5183f84962 Release 2.0.0. 2021-10-21 07:31:39 +02:00
Felix Fontein
8ecebcefbb Prepare 2.0.0 release. 2021-10-20 17:59:15 +02:00
Felix Fontein
4070dab9a8
Remove deprecated features, bump version to 2.0.0 (#210)
* Remove docker_login's email option.

* container_default_behavior now has default value no_defaults.

* Disallow 'all' next to other ports. Deprecate 'all' in favor of publish_all_ports.

* Change default for network_mode.

* Add changelog fragment.

* Fix tests.

* Next expected release is 2.0.0.
2021-10-05 17:39:42 +02:00
Ajpantuso
14f15c0aec
docker_compose - Fix timeout defaulting behavior (#163)
* Initial commit

* Adding changelog fragment

* Updating changelog for breaking change
2021-10-05 08:38:24 +02:00
Felix Fontein
260c17ad91 Release 1.10.0. 2021-10-05 07:34:37 +02:00
Felix Fontein
ce25cb907a Prepare 1.10.0 release. 2021-10-05 07:33:23 +02:00
Felix Fontein
f01dacd6cf
Looks like we forgot to add the new modules to the action_group. (#209) 2021-09-18 17:07:35 +02:00
Felix Fontein
5d861004db
docker_config and docker_secret: add data_src option (#203)
* Add data_src options to docker_config and docker_secret.

* Add examples.

* Fix test.

* Another fix.
2021-09-12 09:42:03 +02:00
Felix Fontein
a56cad3a09 Release 1.9.1. 2021-08-29 13:44:07 +02:00
Felix Fontein
50b3e8a2d4 Prepare 1.9.1 release. 2021-08-27 05:44:06 +02:00
Ajpantuso
4dfc3ae5d7
docker_compose - Fix idempotency when services have no enabled profiles (#192)
* Initial Commit

* Adding integration tests

* Fixing integration and adding changelog fragment
2021-08-20 13:33:35 +02:00
Felix Fontein
36a01c164f Release 1.9.0. 2021-08-03 22:25:13 +02:00
Felix Fontein
930f9d1bcd
Improve error message on import errors. (#188) 2021-08-02 21:04:25 +02:00
Felix Fontein
46bffd2f36 Prepare 1.9.0 release. 2021-08-02 19:33:32 +02:00
Felix Fontein
6f52747693
docker_container: fix handling of command and entrypoint in a backwards-compatible way (#186)
* Fix handling of command and entrypoint in a backwards-compatible way.

* Fix copy'n'paste error.

* Fix some more.

* Improve documentation.

* Keep command and entrypoint as lists and not as strings.

* Simplify code, since we're already emitting the deprecation warning in this case during parameter processing.

* Change default only in community.docker 3.0.0.

* Update tests/integration/targets/docker_container/tasks/tests/options.yml

Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>

* Apply suggestion to more places.

Co-authored-by: Brian Scholer <1260690+briantist@users.noreply.github.com>
2021-08-02 19:31:46 +02:00
Ajpantuso
03f649f43c
docker_compose - Fix startup errors for docker-compose versions <1.17.0 (#182)
* Initial Commit

* Adding changelog fragment

* Applying review suggestions
2021-07-31 11:37:02 +02:00
Felix Fontein
72fb3a5d1a
Fix check_mode for some _info modules. (#183) 2021-07-28 21:49:15 +02:00
Ajpantuso
b2430f756f
Allowing anonymous volumes via mounts option (#181)
* Initial Commit

* Adding changelog fragment
2021-07-27 17:35:40 +00:00
Felix Fontein
e2785de840
Make sure that 'container' is returned in more circumstances, and improve documentation when it is actually returned (#178)
* Make sure that 'container' is returned in more circumstances, and improve documentation when it is actually returned.

* Fix typos.
2021-07-24 21:01:14 +02:00
Ajpantuso
9b661a6ac2
docker_compose - add env_file option (#174)
* Initial commit

* Adding changelog and fixing docs

* Fixing integration tests

* Restricting minimum docker-compose versions for tests

* Applying initial review suggestions
2021-07-16 19:01:20 +02:00
Felix Fontein
61d9237eef Move changelog fragment to correct place, and add note that the change was already in 1.8.0. 2021-07-01 07:15:34 +02:00
Felix Fontein
2593c09d49 Release 1.8.0. 2021-06-28 21:03:06 +02:00
Felix Fontein
9e39014baf Prepare 1.8.0 release. 2021-06-28 21:02:40 +02:00
Ajpantuso
072d96ca62
docker_compose - Adding profiles option. (#167)
* Initial commit

* fixing tests

* Adding changelog fragment
2021-06-28 20:54:54 +02:00
Felix Fontein
badcd61a74
Replace ansible.module_utils._text by ansible.module_utils.common.text.converters. (#164) 2021-06-26 13:39:51 +02:00
Ajpantuso
825a4f74d3
docker_plugin - adding alias option and general cleanup (#161)
* Initial Commit

* Adding changelog fragment
2021-06-25 21:45:53 +02:00
Ajpantuso
49c8fd0aa5
docker_host_info - Allow filters which are passed as lists (#160)
* Initial Commit

* Adding integration tests

* Adding example in docs

* Adding changelog fragment

* Applying initial review suggestions
2021-06-22 22:27:38 +02:00
Felix Fontein
af2b3b0493
docker_compose: fix idempotency for stopped services (#159)
* Always use |= instead of = when updating changed status.

* Fix idempotence bug.

* Add changelog fragment.
2021-06-22 12:07:50 +02:00
Felix Fontein
902bcc6193
Pass Docker daemon connection params from inventory to connection plugin (#157)
* Move variable handling to doc fragment, and make them known to module_utils.

* Pass Daemon connection options to connection plugin.

* Add changelog fragment.

* Fix syntax error.

* Forgot 'options:'.
2021-06-22 06:29:56 +02:00
Felix Fontein
5fa0aa073c Release 1.7.0. 2021-06-08 14:05:55 +02:00
Felix Fontein
0d3d5fd6cb Prepare 1.7.0 release. 2021-06-07 07:02:29 +02:00
Felix Fontein
b775bac593
docker_image: allow to tag images by name, improve docs (#149)
* Add test to tag image with ID.

* Document that source=local also works with image IDs.

* Improve 'repository' documentation.

* Fix typo.

* Looks like a fix is needed to make this work.

* ...

* Avoid unnecessary re.search() calls.

* Add changelog fragment.

* Improve main description.

* Remove import.
2021-06-07 07:01:10 +02:00
Felix Fontein
edd14808ee Release 1.6.1. 2021-05-17 13:58:16 +02:00
Felix Fontein
355b29e7d3 Prepare 1.6.1. 2021-05-17 13:55:25 +02:00
Felix Fontein
c20186901b
Only emit tls_hostname deprecation warning if TLS is actually used (#143)
* Only emit tls_hostname deprecation warning if TLS is actually used.

* Linting.
2021-05-17 13:24:50 +02:00
Felix Fontein
36c1b4d818 Relesae 1.6.0. 2021-05-11 07:33:38 +02:00
Shane St Savage
a512e7fb9e
feat: allow unlimited memory_swap in docker_container (#138)
* feat: allow unlimited memory_swap in docker_container

summary: in docker_container, allow `memory_swap: values
`unlimited` and `-1` for unlimited container swap usage.

`--memory-swap=-1` is a valid docker run value allowing
unlimited swap usage. `docker_container` should allow
setting this value via `memory_swap` values `unlimited`
and `-1` as it sometimes must explicitly be set to prevent
docker from attempting to limit swap usage to double the
`--memory` value by default. In rootless docker environments,
attempting to set `memory-swap` usage limits will result in an error
if the user doesn't have the ability to do so. Allowing explicit
unlimited swap usage via docker_container will prevent these errors.

https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details

* Update tests/integration/targets/docker_container/tasks/tests/options.yml

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>
2021-05-10 20:24:04 +02:00
Felix Fontein
9ad7d3490a Prepare 1.6.0 release. 2021-05-10 17:57:22 +02:00
Felix Fontein
3a0d3e15fb
Configure plugin after installing it. (#135) 2021-05-07 07:14:28 +02:00
Felix Fontein
74475d1d9b
docker_swarm_service: fix crash during idempotence check if published_port is not specified (#136)
* Avoid crash during idempotence check if published_port is not specified.

* Add tests.

* Convert lambda to function.
2021-05-05 08:00:22 +02:00
Alexandr N. Zamaraev
859bc29f9e
docker_compose: fix #12 (#119)
* fix #12

* Create 12-correct_pull_wo_starting.yaml

* Update changelogs/fragments/12-correct_pull_wo_starting.yaml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update changelogs/fragments/12-correct_pull_wo_starting.yaml

Co-authored-by: Amin Vakil <info@aminvakil.com>

* Update docker_compose.py

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
2021-05-04 07:53:38 +02:00
Felix Fontein
cffba7b15d
Deprecate default for tls_hostname (#134)
* Start removing default.

* Add deprecate() function to AnsibleDockerClientBase.

* Deprecate default value for tls_hostname.

* Add changelog.

* Mention deprecation in documentation.
2021-05-04 07:50:33 +02:00
daeseokyoun
3f8946a369
adds missing changelog fragment file (#126)
* adds missing changelog fragment file

changelog fragment file for #125

* Update changelogs/fragments/125-correct-error-message-for-docker-sdk-version.yaml

Co-authored-by: Felix Fontein <felix@fontein.de>
2021-04-17 13:26:15 +02:00