Browse Source

Fix version handling in 3.8/3.9 control plane upgrades

Russell Teague 7 years ago
parent
commit
db9c0b33f3

+ 2 - 2
playbooks/common/openshift-cluster/upgrades/pre/config.yml

@@ -5,8 +5,6 @@
 # Pre-upgrade
 - import_playbook: ../initialize_nodes_to_upgrade.yml
 
-- import_playbook: verify_cluster.yml
-
 - name: Update repos on upgrade hosts
   hosts: "{{ l_upgrade_repo_hosts }}"
   roles:
@@ -53,6 +51,8 @@
     # l_openshift_version_set_hosts is passed via upgrade_control_plane.yml
     # l_openshift_version_check_hosts is passed via upgrade_control_plane.yml
 
+- import_playbook: verify_cluster.yml
+
 # If we're only upgrading nodes, we need to ensure masters are already upgraded
 - name: Verify masters are already upgraded
   hosts: oo_masters_to_config

+ 2 - 0
playbooks/common/openshift-cluster/upgrades/pre/verify_cluster.yml

@@ -17,6 +17,7 @@
         valid version for a {{ openshift_upgrade_target }} upgrade
     when:
     - openshift_pkg_version is defined
+    - openshift_pkg_version != ""
     - openshift_pkg_version.split('-',1).1 is version_compare(openshift_upgrade_target ,'<')
 
   - fail:
@@ -25,6 +26,7 @@
         valid version for a {{ openshift_upgrade_target }} upgrade
     when:
     - openshift_image_tag is defined
+    - openshift_image_tag != ""
     - openshift_image_tag.split('v',1).1 is version_compare(openshift_upgrade_target ,'<')
 
   - set_fact:

+ 5 - 7
playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml

@@ -26,6 +26,7 @@
       openshift_upgrade_min: '3.7'
       openshift_release: '3.8'
       _requested_pkg_version: "{{ openshift_pkg_version if openshift_pkg_version is defined else omit }}"
+      openshift_pkg_version: ''
       _requested_image_tag: "{{ openshift_image_tag if openshift_image_tag is defined else omit }}"
       l_double_upgrade_cp: True
     when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
@@ -61,10 +62,8 @@
 
 # Pre-upgrade completed
 
-- import_playbook: ../upgrade_control_plane.yml
-  vars:
-    openshift_release: '3.8'
-    openshift_pkg_version: ''
+- name: Intermediate 3.8 Upgrade
+  import_playbook: ../upgrade_control_plane.yml
   when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')
 
 ## 3.8 upgrade complete we should now be able to upgrade to 3.9
@@ -77,7 +76,7 @@
       openshift_upgrade_target: '3.9'
       openshift_upgrade_min: '3.8'
       openshift_release: '3.9'
-      openshift_pkg_version: "{{ _requested_pkg_version | default ('-3.9*') }}"
+      openshift_pkg_version: "{{ _requested_pkg_version if _requested_pkg_version is defined else '' }}"
   # Set the user's specified image_tag for 3.9 upgrade if it was provided.
   - set_fact:
       openshift_image_tag: "{{ _requested_image_tag }}"
@@ -106,6 +105,7 @@
     l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"
     l_upgrade_excluder_hosts: "oo_masters_to_config"
     openshift_protect_installed_version: False
+    openshift_version_reinit: True
 
 - name: Flag pre-upgrade checks complete for hosts without errors
   hosts: oo_masters_to_config:oo_etcd_to_config
@@ -114,8 +114,6 @@
       pre_upgrade_complete: True
 
 - import_playbook: ../upgrade_control_plane.yml
-  vars:
-    openshift_release: '3.9'
 
 # All controllers must be stopped at the same time then restarted
 - name: Cycle all controller services to force new leader election mode

+ 2 - 2
roles/openshift_version/tasks/first_master.yml

@@ -19,7 +19,7 @@
   - set_fact:
       openshift_pkg_version: -{{ openshift_version }}
   when:
-  - openshift_pkg_version is not defined
+  - openshift_pkg_version is not defined or openshift_pkg_version == ""
   - openshift_upgrade_target is not defined
 
 - block:
@@ -28,5 +28,5 @@
   - set_fact:
       openshift_image_tag: v{{ openshift_version }}
   when: >
-    openshift_image_tag is not defined
+    openshift_image_tag is not defined or openshift_image_tag == ""
     or l_force_image_tag_to_version | bool

+ 1 - 0
roles/openshift_version/tasks/first_master_containerized_version.yml

@@ -6,6 +6,7 @@
     openshift_version: "{{ openshift_image_tag[1:].split('-')[0] if openshift_image_tag != 'latest' else openshift_image_tag }}"
   when:
   - openshift_image_tag is defined
+  - openshift_image_tag != ""
   - openshift_version is not defined
   - not (openshift_version_reinit | default(false))
 

+ 1 - 0
roles/openshift_version/tasks/first_master_rpm_version.yml

@@ -5,6 +5,7 @@
     openshift_version: "{{ openshift_pkg_version[1:].split('-')[0] }}"
   when:
   - openshift_pkg_version is defined
+  - openshift_pkg_version != ""
   - openshift_version is not defined
   - not (openshift_version_reinit | default(false))