diff options
author | Scott Dodson <sdodson@redhat.com> | 2016-12-12 13:49:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-12 13:49:15 -0500 |
commit | bf3fa6162880e2dff9c23d42ceb2197e071ba570 (patch) | |
tree | 98ad25c6ebdefa16eff3bfa04e48bb73496a7ddc /playbooks/common/openshift-cluster/upgrades/etcd/main.yml | |
parent | 68bd0d9d8318bedd36c2ff45b70a6db0329248c6 (diff) | |
parent | 40f6f880241811dc4faf3d68bdc690d2e2a25fcb (diff) | |
download | openshift-bf3fa6162880e2dff9c23d42ceb2197e071ba570.tar.gz openshift-bf3fa6162880e2dff9c23d42ceb2197e071ba570.tar.bz2 openshift-bf3fa6162880e2dff9c23d42ceb2197e071ba570.tar.xz openshift-bf3fa6162880e2dff9c23d42ceb2197e071ba570.zip |
Merge pull request #2963 from sdodson/upgrade_etcd_by_default
Upgrade etcd by default
Diffstat (limited to 'playbooks/common/openshift-cluster/upgrades/etcd/main.yml')
-rw-r--r-- | playbooks/common/openshift-cluster/upgrades/etcd/main.yml | 111 |
1 files changed, 14 insertions, 97 deletions
diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml index c67cf282f..8268adc2e 100644 --- a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml +++ b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml @@ -9,119 +9,36 @@ tags: - always -- name: Evaluate additional groups for upgrade +# We use two groups one for hosts we're upgrading which doesn't include embedded etcd +# The other for backing up which includes the embedded etcd host, there's no need to +# upgrade embedded etcd that just happens when the master is updated. +- name: Evaluate additional groups for etcd hosts: localhost connection: local become: no tasks: - - fail: - msg: 'The etcd upgrade playbook does not support upgrading embedded etcd, simply run the normal playbooks and etcd will be upgraded when your master is updated.' - when: "{{ groups.oo_etcd_to_config | default([]) | length == 0 }}" - name: Evaluate etcd_hosts_to_upgrade add_host: name: "{{ item }}" - groups: etcd_hosts_to_upgrade, etcd_hosts_to_backup + groups: etcd_hosts_to_upgrade + with_items: "{{ groups.oo_etcd_to_config if groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config | length > 0 else [] }}" + - name: Evaluate etcd_hosts_to_backup + add_host: + name: "{{ item }}" + groups: etcd_hosts_to_backup with_items: "{{ groups.oo_etcd_to_config if groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config | length > 0 else groups.oo_first_master }}" - name: Backup etcd before upgrading anything include: backup.yml vars: backup_tag: "pre-upgrade-" + when: openshift_etcd_backup | default(true) | bool - name: Drop etcdctl profiles hosts: etcd_hosts_to_upgrade tasks: - include: roles/etcd/tasks/etcdctl.yml -- name: Determine etcd version - hosts: etcd_hosts_to_upgrade - tasks: - - name: Record RPM based etcd version - command: rpm -qa --qf '%{version}' etcd\* - args: - warn: no - register: etcd_rpm_version - failed_when: false - when: not openshift.common.is_containerized | bool - - name: Record containerized etcd version - command: docker exec etcd_container rpm -qa --qf '%{version}' etcd\* - register: etcd_container_version - failed_when: false - when: openshift.common.is_containerized | bool - -# I really dislike this copy/pasta but I wasn't able to find a way to get it to loop -# through hosts, then loop through tasks only when appropriate -- name: Upgrade to 2.1 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: '2.1' - tasks: - - include: rhel_tasks.yml - when: etcd_rpm_version.stdout | default('99') | version_compare('2.1','<') and ansible_distribution == 'RedHat' and not openshift.common.is_containerized | bool - -- name: Upgrade RPM hosts to 2.2 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: '2.2' - tasks: - - include: rhel_tasks.yml - when: etcd_rpm_version.stdout | default('99') | version_compare('2.2','<') and ansible_distribution == 'RedHat' and not openshift.common.is_containerized | bool - -- name: Upgrade containerized hosts to 2.2.5 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: 2.2.5 - tasks: - - include: containerized_tasks.yml - when: etcd_container_version.stdout | default('99') | version_compare('2.2','<') and openshift.common.is_containerized | bool - -- name: Upgrade RPM hosts to 2.3 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: '2.3' - tasks: - - include: rhel_tasks.yml - when: etcd_rpm_version.stdout | default('99') | version_compare('2.3','<') and ansible_distribution == 'RedHat' and not openshift.common.is_containerized | bool - -- name: Upgrade containerized hosts to 2.3.7 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: 2.3.7 - tasks: - - include: containerized_tasks.yml - when: etcd_container_version.stdout | default('99') | version_compare('2.3','<') and openshift.common.is_containerized | bool - -- name: Upgrade RPM hosts to 3.0 - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: '3.0' - tasks: - - include: rhel_tasks.yml - when: etcd_rpm_version.stdout | default('99') | version_compare('3.0','<') and ansible_distribution == 'RedHat' and not openshift.common.is_containerized | bool - -- name: Upgrade containerized hosts to etcd3 image - hosts: etcd_hosts_to_upgrade - serial: 1 - vars: - upgrade_version: 3.0.14 - tasks: - - include: containerized_tasks.yml - when: etcd_container_version.stdout | default('99') | version_compare('3.0','<') and openshift.common.is_containerized | bool - -- name: Upgrade fedora to latest - hosts: etcd_hosts_to_upgrade - serial: 1 - tasks: - - include: fedora_tasks.yml - when: ansible_distribution == 'Fedora' and not openshift.common.is_containerized | bool - -- name: Backup etcd - include: backup.yml - vars: - backup_tag: "post-3.0-" +- name: Perform etcd upgrade + include: ./upgrade.yml + when: openshift_etcd_upgrade | default(true) | bool |