diff --git a/roles/upgrade/pre-upgrade/tasks/main.yml b/roles/upgrade/pre-upgrade/tasks/main.yml index c93e9f14e..8d5d99c93 100644 --- a/roles/upgrade/pre-upgrade/tasks/main.yml +++ b/roles/upgrade/pre-upgrade/tasks/main.yml @@ -38,13 +38,7 @@ - name: Set if node needs cordoning set_fact: - # noqa: jinja[spacing] - needs_cordoning: >- - {% if (kubectl_node_ready.stdout == "True" and not kubectl_node_schedulable.stdout) or upgrade_node_always_cordon -%} - true - {%- else -%} - false - {%- endif %} + needs_cordoning: "{{ (kubectl_node_ready.stdout == 'True' and not kubectl_node_schedulable.stdout) or upgrade_node_always_cordon }}" - name: Node draining delegate_to: "{{ groups['kube_control_plane'][0] }}" @@ -61,8 +55,8 @@ {{ kubectl }} drain --force --ignore-daemonsets - --grace-period {{ hostvars['localhost']['drain_grace_period_after_failure'] | default(drain_grace_period) }} - --timeout {{ hostvars['localhost']['drain_timeout_after_failure'] | default(drain_timeout) }} + --grace-period {{ drain_grace_period }} + --timeout {{ drain_timeout }} --delete-emptydir-data {{ kube_override_hostname | default(inventory_hostname) }} {% if drain_pod_selector %}--pod-selector '{{ drain_pod_selector }}'{% endif %} when: drain_nodes @@ -74,35 +68,25 @@ retries: "{{ drain_retries }}" delay: "{{ drain_retry_delay_seconds }}" - - name: Drain fallback + - name: Drain node - fallback with disabled eviction when: - drain_nodes - drain_fallback_enabled - result.rc != 0 - block: - - name: Set facts after regular drain has failed - set_fact: - drain_grace_period_after_failure: "{{ drain_fallback_grace_period }}" - drain_timeout_after_failure: "{{ drain_fallback_timeout }}" - delegate_to: localhost - delegate_facts: yes - run_once: yes - - - name: Drain node - fallback with disabled eviction - command: >- - {{ kubectl }} drain - --force - --ignore-daemonsets - --grace-period {{ drain_fallback_grace_period }} - --timeout {{ drain_fallback_timeout }} - --delete-emptydir-data {{ kube_override_hostname | default(inventory_hostname) }} - {% if drain_pod_selector %}--pod-selector '{{ drain_pod_selector }}'{% endif %} - --disable-eviction - register: drain_fallback_result - until: drain_fallback_result.rc == 0 - retries: "{{ drain_fallback_retries }}" - delay: "{{ drain_fallback_retry_delay_seconds }}" - changed_when: drain_fallback_result.rc == 0 + command: >- + {{ kubectl }} drain + --force + --ignore-daemonsets + --grace-period {{ drain_fallback_grace_period }} + --timeout {{ drain_fallback_timeout }} + --delete-emptydir-data {{ kube_override_hostname | default(inventory_hostname) }} + {% if drain_pod_selector %}--pod-selector '{{ drain_pod_selector }}'{% endif %} + --disable-eviction + register: drain_fallback_result + until: drain_fallback_result.rc == 0 + retries: "{{ drain_fallback_retries }}" + delay: "{{ drain_fallback_retry_delay_seconds }}" + changed_when: drain_fallback_result.rc == 0 rescue: - name: Set node back to schedulable