Browse Source

Respect image tag/pkg version during upgrade.

Devan Goodwin 8 years ago
parent
commit
258ea62f3b

+ 7 - 5
playbooks/common/openshift-cluster/initialize_openshift_version.yml

@@ -13,14 +13,16 @@
 # and we don't want to install wrong version of docker and have to downgrade
 # later.
 - name: Set openshift_version for all hosts
-  hosts: oo_all_hosts
-  tasks:
+  hosts: oo_all_hosts:!oo_first_master
+  vars:
+    openshift_version: "{{ hostvars[groups.oo_first_master.0].openshift_version }}"
+  roles:
+  - openshift_version
+  pre_tasks:
   - debug: var=hostvars[groups.oo_first_master.0].openshift_version
   - debug: var=openshift.common.version
   - debug: var=openshift_version
-  - set_fact:
-      openshift_version: "{{ openshift.common.version if (openshift.common.version is defined and openshift_version is not defined) else hostvars[groups.oo_first_master.0].openshift_version }}"
-    when: inventory_hostname != groups.oo_first_master.0
+  post_tasks:
   - debug: var=hostvars[groups.oo_first_master.0].openshift_version
   - debug: var=openshift.common.version
   - debug: var=openshift_version

+ 5 - 3
playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml

@@ -66,9 +66,11 @@
 
 - include: ../../../../common/openshift-cluster/initialize_openshift_version.yml
   vars:
-    # Force the openshift_version role to 3.2, it will convert this to a more specific variable and
-    # make sure the openshift_image_tag and openshift_pkg_version are all set appropriately.
-    openshift_version: "3.2"
+    # Request openshift_release 3.2 and let the openshift_version role handle converting this
+    # to a more specific version, respecting openshift_image_tag and openshift_pkg_version if
+    # defined, and overriding the normal behavior of protecting the installed version
+    openshift_release: "3.2"
+    openshift_protect_installed_version: False
 
 - name: Verify upgrade can proceed on masters
   hosts: oo_masters_to_config

+ 3 - 3
roles/openshift_version/tasks/main.yml

@@ -9,12 +9,12 @@
 - debug: var=openshift_pkg_version
 - debug: var=openshift_image_tag
 
-# Here we protect the version already installed unless something has already set
-# an openshift_version to configure.
+# Protect the installed version by default unless explicitly told not to, or given an
+# openshift_version already.
 - name: Use openshift.common.version fact as version to configure if already installed
   set_fact:
     openshift_version: "{{ openshift.common.version }}"
-  when: openshift.common.version is defined and openshift_version is not defined
+  when: openshift.common.version is defined and openshift_version is not defined and openshift_protect_installed_version
 
 - name: Set openshift_version for rpm installation
   include: set_version_rpm.yml