|
@@ -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:
|