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 --- .../common/openshift-cluster/upgrades/etcd/backup.yml | 12 ++++++++---- playbooks/common/openshift-cluster/upgrades/etcd/main.yml | 15 +++++++++++---- .../openshift-cluster/upgrades/upgrade_control_plane.yml | 5 ++--- 3 files changed, 21 insertions(+), 11 deletions(-) (limited to 'playbooks/common/openshift-cluster/upgrades') diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/backup.yml b/playbooks/common/openshift-cluster/upgrades/etcd/backup.yml index cfb273b82..691961382 100644 --- a/playbooks/common/openshift-cluster/upgrades/etcd/backup.yml +++ b/playbooks/common/openshift-cluster/upgrades/etcd/backup.yml @@ -41,11 +41,15 @@ {{ avail_disk.stdout }} Kb available. when: (embedded_etcd | bool) and (etcd_disk_usage.stdout|int > avail_disk.stdout|int) - # for non containerized etcd is already installed, don't touch it, but for containerized - # but not atomic always get the latest - - name: Install latest text for containerized but not atomic + # TODO - Refactor containerized backup to use etcd_container to backup the data so we don't rely on + # the host's etcdctl binary which may be of a different version. + + # for non containerized and non embedded we should have the correct version of etcd installed already + # For embedded we need to use the latest because OCP 3.3 uses a version of etcd that can only be backed + # up with etcd-3.x + - name: Install latest etcd for containerized or embedded package: name=etcd state=latest - when: not openshift.common.is_atomic | bool and openshift.common.is_containerized + when: ( openshift.common.is_containerized and not openshift.common.is_atomic ) or embedded_etcd | bool - name: Generate etcd backup command: > 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 diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index dad80796c..474e6311e 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -27,9 +27,8 @@ embedded_etcd: "{{ groups.oo_etcd_to_config | default([]) | length == 0 }}" debug_level: "{{ openshift_master_debug_level | default(openshift.common.debug_level | default(2)) }}" -- name: Backup etcd - include: ./etcd/backup.yml - when: not openshift_upgrade_skip_etcd_backup | default(false) | bool +- name: Upgrade and backup etcd + include: ./etcd/main.yml - name: Upgrade master packages hosts: oo_masters_to_config -- cgit v1.2.3