Commit graph

32 commits

Author SHA1 Message Date
Hannes Ljungberg
e58f23b73e docker_swarm: Return UnlockKey (#54490)
* Return UnlockKey

* Add changelog fragment

* Add method to check if a parameter exists in diffs

* Add method to get swarm unlock key

* Add option unlock_key

* Only return unlock key when created or changed

* Rename difference check

* Extend unlock key example

* Assert that unlock_key is a string

* Fix docker_swarm_info authors

* Don’t silence APIErrors

* Test unlock_key on unlocked swarm

* Catch APIError when retrieving unlock key

* Better return value description

* Lint

* Fix UnlockKey return value documentation

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

* Get unlock key safely

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

* Return None on empty UnlockKey

* Assert swarm_unlock_key is undefined if unqueried

* Add documentation about swarm_info unlock_key

* Add change log fragment for unlock_key option

* Revert "Add change log fragment for unlock_key option"

This reverts commit e3cb2325b552e5d14cc3f42b33a86bf3ee84d3b9.

* Use generator expression instead

* Restart docker more decisively

* Use systemctl kill

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

* Try to restart docker daemon
2019-04-01 12:19:18 +01:00
Hannes Ljungberg
833512b07c docker_swarm: Add support for default_addr_pool and subnet_size (#54642)
* Add support for default_addr_pool and subnet_size

* Add changelog fragment

* Document options only used on init / join
2019-03-31 16:56:55 -04:00
Felix Fontein
8d62794f91 docker: rename docker_*_facts -> docker_*_info (#54124)
* Rename docker_*_facts -> docker_*_info.

* Add changelog.

* Update scenario guide.
2019-03-21 08:37:18 +00:00
Felix Fontein
4ced1c693c Docker: mention Docker SDK for Python instead of docker/docker-py (#53917)
* Mention Docker SDK for Python instead of docker-py / docker.

* Docs fixes.

* Add myself as docker_container author.

* Use array syntax for running command.

* Break long lines.

* Avoid failure when docker_version is None.

* Improve docker-py vs. docker note in requirements.

* Canonicalize Docker SDK for Python upgrade instructions.

* Split long line.

* Make it clearer which hostnames are meant.
2019-03-20 13:27:44 -04:00
Felix Fontein
c75da35595 Removing a swarm node does not work with docker-py < 2.4.0, since it calls client.inspect_node(). (#53565)
For the same reason, docker_node requires docker >= 2.4.0.
2019-03-09 14:28:04 -06:00
Jason Witkowski
be39e757e3 apply node_id parameter to swarm node removal (#53503) 2019-03-08 15:58:34 -05:00
Felix Fontein
8e26c2dfbe docker_swarm: support older docker-py versions (#53129)
* Decreasing docker_swarm requirements.

* Fixing docker-py / docker API version requirements, and some comments.

* Add changelog.

* Only send parameters specified by user to docker daemon.

* Extend labels test: not specifying == keep labels.

* Bump minimally required docker-py version for docker_node and docker_node_facts to 2.4.0.

* Prevent crashing when publish or healthcheck is not provided.

* Similarly to docker_swarm tests, only execute docker_node tests on real VMs and restart docker daemon when tests are done.
2019-03-04 12:10:09 +01:00
Piotr Wojciechowski
ec4cf26d60 Documentation update for labels operations on swarm/node (#53083)
* Update lib/ansible/modules/cloud/docker/docker_node.py
* Update lib/ansible/modules/cloud/docker/docker_swarm.py

Co-Authored-By: WojciechowskiPiotr <23406016+WojciechowskiPiotr@users.noreply.github.com>
2019-02-28 14:08:35 -05:00
Felix Fontein
76e0e0080b Fix force when state==present. (#53003) 2019-02-27 09:11:57 +00:00
Felix Fontein
dec97381bc docker_swarm: fix ca_force_rotate idempotency (#53039)
* Fix ca_force_rotate idempotency.

* Add changelog.
2019-02-27 09:11:45 +00:00
Felix Fontein
8563c2616b docker_swarm: fix diff mode and details (#53053)
* Fix diff messages for leaving swarm.

* Remove superfluous brakets.
2019-02-27 04:07:01 -05:00
Felix Fontein
0c874a022b Fix types for signing_ca_cert and signing_ca_key options (changed wrongly in #52422). (#53038) 2019-02-27 01:42:34 -05:00
Felix Fontein
9474f81507 Remove merging artefact. (#53033) 2019-02-26 18:09:50 -05:00
Piotr Wojciechowski
72bdcdfff2 docker_swarm update to use shared Swarm library (#52886)
* docker_swarm: Update code to use AnsibleDockerSwarmClient instead of AnsibleDockerClient

* docker_swarm: Update check_if_swarm_node_is_down() with repetitive attempts to check node status to reflect original method implementation

* docker_swarm: Add information that `state: inspect` will be removed in future release

* docker_swarm: Fix sanity error

* docker_swarm: Check_mode conditional for failing during the swarm init

* docker_swarm: Small cleanup of a code

* docker_swarm: Moving the warning message before dispatching

* Commit to solve problems with Shippable
2019-02-26 16:41:16 -05:00
Felix Fontein
bf3c291606 docker_swarm: add diff support (#52947)
* Add diff support to docker_swarm.

* Add changelog.

* Using diff mode for docker_swarm tests. This improves debugging, since the the module now outputs more information on *why* it did certain actions.
2019-02-26 11:57:02 +00:00
Felix Fontein
42ae6cdb95 docker_swarm: fix idempotency (#52976)
* Improve idempotency checking: only consider parameters which are part of the generated spec.

* Properly handle rotate_worker_token and rotate_manager_token.
2019-02-26 11:46:43 +00:00
Felix Fontein
4eb9c591d7 Accidentally included q.q. (#52946) 2019-02-25 14:07:27 -06:00
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
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
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
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
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
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
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
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
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
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
John Hu
82f1438b14 Add docker_config module (#38792)
* Add docker_config module

* Address review comments

* Merge description lines

* Stop returning empty config_id in results

* Add integration tests for docker_config

Based on docker_secret's tests.

* Ensure swarm using docker_swarm module

* Add minimum docker / docker api version requirements

ref: https://github.com/ansible/ansible/pull/47046

* Check Docker API version before running tests

ref: https://github.com/ansible/ansible/pull/47340

* Typo

* Wording

* Improve example

* Assert state == absent is idempotent
2018-10-26 10:58:17 +01:00
Felix Fontein
32e8251f86 docker_* modules: unify docker module version checks (#47046)
* Unify docker module version checks.

* Improve messages depending on required docker-py versions.

* Linting.
2018-10-18 10:51:58 +01:00
Felix Fontein
765a5130d5 Docker modules: improve documentation on docker vs. docker-py Python package requirements (#42457)
* Make sure all docker-py/docker requirements are listed, and clarify about docker vs. docker-py.

* Adjusting changes made in #40839.
2018-07-11 17:57:39 -04:00
Thierry BOUVET
8b9fe42c72 Add new module to create/update a docker swarm. (#38280)
* Add new module to create/update a docker swarm.

* Fix ansible-test sanity

* Fix requirements

* Fix requirements

* Add tag for author

* Test integration test.

* Fix main.yml

* Add linux arch

* Add template

* Fix test result

* Integration test to create/remove a swarm manager

* fix join test

* Downgrade docker-py

* fix rhel

* Fix review documentation.

* Fix whitespace

* Check docker installation.

* test docker install

* check

* Remove docker socket

* Fix docker install

* Fix sanity test

* Rebase

* Add docker_swarm maintainer

* Fix review

* Fix new version.

* Add docker default values

* Fix description.

* Reworked documentation

* Fix YAML error

* Rebase

* Fix example for update state.

* Fix idempotent states. Fix states: present/absent.

* Fix sanity

* Fix variables sanity

* Update example for absent state.

* fix sanity

* Wrap the contents of error message in to_native.


Co-authored by: Dag Wieers <dag@wieers.com>
2018-06-08 10:45:09 -04:00