|
|
@ -1,8 +1,21 @@ |
|
|
|
--- |
|
|
|
- name: See if node is in ready state |
|
|
|
command: "kubectl get nodes | grep {{ inventory_hostname }}" |
|
|
|
register: kubectl_nodes |
|
|
|
ignore_errors: true |
|
|
|
|
|
|
|
- set_fact: |
|
|
|
needs_cordoning: >- |
|
|
|
{% if " Ready" in kubectl_nodes.stdout %} |
|
|
|
true |
|
|
|
{% else %} |
|
|
|
false |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
- name: Cordon node |
|
|
|
command: "{{ bin_dir }}/kubectl cordon {{ ansible_hostname }}" |
|
|
|
delegate_to: "{{ groups['kube-master'][0] }}" |
|
|
|
when: needs_cordoning |
|
|
|
|
|
|
|
- name: Drain node |
|
|
|
command: >- |
|
|
@ -13,6 +26,4 @@ |
|
|
|
--timeout {{ drain_timeout }} |
|
|
|
--delete-local-data {{ ansible_hostname }} |
|
|
|
delegate_to: "{{ groups['kube-master'][0] }}" |
|
|
|
|
|
|
|
- name: Sleep for grace period for draining |
|
|
|
pause: seconds=30 |
|
|
|
when: needs_cordoning |