summaryrefslogtreecommitdiffstats
path: root/roles/docker
diff options
context:
space:
mode:
authorScott Dodson <sdodson@redhat.com>2016-03-14 18:15:17 -0400
committerScott Dodson <sdodson@redhat.com>2016-03-14 18:22:10 -0400
commit15ff077c5b2fc622c749c96ceea707aef13d7470 (patch)
tree7248b0189507a1888bc5e4abda4bfc0fe24e3880 /roles/docker
parentc633ce7b8707f311763fa4b707f1ea159265c7d4 (diff)
downloadopenshift-15ff077c5b2fc622c749c96ceea707aef13d7470.tar.gz
openshift-15ff077c5b2fc622c749c96ceea707aef13d7470.tar.bz2
openshift-15ff077c5b2fc622c749c96ceea707aef13d7470.tar.xz
openshift-15ff077c5b2fc622c749c96ceea707aef13d7470.zip
OSE/Origin < 3.2/1.2 should not get Docker 1.9
RHEL and Centos docker-1.9 RPMs will have a Conflicts for origin and atomic-openshift < 3.2. If we left yum to its own devices we'd get a mess when trying to install once these packages land in the repos. So avoid installing docker-1.9 on Origin/OSE < 1.2/3.2. See: https://bugzilla.redhat.com/show_bug.cgi?id=1304038 Fedora doesn't keep old packages in repos so we just get the latest there. Docker 1.10 should be fine if and when it becomes available.
Diffstat (limited to 'roles/docker')
-rw-r--r--roles/docker/tasks/main.yml26
1 files changed, 25 insertions, 1 deletions
diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml
index 4164a9ec0..506cecfea 100644
--- a/roles/docker/tasks/main.yml
+++ b/roles/docker/tasks/main.yml
@@ -1,7 +1,31 @@
---
# tasks file for docker
+
+# Avoid docker 1.9 when installing origin < 1.2 or OSE < 3.2 on RHEL/Centos and
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1304038
+
+- name: Default to latest docker for 1.2/3.2 or Fedora
+ set_fact:
+ docker_version: ''
+ when: openshift.common.version_gte_3_2_or_1_2 | bool or ansible_distribution == 'Fedora'
+
+- name: Gather latest version of docker
+ shell: >
+ yum list available -e 0 -q "docker" 2>&1 | tail -n +2 | awk '{ print $2 }' | sort -r | tr '\n' ' ' | tail -n 1
+ register: latest_docker
+ when: not openshift.common.version_gte_3_2_or_1_2 | bool and ansible_distribution != 'Fedora'
+
+- name: Check if Docker 1.9 is the latest
+ set_fact:
+ docker19_is_latest: "{{ True if '1.9' in latest_docker.stdout else False }}"
+ when: not openshift.common.version_gte_3_2_or_1_2 | bool and ansible_distribution != 'Fedora'
+
+- set_fact:
+ docker_version: "{{ '-1.8.2' if docker19_is_latest | bool else ''}}"
+ when: not openshift.common.version_gte_3_2_or_1_2 | bool and ansible_distribution != 'Fedora'
+
- name: Install docker
- action: "{{ ansible_pkg_mgr }} name=docker state=present"
+ action: "{{ ansible_pkg_mgr }} name=docker{{ docker_version }} state=present"
when: not openshift.common.is_atomic | bool
- name: enable and start the docker service