---
- name: Wait for cilium
  when:
    - needs_cordoning | default(false)
    - kube_network_plugin == 'cilium'
  command: >
    {{ kubectl }}
    wait pod -n kube-system -l k8s-app=cilium
    --field-selector 'spec.nodeName=={{ kube_override_hostname | default(inventory_hostname) }}'
    --for=condition=Ready
    --timeout={{ upgrade_post_cilium_wait_timeout }}
  delegate_to: "{{ groups['kube_control_plane'][0] }}"

- name: Confirm node uncordon
  pause:
    echo: true
    prompt: "Ready to uncordon node {{ kube_override_hostname | default(inventory_hostname) }}?"
  when:
    - upgrade_node_post_upgrade_confirm

- name: Wait before uncordoning node
  pause:
    seconds: "{{ upgrade_node_post_upgrade_pause_seconds }}"
  when:
    - not upgrade_node_post_upgrade_confirm
    - upgrade_node_post_upgrade_pause_seconds != 0

- name: Run post upgrade hooks before uncordon
  loop: "{{ post_upgrade_hooks | default([]) }}"
  ansible.builtin.include_tasks: "{{ item }}"

- name: Uncordon node
  command: "{{ kubectl }} uncordon {{ kube_override_hostname | default(inventory_hostname) }}"
  delegate_to: "{{ groups['kube_control_plane'][0] }}"
  when:
    - needs_cordoning | default(false)
