Commit graph

338 commits

Author SHA1 Message Date
chouseknecht
a9ab2e1142
Add doc string for container_limits. Fixed push fail message. Use path type. 2016-04-29 00:39:08 -04:00
Chris Houseknecht
35c589575d Adding docker_image_facts (#3493)
* Adding docker_image_facts

* Fix github credentials
2016-04-27 17:43:44 -04:00
Chris Houseknecht
f6344b6dc7 Adding docker_container (#3495)
* Adding docker_container

* If state absent, stop the container before attempting to remove. Fixed status running check.

* If container absent, stop before removing. Fix container status check.
2016-04-27 17:43:26 -04:00
Toshio Kuratomi
22ce32dd93 Fix docs building 2016-04-27 10:40:38 -07:00
Toshio Kuratomi
f3fef24e49 Some beginning python3 porting for modules which have unittests 2016-04-27 07:17:05 -07:00
chouseknecht
1d2be97013 Updated version_added on options to reflect options added for 2.1. 2016-04-25 15:22:44 -04:00
chouseknecht
e888abbcb0
Clean up and fixes post API version 1.20 testing. 2016-04-25 15:12:28 -04:00
chouseknecht
6eba1d6fb3 Fix github credentials 2016-04-25 15:11:48 -04:00
chouseknecht
009b02e928 Fix unfriendly exeption handling. 2016-04-25 15:11:48 -04:00
chouseknecht
39fdd2358e Updater per PR comments 2016-04-25 15:11:48 -04:00
chouseknecht
7a1eea2767 Adding refactored docker_image module. 2016-04-25 15:11:48 -04:00
Chris Houseknecht
ec5515edcf Adding docker_login (#3494)
* Adding docker_login

* Set correct version_added.

* Fix github credentials
2016-04-25 10:19:54 -04:00
Darek Kaczyński
f7c32e2b5e Fix for 'cannot unmarshal array into Go value of type string' error about HostConfig Binds (#3496) 2016-04-22 21:05:16 -04:00
ThomasSteinbach
8dc0276533 docker: fix type issue (#3491)
* fix type issue

* fix type issue for 'volumes-from'
2016-04-21 13:28:26 +02:00
Alexey Wasilyev
1c3071af61 docker: support polling image by digest (#2932) 2016-04-16 21:46:02 +02:00
Fabian von Feilitzsch
edc8698c14 make binds a list instead of a dict (to prevent overwriting when copying the same file to two places) (#2294) 2016-04-12 22:01:45 +02:00
René Moser
13f4b40c15 Merge pull request #3284 from mscherer/fix_docker_args
Improve/fix type checking for docker module
2016-03-25 23:43:52 +01:00
Ash Wilson
f4557c1631 Remove myself from the docker module maintainers
Apologies, but I no longer use this module day-to-day myself, and I don't have the bandwidth right now to effectively triage changes in any kind of timely fashion.
2016-03-24 10:03:47 -04:00
Brian Coca
dabf28edbe Merge pull request #2853 from Igelko/patch-1
docker: If cmd and entrypoint not set, don't match them
2016-03-24 06:29:49 -07:00
Victor Beresnev
6a279fd421 If cmd and entrypoint not set, don't match them
Hello!
I wanted stop the containers matched only by image name, but can't do this, if I not set cmd in playbook.
This behavior confused me.

If cmd or entrypoint is defined for running container, but not defined in playbook, makes matching behavior as this sample:
https://github.com/ansible/ansible-modules-core/blob/devel/cloud/docker/docker.py#L463
2016-03-24 11:53:49 +04:00
Brian Coca
0abade73c4 Merge pull request #2929 from gesellix/add_env_file_support_v2
add `env_file` support
2016-03-21 11:19:57 -07:00
Michael Scherer
e78e13b222 Improve/fix type checking for docker module
tls_* point to files, so should be type=path
count is a int, so tag it as such and avoid converting later
password should be tagged as no_log
2016-03-21 00:44:52 +01:00
Yannig Perré
b958985816 Add an example of extra_hosts option. 2016-03-20 14:33:32 +01:00
Schlueter
0028f58ab6 Add missing quote in docker documentation 2016-03-08 21:32:38 -05:00
Andrey Gubarev
45b3066c81 update docker_image's path param type to 'path'. Fixes #3175 2016-03-03 02:27:39 +03:00
Brian Coca
5129ef5590 Merge pull request #2993 from berlic/devel
Fix docker container restart
2016-03-01 00:01:12 -05:00
Brian Coca
76669fa16c Merge pull request #2992 from dusdanig/devel
Adds ulimit to the docker module
2016-03-01 00:00:57 -05:00
Daniel Petty
bf04a0fe0e replaced sudo with become 2016-02-18 08:00:27 -07:00
Daan Oosterveld
90153a2ca5 Adds ulimit to the docker module
The ulimit will be specified as a list and separated by colons. The
hard limit is optional, in which case it is equal to the soft limit.

The ulimits are compared to the ulimits of the container and added
or adjusted accordingly on by a reload.

The module ensures that ulimits are available in the capabilities
iff ulimits is passes as a parameter.
2016-02-10 10:31:54 +01:00
Konstantin Suvorov
d9f13a0bbc Fix docker container restart
restart_containers(containers.running) may try to restart containers
that are deleted when looping through get_differing_containers()
fix this by refreshing list after first loop
2016-02-09 15:34:30 +03:00
Tobias Gesellchen
60e37e6fda add env_file support (original code from @vpetersson) 2016-02-05 14:59:24 +01:00
Alexey Wasilyev
511ce25ac8 docker: fix failing in case of empty image tag 2016-01-21 11:53:39 +03:00
Brian Coca
9c80b1adb7 added note about awslogs version added 2016-01-18 09:16:38 -05:00
jefferson fermo
028ecad9d4 add awslog option in docker log driver. this option is available starting with ansible 2.1 2016-01-16 23:22:20 +08:00
Brian Coca
9d4403f2b3 Merge pull request #2521 from wrouesnel/docker_reloaded_fixes
docker: Fix state=reloaded to detect default LoggingDriver for docker
2016-01-12 10:47:30 -05:00
Brian Coca
061da7dc05 updated version_added 2016-01-12 08:27:33 -05:00
Alexey Wasilyev
d61772807c Add cpu_shares option for docker module 2016-01-12 09:59:36 +03:00
Brian Coca
4be34067de added versions note in description for new choice 2016-01-11 18:14:37 -05:00
Brian Coca
c1df014e3b Merge pull request #2485 from sebi-hgdata/sebi/docker_unless_stopped
added unless stopped option to docker module
2016-01-11 18:09:24 -05:00
Brian Coca
f1754fb51e Merge pull request #2376 from mtpereira/fix_2351
Add support for legacy registries to pull_image().
2016-01-11 18:03:51 -05:00
Pavel Derendyaev
61fdb52039 Add "timeout" option to Docker module 2016-01-09 21:59:23 +03:00
sebi
aa15231cb7 added unless stopped option 2015-12-21 11:55:06 +02:00
Toshio Kuratomi
15c1c0cca7 entrypoint feature added in 2.1 2015-12-18 21:28:01 -08:00
Toshio Kuratomi
2220dc8e12 Merge pull request #2185 from AndrewPashkin/add_entrypoint_param_to_docker_module
Add entrypoint parameter to docker module
2015-12-18 21:25:14 -08:00
Toshio Kuratomi
ba3ee25172 labels is actually not aded in 1.9.4 but in 2.1 2015-12-18 17:57:17 -08:00
Omar Khan
19ebc45364 Add stop_timeout option to docker module 2015-12-18 17:51:31 -08:00
Toshio Kuratomi
d907f889a3 Merge pull request #1972 from yannh/docker-restarted
Docker module: restarted should update the container when necessary
2015-12-18 17:42:35 -08:00
Toshio Kuratomi
581b4f6de6 Add version_added to documentation 2015-12-18 16:34:16 -08:00
Joe Quadrino
8fe5d6f7ef add devices parameter for docker module 2015-12-18 16:34:16 -08:00
Brian Coca
4e8d04d248 Merge pull request #2159 from leonty/devel
Support 'labels' parameter for docker.
2015-12-15 08:32:37 -05:00
Brian Coca
a876704740 Merge pull request #2239 from boushley/devel
Fix issue with comparing versions improperly
2015-12-14 21:59:27 -05:00
Brian Coca
ed43b66d77 made note that Z/z are only 2.1 options 2015-12-12 13:04:01 -05:00
Will Rouesnel
7237798f20 docker: Fix state=reloaded to detect default LoggingDriver for docker
Previously the logging module hard coded the default logging driver. This means
if the docker daemon is started with a different logging driver, the ansible
module would continually restart it when run.

This fix adds a call to docker.Client.info(), which is inspected if a logging
driver is not supplied in the playbook, and the container only restarted if
the logging driver applied differs from the configured default.

In usage, this has solved issues with using alternative logging drivers.
2015-11-24 00:30:42 +11:00
Steve Spencer
fc5da26dee Sync up with allowable docker volume mounting modes 2015-11-12 10:42:26 +02:00
Steve Spencer
2c95641d66 Add support for mounting host volumes with Z and z options 2015-11-11 16:44:01 +02:00
Toshio Kuratomi
f2943bd404 Add zfil as an owner of the docker module 2015-11-06 21:18:46 -08:00
Toshio Kuratomi
4ed7b690f6 Add a new contributor as a maintainer of the docker module 2015-11-06 10:53:33 -08:00
Toshio Kuratomi
750aa16a06 Merge pull request #2093 from zfil/fix_facts
docker module: fix regressions introduced by f38186c and 80aca4b
2015-11-06 10:20:20 -08:00
Leonty
cff83dd257 Merge remote-tracking branch 'upstream/devel' into devel 2015-11-04 12:48:14 +03:00
Leonty
5b904c1401 Corrected misspelling in the 'labels' docker parameter documentation. 2015-11-04 12:43:03 +03:00
Toshio Kuratomi
e318be30ff Fix issues version_added and chaged => changed typo 2015-11-02 10:49:24 -08:00
Michael Schuett
80c2e28a48 Fix message
Previous fix did not actual work. This fix does however.
2015-11-02 10:49:24 -08:00
Michael Schuett
b0357bf9e8 Handle connection error
Try and help when mac hits a connection error.
2015-11-02 10:49:24 -08:00
Michael Schuett
1dcb31cad6 remove .geturl()
Can't call geturl on a string.
2015-11-02 10:49:24 -08:00
Michael Schuett
c126498899 Remove faulty logic
Update logic after splitting the error into two separate messages.
2015-11-02 10:49:24 -08:00
Michael Schuett
1e8d20b0da Documentation Fix
Updated documentation to match current module state.
2015-11-02 10:49:24 -08:00
Michael Schuett
0a5b7087bd Improve Message
Give user a course of action in the case where the suggestions do not
work. This will hopefully allow us to work through any further issues
much faster.
2015-11-02 10:49:24 -08:00
Michael Schuett
addbc329be Improve Error Reporting
This will hopefully help mac users be able to quickly resolve any issues
they may find when trying to use this module.
2015-11-02 10:49:24 -08:00
Michael Schuett
bf5929d32a docker_image TLS
Check commit enables using tls when using the docker_image module. It
also removes the default for docker_url which doesn't allow us to check
for DOCKER_HOST which is a more sane default. This allows you to use
docker_image on OSX but more documentation is needed.
2015-11-02 10:49:24 -08:00
Manuel Tiago Pereira
3079c5e001 Add support for legacy registries to pull_image().
Since we now have several exceptions to the assumption that the
result of the pull would be on the last status line returned by
docker-py's pull(), I've changed the function so that it looks
through the status lines and returns what if finds on it.
Despite the repeated `break`s, the code seems simpler and a little
more coherent like this. From what I've checked using
`https://github.com/jlafon/ansible-profile`, the execution time is
mostly the same.
2015-10-28 11:35:14 +00:00
Brian Coca
4c14e6267f Merge pull request #2258 from SamYaple/fix_docker_bug_2257
Don't assume ExposedPorts exists (bug #2257)
2015-10-14 11:31:06 -04:00
Adam Williamson
64b8596250 fix #2043: strip empty dict from end of 'pull' stream
When pulling an image using Docker 1.8, it seems the output
JSON stream has an empty dict at the very end. This causes
ansible to fail when pulling an image, as it's expecting a
status message in that dict which it uses to determine whether
it had to download the image or not. As a bit of an ugly hack
for that which remains backward compatible, try the last item
in the stream, and if it's an empty dict, take the last-but-one
item instead.

The strip() is needed as the exact value appears to be '{}/r/n';
we could just match that, but it seems like the kind of thing
where maybe it'd happen to just be '{}/n' or '{}' or something
in some cases, so let's just use strip() in case.
2015-10-13 22:33:46 -07:00
Sam Yaple
f15d285514 Catch the second occurance of ExposedPorts as well 2015-10-13 10:34:08 +00:00
Sam Yaple
9db5ac8e45 Don't assume ExposedPorts exists (bug #2257)
A recent change [1] in docker between v1.8.2 and v1.8.3 changed what
is returned in the json when inspecting an image. Five variables which
could have been expected before will now be omited when empty. Only
one of those variables is being addressed in the docker, ExposedPorts.

Unfortunately there was also no API version change on this so this
can't be easily corrected with pinning the API to the older version.

This does a get() which will return None if the variable is not in the
dict formed from the json that was returned. Everything else works the
same way.

[1] 9098628b29
2015-10-13 10:24:36 +00:00
Brian Coca
da1a317f7d Merge pull request #2139 from justnom/devel
Adding additional Docker log drivers.
2015-10-12 18:45:55 -04:00
Aaron Boushley
81e9d1bde5 Fix issue with comparing versions improperly.
This allows old versions of docker api to function.
2015-10-09 16:26:46 -07:00
Andrew Pashkin
cee7e928fc Add 'entrypoint' parameter to Docker module 2015-10-06 12:47:47 +03:00
Colin Hutchinson
f7aa6c4d27 make a text link into a actual hyperlink
the text link doesn't fit on some screen resolutions. Making it into sphinx hyperlink will solve that
2015-10-03 21:50:15 -04:00
Andrew Pashkin
e96549c95d Harden matching running containers by "command" in the Docker module
Before this patch:

  - Command was matched if 'Command' field of docker-py
    representation of Docker container ends with 'command' passed
    to Ansible docker module by user.
  - That can give false positives and false negatives.
  - For example:
      a) If 'command' was set up with more than one spaces,
         like 'command=sleep  123', it would be never matched again
         with a container(s) launched by this task.
         Because after launching, command would be normalized and
         appear, in docker-py API call, just as 'sleep 123' - with one
         space. This is false negative case.
      b) If 'entrypoint + command = command', for example
         'sleep + 123 = sleep 123', module would give false positive
         match.

This patch fixes it, by making matching more explicit - against
'Config'->Cmd' field of 'docker inspect' output, provided by docker-py
API and with proper normalization of user input by splitting it to
tokens with 'shlex.split()'.
2015-10-02 12:30:03 +03:00
Leonty
2080c8ab6e Support 'labels' parameter for docker. 2015-09-25 23:58:20 +03:00
justnom
518ac36878 Adding additional Docker log drivers.
Adding additional `log_driver` choices:
* journald
* gelf
* fluentd

Compatible with Docker version >= 1.8.0
2015-09-23 11:54:51 -04:00
Philippe Jandot
8052d49b07 fix regression introduced by f38186ce8b, and propose a fix for docker facts 2015-09-16 16:49:09 +02:00
David Dyball
a0a374b8ca Updated PR based on comments 2015-09-08 16:19:26 +01:00
Toshio Kuratomi
6e5a832dc2 Fix read-only usage to depend on the docker-py and docker server version 2015-09-04 15:59:19 -07:00
Toshio Kuratomi
1f358f349b We had two separate methods trying to do the same thing but neither one was complete. This merges them so that all of the options get parsed and applied. 2015-09-03 15:39:18 -07:00
Yann Hamon
8f03f1e4e1 Docker module: restarted should update the container when necessary 2015-08-26 00:01:35 +02:00
Omri Iluz
daf7a0551b No need for .keys on volumes list
Since c3f92cca21 changed "volumes" to be a list instead of a dictionary, we don't need (and cannot) .keys when appending to set.
Reported as bug #1957
2015-08-23 02:29:39 -07:00
Ilya Epifanov
d951172920 fixed memory_limit for docker api version >= 1.19 2015-08-16 18:34:56 +03:00
sebi
599d60efc0 mem_limit client version check 2015-08-06 16:46:01 +03:00
Toshio Kuratomi
1001eae3c8 Set a default value for DEFAULT_DOCKER_API_VERSION so we can create the AnsibleModule without docker-py 2015-08-03 08:44:48 -07:00
Brian Coca
c6da9d0758 added missing version_Added to extra_hosts
fixes #1843
2015-07-30 13:05:00 -04:00
Toshio Kuratomi
2785364ebe Merge pull request #1736 from larsks/bug/docker-version-parse
docker: fix parsing of docker __version__ string
2015-07-29 12:36:37 -07:00
Brian Coca
49400d90ac Merge pull request #1830 from ecliptik/devel
Fix incorrect var name for api_version
2015-07-28 18:25:20 -04:00
Micheal Waltz
b43f236b05 Fix incorrect var name for api_version 2015-07-28 15:11:33 -07:00
Brian Coca
dbdbcb33cc defined DEFAULT_DOCKER_API_VERSION to avoid it erroring out before we send the message that docker.py is missing 2015-07-27 22:33:15 -04:00
Brian Coca
44d23ababd Merge pull request #1767 from ecliptik/devel
Use proper HostConfig element which contains the proper Memory value …
2015-07-27 18:23:33 -04:00
Brian Coca
d91834bdf5 Merge pull request #1763 from larsks/bug/missing-mem-limit
restore mem_limit
2015-07-27 18:22:37 -04:00
Micheal Waltz
613fe54908 Use a if/else instead to avoid loading possibly invalid values for Memory 2015-07-23 12:17:26 -07:00
Micheal Waltz
77d1c896fe Set the API version when checking differences in containers and use
this to determine the location of the Memory value depending on the version used.

In v1.18 and earlier it was ['Config']['Memory'], but in v1.19 it
changed to ['HostConfig']['Memory'].
2015-07-23 11:34:33 -07:00
Johan Haals
1ea03e7182 ensures API compatibility for read_only containers 2015-07-23 16:45:01 +02:00