Commit graph

526 commits

Author SHA1 Message Date
Felix Fontein
a1ec307d43 docker_swarm: make labels work with older docker daemon versions (#52895)
* Make labels work with older docker daemon versions.

* Fix idempotence detection.

* Add changelog.
2019-02-25 08:16:09 +00:00
Nicolas Singh Oteiza
e599f5aabe Add docker_prune sample to remove everything, including non-dangling images (#52744)
* Update docker_prune.py

##### SUMMARY
Add example to remove everything, including non-dangling images


##### ISSUE TYPE
- Docs Pull Request

+label: docsite_pr

* fix indentation

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

Co-Authored-By: nicosingh <nicolas.singh@gmail.com>
2019-02-25 08:15:15 +00:00
Felix Fontein
3c39fe5871 Improve documentation on remote_addrs. (#52893) 2019-02-24 10:58:49 -05:00
Felix Fontein
81d58cfef6 docker_swarm: hopefully fix debug CI problems, and fix check mode (#52825)
* Let's see some debug output.

* Also check LocalNodeState.

* Improve tests.

* Actually implement check mode.

* Add changelog.

* Add pretty-printing and more output.
2019-02-23 17:18:17 -05:00
Hannes Ljungberg
f5d9eb1dea docker_swarm_service: Specify choices on update_order (#52741)
* Specify choices on update_order

* Drop quoting

* Add changelog fragment

* Revert "Add changelog fragment"

This reverts commit 6a4a2b903b859a41356ff55a8937da976345755d.
2019-02-22 12:14:20 -05:00
Hannes Ljungberg
dd4b4aa941 docker_swarm_service: Add stop_grace_period option (#52519)
* Add stop_grace_period option

* Add changelog fragment

* Move doc type to last

* Add version_added
2019-02-21 20:12:13 +00:00
Hannes Ljungberg
da8574c567 docker_swarm_service: Allow passing period strings on relevant options (#52530)
* Allow duration to be passed as duration strings

* Remove whitespace

* Add changelog fragment

* Fix broken test

* Better error handling
2019-02-21 11:47:06 +00:00
Hannes Ljungberg
7276344f85 docker_swarm_service: Don’t remove service when networks change (#52634)
* Don’t remove service when networks change

* Add changelog fragment

* Some more network integration tests

* Add hannseman as author

* Remove return on self.client.fail
2019-02-21 11:46:50 +00:00
Piotr Wojciechowski
67f14772b1 docker_node: labels operation fails when parameter 'labels' is None (#52662)
* docker_node: Fix for situation where labels parameter is None

* docker_node: Fix for situation where labels parameter is None and labels are not removed
2019-02-20 16:04:42 -05:00
Hannes Ljungberg
af154e42ec docker_swarm_service: Use inspect_service to get service data (#52534)
* Use inspect_service to get service data

* Catch NotFound error

* Return None explicitly
2019-02-19 15:26:24 -05:00
Hannes Ljungberg
991af9ca73 docker_swarm_service: Remove misinterpretable description (#52533)
* Remove misinterpretable description

* Update module description

* Spelling
2019-02-19 14:15:36 -05:00
Felix Fontein
8388c89a29 docker modules: add missing option types (#52422)
* Add missing option types for docker modules.

* Reorder argument_spec.

* First part of option reordering/reformatting.

* Second part of option reordering/reformatting.

* Forgot two required: false.

* Normalize booleans.

* Added missing period.
2019-02-18 15:40:52 -05:00
Hannes Ljungberg
0bf9052e06 docker_swarm_service: Remove defaults (#52420)
* Remove update_parallelism default

* Remove update_delay default

* Add documentation about removing defaults

* Present porting guide changes as a list
2019-02-18 14:19:19 -05:00
Hannes Ljungberg
c80ad43371 docker_swarm_service: Add working_dir option (#52425)
* Add working_dir option

* Check local mounts var to align with other checks

* Add changelog fragment

* Add trailing comma
2019-02-18 13:42:19 +00:00
Felix Fontein
37b0f5c81b docker: provide alternatives to ansible_facts results (#51192)
* Try to stop using ansible_facts for docker modules.

* Stop using facts returned from regular modules.
2019-02-18 13:41:34 +00:00
Felix Fontein
8222ebd23a docker_image: really deprecate state==build (#52412)
* Really deprecate state==build.

* Also explicitly deprecate use_tls.

* Add changelog.
2019-02-18 13:25:25 +00:00
Hannes Ljungberg
64b12d2c0d docker_swarm_service: Add groups option (#52428)
* Add groups option

* Add changelog fragment

* Remove whitespace

* Remove whitespace
2019-02-18 13:12:05 +00:00
Hannes Ljungberg
18b968d486 docker_swarm_service: Add healthcheck option (#52419)
* Define yaml versions as strings

* Add healthcheck option

* Add changelog fragment

* Don’t set version_added as strings

* Use single quoted string

* Disable healthcheck tests on python 2.6

* Bring back quoting on already quoted version-added

* Python 2.6 compat

* Move functions to docker-common

* Move parse_healthcheck to docker-common

* Cast exception to str before printing failure

* Extend parse_healthcheck tests
2019-02-18 09:46:14 +00:00
Hannes Ljungberg
77d116f66e docker_swarm_service: Add stop_signal option (#52424)
* Add stop_signal option

* Add changelog fragment
2019-02-18 09:43:35 +00:00
Piotr Wojciechowski
97ebc95784 Fix typo in key name (#52432) 2019-02-17 22:45:13 -05:00
Felix Fontein
ef3d86255d docker_* modules: remove from validate-modules ignore list (#52402)
* Remove docker_* modules from validate-modules ignore list.

* Adjust types of cacert_path, cert_path and key_path.

* Fix type of update_failure_action in docker_swarm_service.
2019-02-16 07:14:29 -08:00
Felix Fontein
132d920113 Also return some information in case the docker daemon does not run, is not in swarm mode or not a swarm manager. (#52189) 2019-02-13 16:49:45 -05:00
Felix Fontein
d7fd4d0550 docker_*: always use client.fail() over module.fail_json(), allow to always return data on failure (#51999)
* Always use client.fail() instead of module.fail_json().

* Allow to pass on results on module failure.

* Linting.
2019-02-13 14:10:23 -05:00
Hannes Ljungberg
70d8f02db7 docker_swarm_service: Extend env and add env_files support (#51762)
* Extend env and add env_files support

* Python 2.6 compat

* Handle lists passed as string

* Add changelog fragment

* Use correct link formatting

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

* Fix typo

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

* Handle empty env and env_files values
2019-02-12 08:06:58 +00:00
Piotr Wojciechowski
42f20091dd docker_swarm_facts: New module to retrieve Docker Swarm information (#50622)
* docker_swarm_facts: PR cleanup after rebasing

* docker_swarm_facts: Adding the features similar to docker_host_facts

* docker_swarm_facts: Minor documentation and documentation updates

* docker_swarm_facts: Minor documentation and documentation adjustments to changes in #51700

* docker_swarm_facts: Using AnsibleDockerSwarmClient class method to fail module if not run on swarm manager
module_utils\docker\swarm.py: Adjustment of error message to me bore descriptive if module fails because it is not run on swarm manager node
2019-02-12 00:59:31 -05:00
Piotr Wojciechowski
ea72f7001c docker_node_facts: Query may cover single or multiple nodes (#51701)
* docker_node_facts: Query may contain single or multiple nodes, additional option to query about the docker manager itself
docker_node_facts: Code update to use the module_utils/docker_swarm.py AnsibleDockerSwarmClient class methods

* docker_node_facts: Minor documentation update and error handling

* docker_node_facts: Minor documentation and code updates

* docker_node_facts: Minor documentation adjustments
2019-02-12 00:58:07 -05:00
Hannes Ljungberg
153e996760 docker_swarm_service: Remove defaults (#51216)
* Drop descriptions of docker-py constraints <=3.0.0

* Properly indent documentation

* Clearer examples

* Spelling

* Fix example

* Revert "Drop descriptions of docker-py constraints <=3.0.0"

This reverts commit 8106215af62ae5880c3b748cec562a85f2247bdc.

# Conflicts:
#	lib/ansible/modules/cloud/docker/docker_swarm_service.py

* Add min versions for placement preferences

* Add endpoint_mode and publish to option_minimal_versions

* Restrict update max_failure_ratio and monitor versions

* Remove defaults and only pass required arguments

* Fix indentation

* Fix args documentation

* Fix replicas documentation

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

* Add type to all documented options

* Add suboptions for mounts, secrets and configs

* Add suboptions to argument spec

* Remove redundant validation and casting

* Don’t default Spec.EndpointSpec.Mode to vip

* Use single quotes as string literal

* Catch ImportError explicitly

* Move init to top of class

* Align closing brackets

* Spelling

* Import LooseVersion

* Documentation fixes

* Documentation fix

* Documentation fixes

* Remove required: false and default=None

* Defaults for update_delay and update_parallelism

* Set correct key for default

* Handle empty idempotency

* Clearer image documentation

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

* Clearer constraint documentation

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

* Better documentation of corresponding service opts
2019-02-10 14:17:59 +00:00
Felix Fontein
0c2bb3da04 docker modules: various adjustments (#51700)
* Move docker_ module_utils into subpackage.

* Remove docker_ prefix from module_utils.docker modules.

* Adding jurisdiction for module_utils/docker to $team_docker.

* Making docker* unit tests community supported.

* Linting.

* Python < 2.6 is not supported.

* Refactoring docker-py version comments. Moving them to doc fragments. Cleaning up some indentations.
2019-02-08 08:16:11 +00:00
Hannes Ljungberg
4a5d38b55a docker_swarm_service: Enable tests (#51170)
* Enable tests

* Comment fixes

* Try lowering timeouts

* Comment fix

* Comment fix

* Comment fix

* Add a pause to let service update

* Fix comment

* Disable dns_search tests

* Disable dns_servers test

* Fix comment

* Fix comment

* Fix comment

* Fix comment

* Fix comment

* Fix comment

* Fix comment

* Revert "Disable dns_servers test"

This reverts commit 763e9da716b78f4986f313b3ba1ab98faacb742e.

* Revert "Disable dns_search tests"

This reverts commit 2859e4e3a5ebdca078de84d821bb53bbdf967dfd.

* Revert "Add a pause to let service update"

This reverts commit e990dfae1a62e9a42b07960819818bc75fd04427.

* Revert "Try lowering timeouts"

This reverts commit 1617772de81ecef0e560b38c7564646ec3874c3c.

* Ensure that services are running while testing

* Retry tasks on update out of sequence error

* Remove unnecessary check for APIError.explanation

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

* Ignore errors when tearing down test suite

* Retry with a loop instead of tail recursion

* Initialize self.diff_trace in run

* Add change log fragment

* Actually raise error

* Add unit test for retrying

* Lint

* Change to bugfix

* Remove whitespace

* Mock docker dependency

* Use download.fedoraproject.org

* Revert "Use download.fedoraproject.org"

This reverts commit 5931791f7cfdd339f15068c8706b39905517abdf.
2019-02-05 08:25:29 +00:00
Piotr Wojciechowski
daf1cfbde0 docker_node: Docker Swarm node operations module (#50584)
* * docker_node: New module for operations on Docker Swarm node
* Shared code for Docker Swarm modules

* * docker_node: Removed the attribute `force` as it is not used for any operation

* docker_node_facts: Update module to use client class AnsibleDockerSwarmClient instead of AnsibleDockerClient

* docker_node_facts: List of nodes can be provided as input, inspect all registered nodes or manager host itself

* docker_node: Update in method name called from AnsibleDockerSwarmClient

* docker_node: Additional method to shared module to get formatted output list of registered nodes

* docker_node: Additional method to shared module to get formatted output list of registered nodes

* docker_node: removed state list (featue moved to docker_swarm_facts)

* docker_node: Node labels manipulation (remove, replace, merge)

* module_utils/docker_swarm: Updated output for nodes list - adding swarm leader flag

* docker_node_facts: update in input and return values, update in documentation section

* docker_node: Updated operations on labels, tracking if change is required

* docker_node: Updated documentation, parameter 'hostname' is now required
docker_node_facts: Updated documentation

* * Failing Ansible tasl if not run on swarm manager - code cleanup

* * docker_node: Remove the 'action' list from output

* * docker_node: variable name change to be align with Python best practice, BOTMETA.yml update

* * module_utils/docker_swarm.py: fix for incorrect fail() action
* docker_node: documentation and code small updates

* * docker_node: revised labels manipulation

* docker_node_facts: Reverting to repository version, moving this change to separate PR

* * docker_node: Documentation update

* * docker_node: Update to node availability and role modification

* * docker_node: Update to check_mode handling

* * docker_node: Code cleanup

* docker_node_facts: Code cleanup

* docker_node_facts: Adding back the module with only update to use AnsibleDockerSwarmClient instead of AnsibleDockerClient
docker_node: cosmetic code changes
BOTMETA: updated on $team_docker

* docker_node: BOTMETA update
2019-02-04 13:08:46 +00:00
Felix Fontein
89a1c68f98 docker_volume: improve force option (deprecate, add new option) (#51145)
* docker_volume: Deprecating force option, adding recreate option.

* Add changelog.

* Remove mis-placed force: yes for docker_volume.
2019-02-03 15:09:24 -05:00
Piotr Wojciechowski
e633b93f85 docker_host_facts: Get system-wide information about docker host (#51373)
* * docker_host_facts: Getting docker host info

* * docker_host_facts: Getting lists of containers, volumes, images and networks as in respective CLI commands

* * docker_host_facts: Adding filters, documentation update

* docker_host_facts: Code cleanup

* docker_host_facts: Adding verbose output option. Documentation update.

* docker_host_facts: Improving author information for ansibot

* docker_host_facts: documentation and small code updates, for `docker_disk_usage` returned type is always dict now
2019-02-02 07:52:16 -05:00
Felix Fontein
27dc399885 Update lib/ansible/modules/cloud/docker/docker_container.py
Co-Authored-By: TimoKramer <4785848+TimoKramer@users.noreply.github.com>
2019-01-29 16:13:39 -05:00
Timo Kramer
d9135f3960 description updated to mention valid value
The only valid value for userns_mode on docker run command is "host". This should be mentioned in description because it is hard to find in docker documentation as well: https://github.com/docker/docker.github.io/issues/7071
2019-01-29 16:13:39 -05:00
Chanwit Kaewkasi
c6b3f2c848 change the default value of user to null (#51376)
Change the default value of user from root to null to conform the current Docker behavior and the current Ansible documentation.
2019-01-28 15:38:02 -05:00
Hannes Ljungberg
72a44e144a docker_swarm_service: Compare image by digest (#51134)
* Compare image by digest

* Add changelog fragment

* Fix version check

* Remove unused import

* Add note about image resolving

* Don’t overwrite image

* Fix documentation error

* Add resolve_image option

* Add version_added

* Remove whitespace

* Remove unused attribute

* Remove unused attribute
2019-01-27 11:48:16 -05:00
Hannes Ljungberg
b426daa064 docker_swarm_service: Remove root as default user (#51110)
* Remove root as default user

* Add changelog fragment

* Add deprecation documentation

* Tweak user default docs for docker_swarm_service

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

* Tweak user default deprecation docs

Co-Authored-By: hannseman <hannes@5monkeys.se>
2019-01-27 16:26:41 +00:00
Hannes Ljungberg
ee39853426 docker_swarm_service: Fix endpoint mode idempotency (#51232)
* Fix endpoint mode idempotency

* Remove newline
2019-01-27 09:06:09 -05:00
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