diff --git a/roles/upgrade/post-upgrade/tasks/main.yml b/roles/upgrade/post-upgrade/tasks/main.yml
index 434ef1eea2bb0018501b883f809e14f49b577335..d82fe8d33c4d0a1b9e24aec7b3f88d13f75e8c26 100644
--- a/roles/upgrade/post-upgrade/tasks/main.yml
+++ b/roles/upgrade/post-upgrade/tasks/main.yml
@@ -25,6 +25,10 @@
     - 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] }}"