summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-cluster/upgrades/docker/upgrade_check.yml
blob: 7fd4657d5a3dd51b28e303c69cdd26139962aabb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
---

# This snippet determines if docker_upgrade should be set for the host. If it's already
# set via the inventory we will respect it. Otherwise we check if the current version
# is equal to the either the latest, or the requested docker_version, and set
# docker_upgrade accordingly.

- name: Determine available Docker version
  script: ../../../../common/openshift-cluster/upgrades/files/rpm_versions.sh docker
  register: g_docker_version_result

- name: Check if Docker is installed
  command: rpm -q docker
  register: pkg_check
  failed_when: pkg_check.rc > 1
  changed_when: no

- name: Get current version of Docker
  command: "{{ repoquery_cmd }} --installed --qf '%{version}' docker"
  register: curr_docker_version
  changed_when: false

- name: Get latest available version of Docker
  command: >
    {{ repoquery_cmd }} --qf '%{version}' "docker"
  register: avail_docker_version
  failed_when: false
  changed_when: false

- fail:
    msg: This playbook requires access to Docker 1.10 or later
  # Disable the 1.10 requirement if the user set a specific Docker version
  when: avail_docker_version.stdout | version_compare('1.10','<') and docker_version is not defined

# We respect docker_upgrade=False in the inventory, but True is the default and
# if set in inventory, we still flip it to False here and only set to true if
# they're not already running the required version.
- set_fact:
    docker_upgrade: False
  when: docker_upgrade is not defined or docker_upgrade | bool

# Make sure a docker_verison is set if none was requested:
- set_fact:
    docker_version: avail_docker_version.stdout
  when: docker_version is not defined

- name: Flag for Docker upgrade if necessary
  set_fact:
    docker_upgrade: True
  when: docker_version is defined and pkg_check.rc == 0 and curr_docker_version.stdout | version_compare(docker_version,'<')

- name: Flag to delete all images prior to upgrade if crossing Docker 1.10 boundary
  set_fact:
      docker_upgrade_nuke_images: True
  when: docker_upgrade_nuke_images is not defined and docker_upgrade | bool and curr_docker_version.stdout | version_compare('1.10','<') and docker_version | version_compare('1.10','>=')