Browse Source

Use the base package upgrade version so we can check things earlier.

Devan Goodwin 9 years ago
parent
commit
8ca4308854
1 changed files with 41 additions and 23 deletions
  1. 41 23
      playbooks/adhoc/upgrades/upgrade.yml

+ 41 - 23
playbooks/adhoc/upgrades/upgrade.yml

@@ -42,7 +42,6 @@
   - name: Display location of etcd backup
     debug: msg="Etcd backup created in {{ openshift.common.data_dir }}/etcd-backup-{{ timestamp }}"
 
-
 - name: Upgrade base package on masters
   hosts: masters
   roles:
@@ -53,6 +52,47 @@
     - name: Upgrade base package
       yum: pkg={{ openshift.common.service_type }}{{ openshift_version  }} state=latest
 
+- name: Evaluate oo_first_master
+  hosts: localhost
+  vars:
+    g_masters_group: "{{ 'masters' }}"
+  tasks:
+    - name: display all variables set for the current host
+      debug:
+        var: hostvars[inventory_hostname]
+    - name: Evaluate oo_first_master
+      add_host:
+        name: "{{ groups[g_masters_group][0] }}"
+        groups: oo_first_master
+        ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
+        ansible_sudo: "{{ g_sudo | default(omit) }}"
+      when: g_masters_group in groups and (groups[g_masters_group] | length) > 0
+
+# TODO: ideally we would check the new version, without installing it. (some
+# kind of yum repoquery? would need to handle openshift -> atomic-openshift
+# package rename)
+- name: Perform upgrade version checking
+  hosts: oo_first_master
+  tasks:
+    - name: Determine new version
+      command: >
+        rpm -q --queryformat '%{version}' {{ openshift.common.service_type }}
+      register: _new_version
+
+- name: Ensure AOS 3.0.2 or Origin 1.0.6
+  hosts: oo_first_master
+  tasks:
+    fail: This playbook requires Origin 1.0.6 or Atomic OpenShift 3.0.2 or later
+    when: _new_version.stdout | version_compare('1.0.6','<') or ( _new_version.stdout | version_compare('3.0','>=' and _new_version.stdout | version_compare('3.0.2','<') )
+
+- name: Verify upgrade can proceed
+  hosts: oo_first_master
+  tasks:
+  # Checking the global deployment type rather than host facts, this is about
+  # what the user is requesting.
+  - fail: msg="Deployment type 'enterprise' must be updated to 'openshift-enterprise' for upgrade to proceed"
+    when: deployment_type == "enterprise" and (_new_version.stdout | version_compare('1.0.7', '>=') or _new_version.stdout | version_compare('3.1', '>='))
+
 - name: Re-Run cluster configuration to apply latest configuration changes
   include: ../../common/openshift-cluster/config.yml
   vars:
@@ -84,28 +124,6 @@
     - name: Restart node services
       service: name="{{ openshift.common.service_type }}-node" state=restarted
 
-- name: Determine new master version
-  hosts: oo_first_master
-  tasks:
-    - name: Determine new version
-      command: >
-        rpm -q --queryformat '%{version}' {{ openshift.common.service_type }}-master
-      register: _new_version
-
-- name: Ensure AOS 3.0.2 or Origin 1.0.6
-  hosts: oo_first_master
-  tasks:
-    fail: This playbook requires Origin 1.0.6 or Atomic OpenShift 3.0.2 or later
-    when: _new_version.stdout | version_compare('1.0.6','<') or ( _new_version.stdout | version_compare('3.0','>=' and _new_version.stdout | version_compare('3.0.2','<') )
-
-- name: Verify upgrade can proceed
-  hosts: masters
-  tasks:
-  # Checking the global deployment type rather than host facts, this is about
-  # what the user is requesting.
-  - fail: msg="Deployment type 'enterprise' must be updated to 'openshift-enterprise' for upgrade to proceed"
-    when: deployment_type == "enterprise" and (_new_version.stdout | version_compare('1.0.7', '>=') or _new_version.stdout | version_compare('3.1', '>='))
-
 - name: Update cluster policy
   hosts: oo_first_master
   tasks: