summaryrefslogtreecommitdiffstats
path: root/roles/etcd_migrate/tasks/check_cluster_health.yml
blob: 1abd6a32fbb4c94c3f007e76a3055865a9e85b99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
---
- name: Check cluster health
  command: >
    etcdctl --cert-file /etc/etcd/peer.crt --key-file /etc/etcd/peer.key --ca-file /etc/etcd/ca.crt --endpoint https://{{ etcd_peer }}:2379 cluster-health
  register: etcd_cluster_health
  changed_when: false
  failed_when: false

- name: Assume a member is not healthy
  set_fact:
    etcd_member_healthy: false

- name: Get member item health status
  set_fact:
    etcd_member_healthy: true
  with_items: "{{ etcd_cluster_health.stdout_lines }}"
  when: "(etcd_peer in item) and ('is healthy' in item)"

- name: Check the etcd cluster health
  # TODO(jchaloup): should we fail or ask user if he wants to continue? Or just wait until the cluster is healthy?
  fail:
    msg: "Etcd member {{ etcd_peer }} is not healthy"
  when: not etcd_member_healthy