* 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>
* added cap_add to the documentation for capabilities for easier search comming from docker
* added equivalent syntax for docker cli and compose to capabilities docs
* added equivalent syntax for docker cli and compose to capabilities docs
* 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.
* 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.
* 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.
* 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>
* Initial commit
* Adding changelog fragment
* Updating deprecation notice
* Adding integration test
* Applying second round of review suggestions
* Updating docs and cleaning up integration tests
* Updating test loop logic
* 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.
* 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>
* Move some code from plugin_utils to module_utils.
* First version of docker_container_exec module.
* Linting.
* Avoid using display.
* Move common socket_handler code to module_utils.
* Add module support, use it in docker_container_exec.
* Add tests.
* Fix copyright lines.
* Add this and other 'new' modules to README.
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/docker_container_exec.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Change docker_swarm_service option publish.published_port from required to optional. If not specified random high port is assigned by docker.
* Update changelogs/fragments/101-make-service-published-port-optional.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Mark join_token as no_log.
* Apply suggestions from code review
Co-authored-by: Piotr Wojciechowski <23406016+WojciechowskiPiotr@users.noreply.github.com>
Co-authored-by: Piotr Wojciechowski <23406016+WojciechowskiPiotr@users.noreply.github.com>
* Add docker_image_load module.
* Polish module.
* Fix bug and add tests.
* Apply suggestions from code review
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Make sure that containers that still exist are also cleared.
* Always return stdout.
* Try to work around removal problems.
* Accept that the Docker daemon sometimes only reports the named image.
* More debug output.
* Also prune containers, in the hope that these cause the problems.
* Let's see whether pruning containers (but not images) is enough.
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/docker_image_load.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* New module docker-plugin with integration_tests
* Fix sanity test
* Changes made as per the reviewer suggested
* Fix check-mode and test directory
* Fix Sanity
* fix integration
* fix integration
* fix integration
* fix integration
* Allow to specify pull platform.
* Add basic test and document that the value is not used for idempotency at the moment.
* Fix pulling.
* Simplify code.
* Add API version for pull_platform.
* Move pull_platform into new pull option. Use apply_defaults=True to avoid some special logic.
* Add example.
* Remove apply_defaults=True.