diff options
Diffstat (limited to 'playbooks/openshift-etcd/private/upgrade_backup.yml')
-rw-r--r-- | playbooks/openshift-etcd/private/upgrade_backup.yml | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/playbooks/openshift-etcd/private/upgrade_backup.yml b/playbooks/openshift-etcd/private/upgrade_backup.yml new file mode 100644 index 000000000..7dfea07f1 --- /dev/null +++ b/playbooks/openshift-etcd/private/upgrade_backup.yml @@ -0,0 +1,27 @@ +--- +- name: Backup etcd + hosts: oo_etcd_hosts_to_backup + roles: + - role: openshift_etcd_facts + post_tasks: + - include_role: + name: etcd + tasks_from: backup.yml + vars: + r_etcd_common_backup_tag: "{{ etcd_backup_tag }}" + r_etcd_common_backup_sufix_name: "{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}" + +- name: Gate on etcd backup + hosts: localhost + connection: local + become: no + tasks: + - set_fact: + etcd_backup_completed: "{{ hostvars + | oo_select_keys(groups.oo_etcd_hosts_to_backup) + | oo_collect('inventory_hostname', {'r_etcd_common_backup_complete': true}) }}" + - set_fact: + etcd_backup_failed: "{{ groups.oo_etcd_hosts_to_backup | difference(etcd_backup_completed) | list }}" + - fail: + msg: "Upgrade cannot continue. The following hosts did not complete etcd backup: {{ etcd_backup_failed | join(',') }}" + when: etcd_backup_failed | length > 0 |