summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--playbooks/common/openshift-cluster/upgrades/etcd/backup.yml12
-rw-r--r--playbooks/common/openshift-cluster/upgrades/etcd/main.yml15
-rw-r--r--playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml5
3 files changed, 21 insertions, 11 deletions
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