Fixes for upgrade mode

Uses correct flag for draining with a pod selector
Verifies minimum kubectl version for compatibility
This commit is contained in:
Matthew Mosesohn 2018-09-11 14:57:19 +03:00
parent ffbe9e7fd8
commit 8becd905b8
2 changed files with 20 additions and 2 deletions

View file

@ -1,5 +1,5 @@
---
drain_grace_period: 300
drain_timeout: 360s
drain_label_selector: ""
drain_pod_selector: ""
drain_nodes: true

View file

@ -32,6 +32,24 @@
delegate_to: "{{ groups['kube-master'][0] }}"
when: needs_cordoning
- name: Check kubectl version
command: kubectl version --client --short
register: kubectl_version
delegate_to: "{{ groups['kube-master'][0] }}"
run_once: yes
when:
- drain_nodes
- needs_cordoning
- 'drain_pod_selector != ""'
- name: Ensure minimum version for drain label selector if necessary
assert:
that: "kubectl_version.stdout.split(' ')[-1] | version_compare('v1.10.0', '>=')"
when:
- drain_nodes
- needs_cordoning
- 'drain_pod_selector != ""'
- name: Drain node
command: >-
{{ bin_dir }}/kubectl drain
@ -40,7 +58,7 @@
--grace-period {{ drain_grace_period }}
--timeout {{ drain_timeout }}
--delete-local-data {{ inventory_hostname }}
{% if drain_label_selector != "" %}--selector '{{ drain_label_selector }}'{% endif %}
{% if drain_pod_selector != "" %}--pod-selector '{{ drain_pod_selector }}'{% endif %}
delegate_to: "{{ groups['kube-master'][0] }}"
when:
- drain_nodes