summaryrefslogtreecommitdiffstats
path: root/playbooks/common/openshift-cluster/upgrades/etcd/main.yml
diff options
context:
space:
mode:
authorScott Dodson <sdodson@redhat.com>2016-12-12 13:49:15 -0500
committerGitHub <noreply@github.com>2016-12-12 13:49:15 -0500
commitbf3fa6162880e2dff9c23d42ceb2197e071ba570 (patch)
tree98ad25c6ebdefa16eff3bfa04e48bb73496a7ddc /playbooks/common/openshift-cluster/upgrades/etcd/main.yml
parent68bd0d9d8318bedd36c2ff45b70a6db0329248c6 (diff)
parent40f6f880241811dc4faf3d68bdc690d2e2a25fcb (diff)
downloadopenshift-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.yml111
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