From 676985466835002e747426434fd75581471da949 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 9 Dec 2016 11:24:59 -0500 Subject: [upgrades] Upgrade etcd by default --- playbooks/common/openshift-cluster/upgrades/etcd/main.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'playbooks/common/openshift-cluster/upgrades/etcd/main.yml') diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml index c67cf282f..62ea1fe48 100644 --- a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml +++ b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml @@ -9,24 +9,30 @@ tags: - always +# 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 upgrade 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_upgrade_etcd_backup | default(true) | bool - name: Drop etcdctl profiles hosts: etcd_hosts_to_upgrade @@ -125,3 +131,4 @@ include: backup.yml vars: backup_tag: "post-3.0-" + when: openshift_upgrade_etcd_backup | default(true) | bool -- cgit v1.2.3 From 40f6f880241811dc4faf3d68bdc690d2e2a25fcb Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 9 Dec 2016 15:50:08 -0500 Subject: Make both backup and upgrade optional --- .../openshift-cluster/upgrades/etcd/main.yml | 100 ++------------------- 1 file changed, 5 insertions(+), 95 deletions(-) (limited to 'playbooks/common/openshift-cluster/upgrades/etcd/main.yml') diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml index 62ea1fe48..8268adc2e 100644 --- a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml +++ b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml @@ -12,7 +12,7 @@ # 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 upgrade +- name: Evaluate additional groups for etcd hosts: localhost connection: local become: no @@ -32,103 +32,13 @@ include: backup.yml vars: backup_tag: "pre-upgrade-" - when: openshift_upgrade_etcd_backup | default(true) | bool + 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-" - when: openshift_upgrade_etcd_backup | default(true) | bool +- name: Perform etcd upgrade + include: ./upgrade.yml + when: openshift_etcd_upgrade | default(true) | bool -- cgit v1.2.3