diff options
Diffstat (limited to 'playbooks/adhoc/upgrades')
| -rw-r--r-- | playbooks/adhoc/upgrades/upgrade.yml | 64 | 
1 files changed, 41 insertions, 23 deletions
diff --git a/playbooks/adhoc/upgrades/upgrade.yml b/playbooks/adhoc/upgrades/upgrade.yml index ffcd2757b..a959aa881 100644 --- a/playbooks/adhoc/upgrades/upgrade.yml +++ b/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:  | 
