Commit Graph

488 Commits (de542394af2e56bd3010e096822384d8bbd28c73)

Author SHA1 Message Date
Felix Fontein d2c4f57f16 docker_service: rename to docker_compose. (#51035)
* Rename docker_service -> docker_compose.

* Added changelog.

* Update scenario guide.

* Clean up module.
2019-01-23 12:21:57 +00:00
Jan Sušnik 70a39d358b Docker Network module labels support (#50883)
* Added support for labels for Docker Network

* Fixed missing comma in Docker Network module

* Specified minimal versions for dependencies and added changelog

* Fixes based on suggestions after code review

* Added integration tests
2019-01-21 16:19:34 -05:00
Hannes Ljungberg e3f61f4480 docker_swarm_service: Add command option (#50984)
* Add command option

* Fix test task name

* Changelog fragment

* Fix indendation

* Add version_added

* Better command description

* Test passing command as list

* Handle invalid command types

* Cleaner command type checking

* Check that all items in command list are strings

* Better error about command list items

* Better type checking errors

* Add tests for command type checking

* Update command tests

* Fix messed up rebase
2019-01-21 16:01:22 -05:00
Hannes Ljungberg 9c44dc371b docker_swarm_service: Fix crash when using configs parameter (#50606)
* Fix crash when using configs parameter

* Don’t add difference for configs set to None

* Add changelog fragment

* Revert "Add changelog fragment"

This reverts commit 8df497e3881d976e7417d2662a167694fbc33147.

* Enable config tests

* Pass empty list of configs to docker

* Properly clean up after all tests
2019-01-21 15:29:00 -05:00
Hannes Ljungberg 393bf5e4b1 docker_swarm_service: Add placement_preferences option (#51082)
* Add placement_preferences option

* Add changelog fragment

* Python 2.6 compat

Python 2.6 compat

* Cleaner check

* Better description

* Don’t compare placement_preferences if None

* Add placement_preferences example
2019-01-21 14:55:26 -05:00
Hannes Ljungberg 7ceb2ac95a docker_swarm_service: Fix publish idempotency when mode is None (#50882)
* Fix publish idempotency when mode is None

* Add changelog fragment

* Python 2.6 compat

* Use self.publish

* Check length of publish before comparing content

* Sort publish lists before zipping

* Enable publish tests

* python3 compat

* Don’t sort by mode as it is not safe

* Document publish suboptions and add them to args

* Add type to publish documentation

* Add choices to publish argument_spec suboptions

* Make tcp the default protocol

* Make documentation reflect protocol default

* Simplify setting mode

* Remove redundant string quoting

* Test order of publish

* Add comment about publish change detection
2019-01-21 14:02:08 -05:00
Hannes Ljungberg 420c24ea55 docker_swarm_service: Use option_minimal_versions (#50609)
* Pass client to detect_usage function

* Use new client argument in detect_usage function

* Use option_minimal_versions

* Add min_docker_api_version

* Skip default since publish is always a list

* Add min Docker API version to module requirements

* Remove redundant keys()

* Move detect_ipvX_address_usage out of __init__

* Check for mode presence in publish ports

* Remove unused import

* Use port.get(‘mode’) to check for falsy values

* Update lib/ansible/modules/cloud/docker/docker_swarm_service.py

Co-Authored-By: hannseman <hannes@5monkeys.se>

* Add force_update to option_minimal_versions

* Detect publish mode better

* Add a trailing comma
2019-01-21 18:45:47 +00:00
Hannes Ljungberg 644057e9ec docker_swarm_service: Documentation fixes (#50861)
* Describe labels and container_labels correctly

* Clarify reserve_memory and limit_memory docs

* Remove default from container_labels doc

* Remove trailing whitespace

* Document min api version for configs and secrets

* Add changelog fragment

* Specify type on labels and container_labels

* Consolidate required API version descriptions

* Update reserve and limit memory docs

* Use correct power-of-two units

* Remove description about limit_memory minimum 4mb
2019-01-14 13:32:03 +00:00
Rich Wareham fd32760d7a docker_swarm_service: use exact name match when finding services (#50665)
* docker_swarm_service: use exact name match when finding services

The Docker API's filtering support allows filtering for substring
matches which means that when we filter the list of running services we
may accidentally match a service called "foobar" when looking for a
service named "foo".

Fix this by filtering the list of services returned from the Docker API
so that name matches are exact. It is still worth passing the filter
parameter to the Docker API because it reduces the number of results
passed back which may be important for remote Docker connections.

Closes 50654.

* add changelog fragment for #50654
2019-01-14 12:00:34 +01:00
Hannes Ljungberg cde292cc43 docker_swarm_service: Don’t add difference when update_order is None (#50655)
* Don’t add difference when update_order is None

* Add changelog fragment
2019-01-14 11:58:05 +01:00
Felix Fontein 0e7a9a2771 docker_volume: revert #47390 (#50663)
* Revert "Fix option change detection / force support for docker_volume. (#47390)"

This reverts commit 8ef994fbc5.

* Update changelog.

* Adjusting tests.
2019-01-11 14:41:37 -06:00
Piotr Wojciechowski 1f28ecd276 docker_node_facts: Read information about swarm node from swarm manager (#50571)
* docker_node_facts: New module to read information about swarm node from swarm manager

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* docker_node_facts: min_docker_api_version and docker updated to align with Docker documentation

* docker_node_facts: Updated documentation and minimum version requirements

* docker_node_facts: Updated documentation of requirements

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

* Update lib/ansible/modules/cloud/docker/docker_node_facts.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>
2019-01-08 13:00:59 +00:00
UNR Information Security 8f55e817d2 Correct Errors in Documentation (#50507)
* Correct Errors in Documentation

According to the module, "compose" is not required, but the docs said it was - removed the "required" tag. Additionally, the example for removing a stack did not include the required "name" option (this method is why "compose" is not required.
+label: docsite_pr

* Removed change to description

Corrected issue to my "correction" on the description.

* Removed required false

* Removed all instances of required: false.
2019-01-04 05:16:15 -05:00
Felix Fontein 6b33c588d0 docker_swarm_service: Fix typo for option type (#50483)
* Fix typo for option type in docker_swarm_service.

* Add changelog.
2019-01-03 17:03:59 +05:30
Felix Fontein 26e3240315 docker_secret, docker_config: allow to base64-decode data (#49688)
* Adjust docker_config and docker_secret to be more similar.

* Add data_is_b64 parameter to docker_secret and docker_config.

* Add changelog.
2019-01-01 16:06:45 +00:00
Felix Fontein 04e2a94687 Improve tagging examples. (#50321) 2018-12-26 15:10:14 +00:00
John Hu 9be3ebc596 docker_image: add network parameter (#50313)
* docker_image: add network parameter

Add a network parameter to the docker_image module to specify the
network to use for RUN commands.

Called it network instead of network_mode as the latter seems like a
legacy of when there were just a few default options to choose from,
while now the name of an arbitrary network can be specified.

Fixes #21433

* Format description

* Update docker_image option_minimal_versions

* Ensure network_mode param optional
2018-12-26 13:23:39 +00:00
Dag Wieers 05c6ff79f9 Convert to reduced list of known types (#50010) 2018-12-19 07:25:30 +10:00
Toshio Kuratomi 3fba006207 Update bare exceptions to specify Exception.
This will keep us from accidentally catching program-exiting exceptions
like KeyboardInterupt and SystemExit.
2018-12-16 15:03:19 -08:00
Dave Bendit d62d7176b0 [docker_container] Failing on non-string env values (#49843)
* [docker_container] Failing on non-string env values

Fixes #49802

* Clarify failure message

Co-Authored-By: DBendit <David@ibendit.com>

* Fixup from review
2018-12-14 13:21:54 -06:00
Dave Bendit c67f4290e6 [docker_volume] Checking option minimal versions (#49839)
Fixes #38833
2018-12-14 13:20:48 -06:00
Akshay Gaikwad 1e0363ec7d Support for cache_from parameter in docker_image module (#49787)
* Support for cache_from parameter in docker_image module

Fixes #21704

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Minimum docker version check for cache_from option

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Add changelog fragment

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* cache_from fix when docker-py is older

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
2018-12-14 13:19:40 -06:00
Dave Bendit b67719ba1d Docker common consolidation (#49707)
* [docker] Consolidating Python Boolean conversion for Docker API (#49563)

* [docker] Consolidating docker option min version checks (#49564)

* [docker] Moving option min version checks out of docker_swarm (#49564)

Also renaming Boolean cleanup function and fixing docker_container minimum
version check for network interfaces.

* Cleanup from PR feedback
2018-12-12 09:05:12 +00:00
Dave Bendit 8fcf9e1a28 [docker_container] Fixes idempotency checks for network_mode (#49797)
Fixes #49794
2018-12-12 09:04:24 +00:00
Felix Fontein 495a426039 docker_swarm: fix minimal API version (#49691)
* Reduce minimally required docker API version to 1.25, with selective features requiring 1.30.

* Adjust test requirements.

* Forgot some imports.
2018-12-10 14:09:28 +05:30
Dario Zanzico b183eb4464 docker_swarm_service: ensure idempotency when the user parameter is None (#49235)
* ensure idempotency for user set to None

* Update `user` documentation and add changelog fragment

* clarify changelog fragments and parameters documentation

* use restructuredtext syntax in changelog fragment
2018-12-10 14:09:13 +05:30
Felix Fontein aec98b6aab Add docker_volume_facts module (#49692)
* Add docker_volume_facts module.

* Fix type confusion.

* Improve tests.
2018-12-10 15:41:46 +10:00
Dave Bendit f545763296 [docker_network_facts] Creating docker_network_facts module (#49644)
Part of #49267
2018-12-10 15:24:05 +10:00
Dave Bendit 73640a4190 [docker_network] Adding `scope` and `attachable` flags (#49562)
Incorporating the abandoned work from PRs #35288 and #45552. Also adding in
the version checking from `docker_container.py`, which should be abstracted
out to `docker_common.py`.
2018-12-06 18:50:45 +00:00
Akshay Gaikwad 597e449afe Support for pids_limit parameter in docker_container module (#49319)
* Support for pids_limit parameter in docker_container module

This add pids_limit parameter support in docker_container module

Fixes #43337

Signed-off-by: Akshay <akshay@localhost.localdomain>

* Add changelog for pids_limit parameter

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Remove unnecessary lines of code

The map is needed if the names are different.

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Update pids_limit option tests

It also run for docker-py < 1.10.0

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
2018-12-03 11:22:43 +00:00
Felix Fontein 9caaf7b109 docker_container: fix init option idempotency with old docker-py versions (#49078)
* Don't check options for idempotency which are not supported.

This check should be superfluous if every option would adhere to
the convention that options not specified should have value None.
Unfortunately, some options (such as init) which correspond to
container properties have an explicit default set.
2018-11-26 13:53:01 +00:00
Felix Fontein 3bb41ccb8e docker_* tests: check API version (#48620)
* Check minimal API and docker-py versions for all docker_* tests.

* Improve docker_swarm creation/destruction for tests.

* Fail when conditions aren't met.

* Don't hardcode address for advertise_addr.
2018-11-19 10:01:40 +00:00
Felix Fontein 891687284f docker_* modules: improve diff (#48546)
* Add difference tracking tool

* Improve --diff mode for docker_container.

* Improve diffs of sets by ordering the sets.

* Rewrite imports, get rid of HAS_DOCKER_PY_x variables and use docker_version instead.

* Rename container -> active (more generic).

* Add --diff for docker_volume. Change old diff output.

* Add --diff for docker_network. Change old diff output.

* Add --diff for docker_swarm_service.

* Add changelog.

* Add entry for porting guide on docker_network and docker_volume.
2018-11-19 09:59:54 +00:00
Felix Fontein ce3a9cfae5 Only pass ipam parameter to create_network() if needed. (#48735) 2018-11-16 01:20:32 -05:00
Abhijeet Kasurde 5126068a19 Missing min version in string format (#48715)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-11-15 08:13:39 -05:00
Felix Fontein b1acabcd03 docker_container: fix tests and idempotency for init and shm_size (#48551)
* Fix tests: use same command if not testing command option.

* Fix idempotency of init option.

* Fix shm_size idempotency (it is included in inspect results from docker API version 1.22 on).

* Add changelog.
2018-11-13 13:07:36 +00:00
Felix Fontein f3a3f42490 docker_container: make condition less specific (#48590)
* Code seems to have changed from 409 to 400, so let's not check the code.

* Unpause container before removing it.

* Improve code.

* Same for stop_container.
2018-11-13 08:21:55 +00:00
Dario Zanzico 89bcd3ff1e clarify port.mode paramter requiremets, fail if unmet (#47938)
* clarify port.mode paramter requiremets, fail if unmet

* changelog fragment

* shorten too long line

* remove unnecessary indentation

* test version on docker_version for better maintainability

* normalize imports

* changelog fragment: minor_changes -> bugfixes

* rollback e96a7e57dfefd566fa47cf465a759637affd4795

* typo

Co-Authored-By: dariko <dariko@users.noreply.github.com>
2018-11-12 11:36:02 +00:00
Felix Fontein 0206a46e1d docker_* modules: updating argument_spec (#48491)
* Updating argument_spec for docker_* modules.

* Adjust docker_network to work with new recursive argument_spec.

* Adjust device IO limits to recursive argument_spec.

* Improve test (test Ansible's cast from str to int).

* Adjust healthcheck options construction.

* Remove superfluous check.

* Make flake8 happy.

* Simplify comparison.
2018-11-12 11:33:42 +00:00
Felix Fontein feb60b947c Docker volume fix labels (#48536)
* Add integration test for labels (which fails).

* Changing labels from list to dict.

* Add changelog.
2018-11-12 11:24:07 +00:00
Felix Fontein 602d02be5f Add docker_container_facts module. (#48062) 2018-11-06 15:08:28 +00:00
Dave Bendit d7686e1bc0 [docker_network] Add handling for Python booleans in driver_options (#48105)
Fixes #26708
2018-11-06 14:39:45 +00:00
Felix Fontein 2728a22f73 Add docker_prune module (#48063)
* Add docker_prune module.

* Fix spelling error.
2018-11-05 17:05:26 +00:00
Felix Fontein 569ec812e7 Improve paused test and behavior. (#48056) 2018-11-05 11:34:23 +00:00
Felix Fontein af2b477950 docker_container: fix container removal when auto_remove is used (#48061)
* Fix container removal when auto_remove is used.
2018-11-05 11:33:56 +00:00
Felix Fontein 35809e99bc docker_container: fix ipc_mode and pid_mode idempotency (#47997)
* Fix ipc_mode and pid_mode idempotency when container names are used.

* Add changelog.

* Update pid_mode documentation.
2018-11-05 10:26:13 +10:00
Felix Fontein 3cca4185be docker_container: simplify minimal required version per option handling (#47711)
* Store parsed docker-py / docker API versions in client.

* Began refactoring 'minimal required version' for docker_container options.

* Removing some fake defaults.

* Added changelog.

* Improve tests (check older docker versions).

* Fix comparison. The breaking point is not docker-py 2.0.0, but 1.10.0.

(Verified by testing with these versions.)

* Move docker-py/API version detection to setup_docker.

* Add YAML document starter.

* docker_network requirement for docker-py was bumped to 1.10.0 in #47492.
2018-11-05 10:25:11 +10:00
Stephan Müller 00bab2d24d [docker_network] add ipv6 support (#47492)
* [docker_network] add ipv6 support

* docker_network: review ipam_options

* docker_network: fix requirements

* docker_network: fix deprecation notice

* docker_network: add minimum docker version change

* docker_network: remove trailing whitespace

* docker_network: revert rename of network_four #discussion_r228707101

* docker_network: refactor IPAM config comparison #discussion_r228707255, #discussion_r228707280

* docker_network: correct spelling of IPv4 and IPv6 #discussion_r228707114, #discussion_r228707138

* docker_network: manually remove networks #discussion_r228709051

* docker_network: refactor enable_ipv6 condition #discussion_r228707317

* docker_network: add mutually_exclusive #discussion_r228707185

* docker_network: fix iprange #discussion_r228709072

* docker_network: add auxiliary addresses in examples and tests

* docker_network: link to docker docs #discussion_r228707018

* docker_network: remove list default #discussion_r228707060, #discussion_r228709091

* docker_network: introduce params syntax for create_network() #discussion_r228709031

* docker_network: beautify code

* docker_network: resolve change requests

* docker_network: add yaml header

* docker_networking: fix get_ip_version

* docker_network: extend CIDR test

* docker_network: use backported unittest2 for python 2.6

* docker_network: migrate unittest to pytest
2018-11-02 08:59:16 +10:00
Akshay Gaikwad 80ca779aa7 Support for device read write limit parameters (#47814)
* Support for device read write limit parameters

* Add following options in docker_container module
  - device_read_bps
  - device_write_bps
  - device_read_iops
  - device_write_iops

Fixes #36831

* test for device_read_iops
* combined test for device_write_bps and device_write_iops
2018-11-02 08:58:06 +10:00
Thierry Bouvet 87de2dde9f Fix advertise addr (#47608)
* Fix issue #46326

* Update example to create a default swarm
2018-11-01 08:10:03 +00:00