summaryrefslogtreecommitdiff
path: root/roles/docker.ubuntu/vars/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/docker.ubuntu/vars/main.yml')
-rw-r--r--roles/docker.ubuntu/vars/main.yml47
1 files changed, 47 insertions, 0 deletions
diff --git a/roles/docker.ubuntu/vars/main.yml b/roles/docker.ubuntu/vars/main.yml
new file mode 100644
index 0000000..5a1f70a
--- /dev/null
+++ b/roles/docker.ubuntu/vars/main.yml
@@ -0,0 +1,47 @@
+---
+# Select python variable file according to the ansible_python_interpreter.
+python_vars_file: >-
+ {{ 'python3.yml' if ansible_python_interpreter is defined
+ and 'python3' in ansible_python_interpreter
+ else 'python2.yml' }}
+
+# To use Docker Ansible modules, managed nodes require some Docker Python packages :
+# * `docker-py` (renamed into `docker` since the 2.0.0 version);
+# * `docker-compose` which is required by the docker_service Ansible module.
+#
+# The `docker` python package introduces some backward incompatible changes is version 2.0.0.
+# Ansible 2.3+ is required to run this new version. Previous Ansible versions have to use docker-py<=1.10.6.
+# The `docker-compose` python package has a dependency over the docker/docker-py package.
+# The `docker-compose` 1.9.0 is the latest version to be compatible with the docker<2.0.0.
+#
+# To sum up:
+# * with Ansible < 2.3:
+# * you have to use docker-py<=1.10.6 due to backward incompatibilities of next versions
+# * you have to use docker-compose<=1.9.0 due to docker-compose>1.9.0 using newer versions of docker-py.
+
+# Compute Ansible version or latest
+_ansible_version_latest: "{{ ansible_version.full | version_compare('2.3', '<') }}"
+
+# Compute Python Docker component version or latest
+_pip_version_docker_latest: >-
+ {{ pip_version_docker=='latest' or (pip_version_docker | version_compare('1.10.6', '>')) }}
+
+# Compute Python Docker-compose component version or latest
+_pip_version_docker_compose_latest: >-
+ {{ pip_version_docker_compose=='latest' or (pip_version_docker_compose | version_compare('1.9.0', '>')) }}
+
+# Compute the `docker` Python package's version to use.
+_pip_version_docker: >-
+ {{ '1.10.6' if (_ansible_version_latest and _pip_version_docker_latest) else pip_version_docker }}
+
+# Compute the `docker` Python package's name according to its version.
+_pip_docker_package_name: "{{ 'docker-py' if not _pip_version_docker_latest else 'docker' }}"
+
+# Determine whether to install the `docker` package or not. The `docker-compose` Python package has a dependency over
+# the `docker` Python package. So when installing the `docker-compose` package we'd rather let it handle the `docker`
+# package version to prevent version mismatches.
+_pip_install_docker: "{{ not pip_install_docker_compose and pip_install_docker }}"
+
+# Compute the `docker-compose` Python package's version to use.
+_pip_version_docker_compose: >-
+ {{ '1.9.0' if (_ansible_version_latest and _pip_version_docker_compose_latest) else pip_version_docker_compose }}