check_cluster_health.yml 800 B

1234567891011121314151617181920212223
  1. ---
  2. - name: Check cluster health
  3. command: >
  4. 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
  5. register: etcd_cluster_health
  6. changed_when: false
  7. failed_when: false
  8. - name: Assume a member is not healthy
  9. set_fact:
  10. etcd_member_healthy: false
  11. - name: Get member item health status
  12. set_fact:
  13. etcd_member_healthy: true
  14. with_items: "{{ etcd_cluster_health.stdout_lines }}"
  15. when: "(etcd_peer in item) and ('is healthy' in item)"
  16. - name: Check the etcd cluster health
  17. # TODO(jchaloup): should we fail or ask user if he wants to continue? Or just wait until the cluster is healthy?
  18. fail:
  19. msg: "Etcd member {{ etcd_peer }} is not healthy"
  20. when: not etcd_member_healthy