Commit graph

368 commits

Author SHA1 Message Date
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
Johan Haals
851e55b55f changed version_added for read_only param
this feature will be released in 2.0
2015-07-22 08:28:16 +02:00
Johan Haals
8ec6538ad4 Merge remote-tracking branch 'upstream/devel' into docker-read-only-container 2015-07-22 08:27:35 +02:00
Christian Hammerl
b96d304b93 docker: add support to add/drop capabilities 2015-07-21 19:34:24 -04:00
Micheal Waltz
b0b1566b89 Use proper HostConfig element which contians the proper Memory value - fixes #1766 2015-07-21 12:58:58 -07:00
Lars Kellogg-Stedman
6aedc1020e restore mem_limit
mem_limit got lost in the #1744; this restores it.  Thanks to @dgromov
for the report.
2015-07-21 11:52:48 -04:00
Johan Haals
38f01b52e8 Added support for --read-only Docker containers
Adds support for mounting the container's root filesystem as read only.
2015-07-21 14:24:07 +02:00
Brian Coca
88167a5dac minor doc fixes to docker_user 2015-07-20 21:18:49 -04:00
Brian Coca
5240124525 Merge pull request #361 from simono/docker-add-user
Add option docker_user for docker module.
2015-07-20 21:17:42 -04:00
Brian Coca
030d6d645c added version_Added for new signal option in docker module 2015-07-20 20:53:59 -04:00
Brian Coca
ac28f16126 Merge pull request #1014 from nemunaire/docker-kill-signal
[Docker] Add signal parameter when killing container
2015-07-20 20:52:49 -04:00
Brian Coca
2441928484 corrected v ersion added 2015-07-20 20:09:36 -04:00
Daniel Kerwin
d4d78a1998 Too late for 1.8 2015-07-20 21:50:25 +02:00
Daniel Kerwin
a702dbd29a Switch to _cap_ver_req and add cpu_set to create_containers 2015-07-20 21:50:24 +02:00
Daniel Kerwin
a8bc50a11f Renamed to cpu_set 2015-07-20 21:48:39 +02:00
Daniel Kerwin
fca75a9705 Add support for cpusets. Requires docker-py >= 0.6.0 2015-07-20 21:48:39 +02:00
Brian Coca
cf25888e2d Merge pull request #978 from bobrik/faster-docker-updates
[docker] pulling missing docker image before doing anything
2015-07-20 15:33:32 -04:00
Maksim Losev
efb6088c27 Use HostConfig object when creating container with Docker Remote API > 1.15
This is mlosev's patch (from #1208), rebased against devel as of
2790af2.  It resolves #1707, which was caused by an API incompatibility
between the docker module and server API version 1.19.
2015-07-16 16:38:20 -04:00
Lars Kellogg-Stedman
444a2ad808 Do not erroneously mask exceptions
There was a catch-all `except` statement in `create_containers`:

        try:
            containers = do_create(count, params)
        except:
            self.pull_image()
            containers = do_create(count, params)

