Browse Source
Refactor remove node to allow removing dead nodes and etcd members (#5009)
Refactor remove node to allow removing dead nodes and etcd members (#5009)
Change-Id: I1c59249f08f16d0f6fd60df6ab61f17a0a7df189pull/5051/head
committed by
Kubernetes Prow Robot
3 changed files with 71 additions and 18 deletions
Split View
Diff Options
@ -1,9 +1,54 @@ |
|||
--- |
|||
- name: Lookup node IP in kubernetes |
|||
shell: >- |
|||
{{ bin_dir }}/kubectl get nodes {{ node }} |
|||
-o jsonpath='{range.status.addresses[?(@.type=="InternalIP")]}{.address}{"\n"}{end}' |
|||
register: remove_node_ip |
|||
when: |
|||
- inventory_hostname in groups['etcd'] |
|||
- ip is not defined |
|||
- access_ip is not defined |
|||
delegate_to: "{{ groups['etcd']|first }}" |
|||
failed_when: false |
|||
|
|||
- name: Set node IP |
|||
set_fact: |
|||
node_ip: "{{ ip | default(access_ip | default(remove_node_ip.stdout)) | trim }}" |
|||
|
|||
- name: Delete node |
|||
command: "{{ bin_dir }}/kubectl delete node {{ item }}" |
|||
with_items: |
|||
- "{{ node.split(',') | default(groups['kube-node']) }}" |
|||
command: "{{ bin_dir }}/kubectl delete node {{ inventory_hostname }}" |
|||
delegate_to: "{{ groups['kube-master']|first }}" |
|||
run_once: true |
|||
ignore_errors: yes |
|||
|
|||
- name: Lookup etcd member id |
|||
shell: "{{ bin_dir }}/etcdctl --no-sync --endpoints={{ etcd_access_addresses }} member list | grep {{ node_ip }} | cut -d: -f1" |
|||
register: etcd_member_id |
|||
ignore_errors: true |
|||
changed_when: false |
|||
check_mode: no |
|||
tags: |
|||
- facts |
|||
environment: |
|||
ETCDCTL_CERT_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd']|first }}.pem" |
|||
ETCDCTL_KEY_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd']|first }}-key.pem" |
|||
ETCDCTL_CA_FILE: "{{ etcd_cert_dir }}/ca.pem" |
|||
delegate_to: "{{ groups['etcd']|first }}" |
|||
when: inventory_hostname in groups['etcd'] |
|||
|
|||
- name: Remove etcd member from cluster |
|||
shell: "{{ bin_dir }}/etcdctl --no-sync --endpoints={{ etcd_access_addresses }} member remove {{ etcd_member_id.stdout }}" |
|||
register: etcd_member_in_cluster |
|||
ignore_errors: true |
|||
changed_when: false |
|||
check_mode: no |
|||
tags: |
|||
- facts |
|||
environment: |
|||
ETCDCTL_CERT_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd']|first }}.pem" |
|||
ETCDCTL_KEY_FILE: "{{ etcd_cert_dir }}/admin-{{ groups['etcd']|first }}-key.pem" |
|||
ETCDCTL_CA_FILE: "{{ etcd_cert_dir }}/ca.pem" |
|||
delegate_to: "{{ groups['etcd']|first }}" |
|||
when: |
|||
- inventory_hostname in groups['etcd'] |
|||
- not etcd_member_id.stdout |
Write
Preview
Loading…
Cancel
Save