Browse Source

Fix quorum check when recovering broken etcd cluster (#8126)

pull/8134/head
Florian Ruynat 3 years ago
committed by GitHub
parent
commit
9eacde212f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions
  1. 3
      roles/etcd/tasks/join_etcd_member.yml
  2. 3
      roles/recover_control_plane/etcd/tasks/main.yml

3
roles/etcd/tasks/join_etcd_member.yml

@ -32,6 +32,9 @@
register: etcd_member_in_cluster
changed_when: false
check_mode: no
retries: "{{ etcd_retries }}"
delay: "{{ retry_stagger | random + 3 }}"
until: etcd_member_in_cluster.rc == 0
tags:
- facts
environment:

3
roles/recover_control_plane/etcd/tasks/main.yml

@ -20,10 +20,9 @@
when:
- groups['broken_etcd']
# When there is an error, everything is printed in stderr_lines, even "is healthy" messages.
- name: Set has_quorum fact
set_fact:
has_quorum: "{{ etcd_endpoint_health.stderr_lines | select('match', '.*is healthy.*') | list | length >= etcd_endpoint_health.stderr_lines | select('match', '.*is unhealthy.*') | list | length }}"
has_quorum: "{{ etcd_endpoint_health.stdout_lines | select('match', '.*is healthy.*') | list | length >= etcd_endpoint_health.stderr_lines | select('match', '.*is unhealthy.*') | list | length }}"
when:
- groups['broken_etcd']

Loading…
Cancel
Save