This would mask a variety of errors that should be exposed, including
API compatability errors (as in #1707) and common Python exceptions (KeyError, ValueError, etc) that could result from errors in the code.

This change makes the `except` statement more specific, and only attempts to pull the image and start a container if the original create attempt failed due to a 404 error from the docker API.
2015-07-16 15:25:39 -04:00
Lars Kellogg-Stedman
6672205f49 docker: permit empty or false pid
The `docker` Python module only accepts `None` or `'host'` as arguments.
This makes it difficult to conditionally set the `pid` attribute using
standard Ansible syntax.

This change converts any value that evaluates as boolean `False` to
`None`, which includes empty strings:

    pid:

As well as an explicit `false`:

    pid: false

This permits the following to work as intended:

    - hosts: localhost
      tasks:
      - name: starting container
        docker:
          docker_api_version: 1.18
          image: larsks/mini-httpd
          name: web
          pid: "{{ container_pid|default('') }}"

If `container_pid` is set to `host` somewhere, this will create a
Docker container with `pid=host`; otherwise, this will create a
container with normal isolated pid namespace.
2015-07-15 21:15:49 -04:00
Lars Kellogg-Stedman
b7e92b3e52 docker: fix parsing of docker __version__ string
If `docker.__version__` contains non-digit characters, such as:

    >>> import docker
    >>> docker.__version__
    '1.4.0-dev'

Then `get_docker_py_versioninfo` will fail with:

    ValueError: invalid literal for int() with base 10: '0-de'

This patch corrects the parsing of the version string so that
`get_docker_py_versioninfo` in this example would return:

    (1, 4, 0, '-dev')
2015-07-15 21:05:13 -04:00
Brian Coca
51b6b725cc Merge pull request #1078 from andrewgdavis/devel
ansible_facts reflects 1.8 output
2015-07-04 15:19:22 -04:00
Brian Coca
afeb3c8d07 Merge pull request #1031 from smashwilson/docker-wait
[docker] Wait for process exit on detached=no.
2015-06-30 00:24:02 -04:00
Brian Coca
5f5f01833f Merge pull request #1508 from tarrychk/issue_1442
Fix computation of port bindings
2015-06-29 23:54:27 -04:00
Brian Coca
038cc05f4e Merge pull request #1609 from smashwilson/default-net-bridge
[docker] Prevent unnecessary reloads due to the net parameter
2015-06-29 23:38:32 -04:00
Brian Coca
ec15b67712 Merge pull request #547 from steveeJ/devel
Fix bind-volumes on docker >= 1.4.0
2015-06-29 20:13:23 -04:00
Simon Olofsson
dc3161dfdd Add option docker_user for docker module.
docker_user can be used to specify the user or UID to use within the
container.
2015-06-26 00:18:56 +02:00
Ash Wilson
29e4a127e1 Default net to 'bridge' in container diff
This prevents an unnecessary reload when the `net` parameter is unspecified
(i.e. almost always).
2015-06-25 17:11:38 -05:00
Toshio Kuratomi
964d731722 Add version_added documentation to log_driver parameter 2015-06-25 08:29:42 -07:00
Toshio Kuratomi
718f32a042 Merge pull request #1405 from ryanwalls/docker-module-log-driver
Add support for --log-driver option that docker released with Docker 1.6
2015-06-25 08:25:46 -07:00
Brian Coca
19f6099777 minor doc fixes 2015-06-17 12:39:14 -04:00
Robin Roth
64fe01178f add comment: ports need to be exposed.
port mapping with this module only works for ports that are exposed either in the Dockerfile or via an additional arguments. This is different from the command line docker client, that is willing to also map ports that are not exposed.

This comments makes the behaviour more obvious.
2015-06-17 18:01:35 +02:00
Greg DeKoenigsberg
28a869a030 Updating cloud modules with proper github author information 2015-06-15 14:41:22 -04:00
Ed Hein
558f2ace1f Fix computation of port bindings. Port bindings configuration can be a list
if several host ports are bound to the same guest port.
2015-06-12 12:36:52 +02:00
Ryan Walls
a2630d40fb Fix typo in Docker module. 2015-06-02 00:09:01 -06:00
Ryan Walls
88eddb13c0 Update docker module to avoid false positives when containers are first created. Also have the module check
for api compatibility before trying to set a "--log-driver" option.
2015-06-01 09:48:24 -06:00
Ryan Walls
c95717afe5 Set default "log_driver" option to None in docker module. 2015-05-28 11:36:20 -06:00
Ryan Walls
5f1d88a829 Update docker module to look at log_driver variable when deciding if container configuration has changed. 2015-05-27 12:33:11 -06:00
Andrew Pashkin
27c174128b Add 'docker_api_version' to docker_image
By default docker-py uses latest version of Docker API. This is not
always desireable, and this patch adds option to specify version, that
should be used.
2015-05-23 23:17:30 +03:00
Ryan Walls
3f679933a6 Add support for --log-driver option that docker released with Docker 1.6 2015-05-22 16:36:38 -06:00
Pierre Baillet
06e3ac7bf4 Support optional dockerfile name 2015-05-18 16:51:12 +02:00
Toshio Kuratomi
60a66a544d Several cleanups to many modules:
* Fix docs to specify when python2.6+ is required (due to a library
  dep).  This helps us know when it is okay to use python2.6+ syntax in
  the file.
* remove BabyJson returns.  See #1211  This commit fixes all but the
  openstack modules.
* Use if __name__ == '__main__' to only run the main part of the module
  if the module is run as a program.  This allows for the potential to
  unittest the code later.
2015-05-11 12:15:53 -07:00
Ian Babrou
501a665060 Pulling missing docker image before doing anything 2015-05-07 10:25:41 +03:00
Ratnadeep Debnath
be66acb436 Fixed typo in cloud docker module. 2015-05-06 15:23:40 +05:30
Toshio Kuratomi
f444e49dfa Fix error when container has no names.
Rename loop variable from "i" to more informative "container"

Fixes #1188
2015-05-04 10:16:01 -07:00
Pascal Borreli
f29a6ec54d Fixed typos 2015-05-04 12:54:03 +01:00
Toshio Kuratomi
1fdf75d49d Second try at fixing #1227 -- set e default value earlier 2015-04-30 19:09:22 -07:00
Toshio Kuratomi
e51ea29d8f Return empty list if an image has no repo_tags 2015-04-30 17:44:05 -07:00
Toshio Kuratomi
e356692c74 Get docker's default api version definition from both 1.2 location and pre-1.2 location
Fixes #1227
2015-04-30 07:47:44 -07:00
Brian Coca
09aa79c58f Merge pull request #1102 from heiparta/extra_hosts
Add support for extra_hosts to docker module
2015-04-30 09:08:18 -04:00
Brian Coca
a811b9f12e removed deprecated docs, not true anymore 2015-04-28 16:48:28 -04:00
Toshio Kuratomi
e95c0b2df3 Only split on the first colon.
Fixes #1214
2015-04-28 08:33:50 -07:00
Heikki Partanen
91ca2d6386 Add support for extra_hosts to docker module
extra_hosts parameter (maps to --add-host in 'docker run' syntax) is used
to add host-to-ip mappings to the container.
2015-04-07 10:30:14 +03:00
Andrew Davis
f38186ce8b ansible_facts reflects 1.8 output 2015-04-03 12:41:10 -07:00
Ash Wilson
45b067f097 Record facts for each changed container. 2015-03-31 16:14:16 -04:00
Ash Wilson
b28459e6f5 Wait for process exit on detached=no. 2015-03-30 15:52:17 -04:00
Ryan Trauntvein
5320cc93e6 Specify that "state: reloaded" was added in Ansible 1.9 2015-03-27 16:36:10 -07:00
nemunaire
7f3df5634a Add optional signal parameter when killing docker container 2015-03-27 18:14:14 +01:00
Ash Wilson
9ce2fc718a Only fetch details when necessary. 2015-03-24 11:18:15 -04:00
Ash Wilson
47f4c3f2e5 Compare container images to Config.Image. 2015-03-24 11:07:12 -04:00
moncho
3421712e05 Update docker.py
Fix typo that prevents use_tls 'encrypt' option from working properly.
2015-03-19 19:30:36 +01:00
Toshio Kuratomi
76198a8223 Merge pull request #961 from nemunaire/fix-docker-version-print
[docker] Fix formating error when remote host doesn't have required version
2015-03-18 19:51:45 -07:00
Toshio Kuratomi
e338fef730 Add another valid status from downloading images 2015-03-18 18:27:01 -07:00
nemunaire
fce8c21176 Convert tuple items to string before format 2015-03-18 14:37:26 +01:00
Toshio Kuratomi
8658b82de7 Some code cleanup (removed unused variables and imports) 2015-03-16 11:58:03 -07:00
Toshio Kuratomi
34c4e0d495 Also use DOCKER_TLS_VERIFY env var to turn on tls verification 2015-03-16 11:43:52 -07:00
Toshio Kuratomi
ceda82603a Merge pull request #947 from ansible/docker-tls-none
When no use_tls is not specified and no tls parameters are given we need to not attempt tls.
2015-03-16 11:29:14 -07:00
Toshio Kuratomi
b0d194ea94 Fix a potential bug in docker pull 2015-03-15 11:22:07 -07:00
Toshio Kuratomi
5b4d7a2182 When no use_tls is not specified and no tls parameters are given we need to not attempt tls. 2015-03-14 22:59:17 -07:00
Toshio Kuratomi
45637176dc Merge branch 'volumes_from' of https://github.com/lorin/ansible-modules-core into lorin-volumes_from
Remove volumes_from altogether

Conflicts:
	cloud/docker/docker.py
2015-03-13 13:42:40 -07:00
Toshio Kuratomi
e4a5b46cfb Merge pull request #936 from ansible/docker-pid-mode
Make pid_mode parameter do minimum docker-py/docker server version checks
2015-03-13 11:50:46 -07:00
Toshio Kuratomi
81fc92bd66 Make state=running work for backwards compatibility with 1.8 2015-03-13 10:23:10 -07:00
Toshio Kuratomi
bddd02bfcb Fix lookup of parameter name to be pid instead of pid_mode 2015-03-13 07:31:55 -07:00
Toshio Kuratomi
9d0d54b9a6 Merge pull request #926 from ansible/docker-tls-alt-854
Alternative implementation of tls for docker
2015-03-12 23:41:28 -07:00
Toshio Kuratomi
cf9374f3ea Make pid_mode parameter do minimum docker-py/docker server version checks 2015-03-12 22:53:31 -07:00
Toshio Kuratomi
3a6cc86578 Fix for problems found by @dguerri
* TLSConfig['verify'] has to be set to False if we're only encrypting the
  connection, not verifying the host.
* tls_hostname was not set if tls_ca_cert was not present

https://github.com/ansible/ansible-modules-core/pull/926#issuecomment-78573877
2015-03-12 12:53:48 -07:00
Toshio Kuratomi
1add8ed9e5 Implement comments from @smashwilson:
* if tls_ca_cert is set then use tls to verify the server
* take tls_hostname from the environment variable DOCKER_TLS_HOSTNAME
  if it's not specified in the playbook

https://github.com/ansible/ansible-modules-core/pull/926#issuecomment-78542210
2015-03-12 11:07:22 -07:00
Stefan Junker
c3f92cca21 docker: Use a list instead of a dict for volumes according to the docker-py docs. Do not add host-binds to volumes list. 2015-03-12 12:55:14 +01:00
Stefan Junker
d8df5da49f merge and resolve conflict in docker.py 2015-03-12 12:47:54 +01:00
Ian Babrou
763f472f5b fixed: global name 'e' is not defined 2015-03-12 11:04:50 +03:00
Toshio Kuratomi
3e0cbc82f1 Alternative implementation of tls for docker
Alternative to #854
2015-03-11 20:37:27 -07:00
Toshio Kuratomi
ca32205c7b Documentation style changes 2015-03-11 08:26:16 -07:00
Ian Babrou
9ecfde7551 not triggering reload for links and not string env variables 2015-03-09 22:49:00 +03:00
Ash Wilson
0969fd75c8 Use {0}, {1} style format indices for 2.6 compat 2015-03-09 12:54:22 -04:00
Ash Wilson
19664a96db Expect module env vars to override Dockerfile ones. 2015-03-09 12:17:39 -04:00
Ash Wilson
608ddbea29 Include bind mounts in VOLUMES check. 2015-03-09 11:20:14 -04:00
Ash Wilson
2c58eb3845 Exposed ports, env vars, volumes from the image.
This will account for settings that are provided by the hierarchy of
Dockerfiles used to construct your image, rather than only accounting
for settings provided to the module directly.
2015-03-09 10:32:10 -04:00
Ash Wilson
79db475316 Full image inspection and just repo tags
Hat tip to @bobrik.
2015-03-09 10:05:56 -04:00
Brian Coca
1c0623ab8d Merge pull request #890 from SamYaple/docker-pid-support
Add pid mode support to docker module
2015-03-07 20:27:42 -05:00
Ash Wilson
d046425049 Connect to Docker with optional TLS. 2015-03-06 18:04:36 -05:00
Ash Wilson
80aca4b936 Rework docker module states.
Organize each state into a distinct function for readability and composability.
Rework `present` to create but not start containers. Add a `restarted` state
to unconditionally restart a container and a `reloaded` state to restart a
container if and only if its configuration is incorrect. Store our most recent
knowledge about container states in a ContainerSet object. Improve the value
registered by this task to include not only the inspect data from any changed
containers, but also action counters in their native form, a summary message
for all actions taken, and a `reload_reasons` key to store a human-readable
diagnostic to determine why each container was reloaded.
2015-03-06 17:58:11 -05:00
Ash Wilson
7490223940 Pull newer image versions when requested. 2015-03-06 17:56:45 -05:00
Ash Wilson
fedbea682e Another documentation commit. 2015-03-06 17:56:37 -05:00
Sam Yaple
e1e74bdf33 Updated version and fixed default 2015-03-06 03:13:55 -06:00
Sam Yaple
74e922449b Add pid mode support to docker module
This allows setting the pid namespace for a container. Currently only
the 'host' pid namespace is supported.

This requires Docker 1.4.1 and docker-py 1.0.0
2015-03-03 23:32:15 -06:00
Brian Coca
d2158708ff undeprecated docker_image until replacement actually arives 2015-02-23 12:43:10 -05:00
Brian Coca
b787792908 Merge pull request #679 from marqc/fix_dns_create_container_issue
Fixes docker.errors.DockerException: 'dns' parameter has no effect on create_container()...
2015-02-18 15:44:16 -05:00
Brian Coca
7e71121da5 Merge pull request #730 from SergeyZh/devel
Fixed broken volumes_from for client API >= 1.10
2015-02-17 11:49:16 -05:00
Tomer Paz
374dd06c8e resolve issue 764
https://github.com/ansible/ansible-modules-core/issues/764
added 'domainname' attribute in addition to existing 'hostname'.
That's the most elegant way to delegate domain name to docker-py...
2015-02-11 09:25:24 +02:00
Sergey Zhukov
7baaf97a8b Fixed broken volumes_from for client API >= 1.10 2015-01-30 19:58:12 +03:00
Toshio Kuratomi
670098af2d Spelling and grammar fix 2015-01-22 23:08:24 -08:00
calmera
d2c6791082 Update docker.py
Added some more documentation for the memory_limit and volume options.
2015-01-22 23:08:24 -08:00
Brian Coca
d66c3fcf51 moved defaulting to module constant to after when it is defined 2015-01-21 19:50:34 -05:00
Marek Chodor
13685fb91b Fixes docker.errors.DockerException: 'dns' parameter has no effect on create_container(). It has been moved to start() 2015-01-21 13:37:24 +01:00
Lorin Hochstein
48ce8bb564 Don't pass volumes_from to create_container
Don't pass the volumes_from argument to the Docker create_container method.

If the volumes_from argument is passed to the create_container method, Docker
raises the following exception:

    docker.errors.DockerException: 'volumes_from' parameter has no effect on
    create_container(). It has been moved to start()
2014-12-27 22:05:55 -05:00
Lorin Hochstein
3665c92856 docker: fix volume[s]_from typo
Code makes reference to volume_from instead of volumes_from. If volumes_from is
passed as an argument, generates a KeyError.
2014-12-25 23:31:06 -05:00
Jan Weitz
ebf9b8c6e2 Fixes invalid dictionary access. 2014-12-24 13:15:40 +01:00
Jan Weitz
82601fdc54 Fixes version check for docker-py 2014-12-24 03:04:04 +01:00
Stefan Junker
8f3b5c640b Fix bind-volumes on docker >= 1.4.0
If bind-volumes are submitted to docker >= 1.4.0 with the volumes set in addition to the binds, docker will create a regular volume and not bind-mount the specified path.
2014-12-21 17:11:47 +01:00
Toshio Kuratomi
c4f9366e91 Newstyle class 2014-12-18 13:43:55 -08:00
Toshio Kuratomi
f65d9ab793 Make insecure_registry feature version check against the client API 2014-12-18 12:45:13 -08:00
Maksim Losev
4172d445d3 Add insecure_registry to docker-py pull method
Starting from docker-py>=0.5.0 it is impossible to work with private registries based on HTTP.
So we need additional parameter to allow pull from insecure registry
Related to ansible/ansible#9111
2014-12-18 12:36:17 -08:00
Toshio Kuratomi
fa0fa9d221 Make docker ver checks issue failures rather than silently ignoring
Also:
* make client version checks robust for two digit version pieces and
  alpha versions
* consolidate version checking code
2014-12-18 11:23:44 -08:00
Ingo Gottwald
80d45c78a3 Add support for new docker restart policies 2014-12-18 10:27:53 +01:00
PikachuEXE
6ce7e63c5f ~ Add missing documentation for option email 2014-12-10 10:23:59 +08:00
Toshio Kuratomi
c6522620c5 Clean up the docker module just a little so that we can unittest the get_split_image_tag function 2014-11-14 08:46:32 -08:00
Michael DeHaan
2970b339eb Deprecate docker_image, use the docker module to deploy docker images, or shell out to docker to call
docker build if you want from a playbook.
2014-11-05 16:13:55 -05:00
Brian Coca
19ed60196c added __init__.py to new cloud subcategories so builds work again 2014-11-05 11:07:19 -05:00
Brian Coca
0c4adcb2c6 made subcategories for cloud modules for better organization 2014-11-04 11:18:09 -05:00
Michael DeHaan
c8e1a2077e file extensions! 2014-09-26 10:37:56 -04:00
Michael DeHaan
417309a626 Restructuring. 2014-09-26 10:13:26 -04:00
Michael DeHaan
73123b69fa Move modules into subdirectory. 2014-09-26 09:23:50 -04:00
James Cammarata
2fac1fd865 Ensure port in docker expose list is a string
Fixes #8731
2014-09-16 21:38:49 -05:00
Toshio Kuratomi
3f4bdce67e My fix was wrong again. Base this try off of @mantiz's fix in #9016 2014-09-16 11:46:09 -07:00
Toshio Kuratomi
e51bcf90a0 Fix the case where a docker image is not part of a namespace.
Fixes #9016
2014-09-16 11:39:15 -07:00
Toshio Kuratomi
4094edf92f Fix splitting the tag from the image name
Fixes #8983
2014-09-15 09:01:07 -07:00
Toshio Kuratomi
732b6f0a23 Omit tag from parsed image name
Fixes #8925
2014-09-11 11:27:00 -07:00
James Cammarata
fa21b336f8 Stop/remove existing docker container if the specified tag is different
Fixes #8278
2014-08-26 13:36:42 -05:00
Eric D. White
6f9cb7ab61 Issue 8735 - module docker - expose values should be striped to ensure port forwarding works. 2014-08-24 21:07:26 +01:00
James Cammarata
3373e82d83 Fixing bug with image/tag pulling in docker module
Fixes #8670
2014-08-22 14:08:40 -05:00
James Cammarata
d6375cd3c1 Fix bad commit from #8095 and fix bad splitting on :'s in the image
Fixes #8095
Fixes #8658
2014-08-18 10:37:07 -05:00
James Cammarata
f729ab8e67 Make env param a dict type instead of list
Also modifies param type checking code to remove whitespace from
around params before splitting them into k=v pairs.

Fixes #8199
2014-08-15 11:04:27 -05:00
James Cammarata
f367adc021 Update version_added field for docker_api_version param 2014-08-08 15:03:34 -05:00
James Cammarata
30ead6a17c Merge branch 'add-docker-api-version-parameter' of https://github.com/jmoretti/ansible into jmoretti-add-docker-api-version-parameter 2014-08-08 14:52:25 -05:00
James Cammarata
74847bfbfa Merge branch 'devel' of https://github.com/kolloch/ansible into kolloch-devel 2014-08-08 13:44:48 -05:00
James Cammarata
aa0a904b2b Updating version_added for docker net param and adding an example 2014-08-08 13:16:08 -05:00
James Cammarata
a9b6d5a516 Merge branch 'docker-add-net-parameter' of https://github.com/discordianfish/ansible into discordianfish-docker-add-net-parameter 2014-08-08 13:09:19 -05:00
James Cammarata
18618b47b0 Merge branch 'fixes/docker-volumes' of https://github.com/devpopol/ansible into devpopol-fixes/docker-volumes 2014-08-08 12:24:21 -05:00
Kurt Yoder
2f74c0bade Fix Docker image name parsing
Fixes #8357
2014-07-30 14:33:01 -04:00
Joe Moretti
ca7498aeb7 Add optional docker_api_version parameter to Docker Module 2014-07-08 10:06:31 -05:00
Peter Kolloch
0f67a94820 Hack to fix #7738: Allow tag in image parameter of docker module
It also defaults to the "latest" tag for pulling the image
instead of pulling all versions.
2014-06-12 11:48:57 +02:00
Paul Myjavec
267d107fe6 Docker links and required alias
If no alias is passed one will now be created for you with the same name
as the target link container, as per the documentation
2014-06-10 22:53:55 +10:00
Johannes 'fish' Ziemke
b16cad7cd9 Add networking mode parameter (net) to docker
Since 0.11 Docker supports different networking modes (see docker run
--net). This commit add support for that to the ansible docker module.

This depends on
2d58351164
2014-05-29 18:59:03 +02:00
Stephen Paul Suarez
834168f17b fix spacing 2014-05-28 06:14:54 +08:00
Stephen Paul Suarez
bb0a56ad1d fix typo 2014-05-27 19:19:49 +08:00
Stephen Paul Suarez
6b84f7093f support rw bind mode in docker module 2014-05-27 16:18:23 +08:00
Matt Bray
901feb91fc docker: fix targetting images by name 2014-05-15 15:04:30 +01:00
James Cammarata
8622a3f396 Merge pull request #7404 from jimi-c/issue_7363_docker_names
Make sure the docker data has a "Names" field before using it
2014-05-14 14:44:16 -05:00
Konstantin Shabanov
f9e6db7886 Fix env splitting in docker module
ENV variable value could contain '=' (for example mysql://host/db?pool=10)
2014-05-14 18:11:43 +04:00
James Cammarata
b59e4e8222 Make sure the docker data has a "Names" field before using it
Fixes #7363
2014-05-12 12:27:07 -05:00
Johannes 'fish' Ziemke
ac14a016c4 Fix: Remove check for Ghost state
This fixed the just committed change handling non existent Ghost state.
2014-05-09 20:13:25 +02:00
James Cammarata
b5ba1c4527 Merge pull request #7338 from discordianfish/remove-ghost-state
Remove check for Ghost state
2014-05-09 13:06:16 -05:00
Johannes 'fish' Ziemke
dccf70ec0b Remove check for Ghost state
This doesn't exist anymore and causes ansible to throw a KeyError
2014-05-09 18:07:02 +02:00
James Cammarata
4e7542315c Merge pull request #7110 from orgoj/docker-patch-version_comment
module docker - add docker version comment
2014-05-09 00:57:41 -05:00
James Cammarata
98d949e143 Merge pull request #7047 from joshuaconner/docker_bugfix_exclude_entrypoint_from_command_check
docker: exclude 'entrypoint' from comparing 'command' param with containers
2014-04-23 16:14:48 -05:00
James Cammarata
f068a4f26a Merge pull request #6991 from joshuaconner/bugfix_dont_send_wrong_params_to_dockerclient_start
Docker: don't send wrong parameters to client.start()
2014-04-23 15:48:04 -05:00
Michael Heca
ae8b942e4a module docker - add docker version comment
Default docker version 0.9.1 from Ubuntu 14.04 LTS don't report APIVersion.
2014-04-22 12:21:51 +02:00
CaptTofu
45d2cab30c Small bug - 'acts' should be 'facts' 2014-04-21 08:06:00 -07:00
Joshua Conner
0ce43d6e3c docker: exclude 'entrypoint' from comparing 'command' param with containers
The JSON the Docker API returns includes the container's ENTRYPOINT value (if it has one) with the 'Command' value. So instead of checking if `container['Command'] == module.params['command']`, we just check that `container['Command'].endswith(module.params['command'])` so the entrypoint won't affect a container being properly classified as matching the module params or not.

Also I refactored a super-long `if` statement into some temporary variables - I did it to help me figure out what was going wrong, and then it makes the code more readable so I kept it.
2014-04-17 16:10:53 -07:00
Joshua Conner
bac2e879b2 docker: send 1.10 params if docker-py is new enough version 2014-04-17 16:05:50 -07:00
Matt Bray
afd0e78f16 docker.client.APIError has moved to docker.errors.APIError
see 18d4db09ec
2014-04-16 23:42:56 +01:00
Joshua Conner
6bf75de95c Docker: don't send wrong parameters to client.start()
As part of being updated for the 1.10 API, a couple of parameters were passed to the docker.client.start() command that it doesn't accept. This caused the module to error out if it tried to start any Docker containers. This removes those parameters so the module works again.
2014-04-14 15:05:42 -07:00
Matt Bray
3d20c585a6 docker: from API 1.10 dns and volumes_from should be passed to start() 2014-04-11 17:08:55 +01:00
Michael DeHaan
289b359139 Merge pull request #6486 from discordianfish/docker-module-add-running
Rename present to running, add new present state
2014-03-28 11:50:21 -04:00
Joshua Conner
2d9130fc23 docker: use type instead of manually casting strings to lists 2014-03-28 11:19:48 -04:00
Joshua Conner
15eaa859b0 docker bugfixes: trim whitespace around list param elements, handle list params being coerced to int or long type 2014-03-28 11:19:13 -04:00
Matt Bray
a351f40fff docker: add tty and stdin_open options
Useful for development environments.  Setting these options to true
allows you to `docker attach` to a docker container started with
ansible.
2014-03-18 11:57:01 +00:00
Johannes 'fish' Ziemke
459a76c0dd Rename present to running, add new present state
The new present state just makes sure that a container exists, not that
it's running, although it get started one creation.
This is very useful for data volumes. This also changes the old
present, now running (default) state to only create the container if
it's not found, otherwise it just get started.

See also discussion on mailinglist:
https://groups.google.com/forum/#!topic/ansible-devel/jB84gdhPzLQ

This closes #6395
2014-03-14 14:28:46 +01:00
Joshua Conner
ad605390cd docker: add 'version_added' to the appropriate documentation entries 2014-02-25 17:04:01 -08:00
Joshua Conner
758b9603f5 docker: update to docker-py 0.3.0, plus full port binding support, container names, links 2014-02-25 15:24:46 -08:00
Pavel Antonov
a72733ebea Added modules description and examples 2014-02-12 17:06:58 -05:00