diff --git a/roles/kubernetes/master/tasks/kubeadm-setup.yml b/roles/kubernetes/master/tasks/kubeadm-setup.yml
index b5bc2882b7a1de8cfdd74507ee3c3004b164de77..619c1499238f6acfd1af15fabcd943065b2dadc7 100644
--- a/roles/kubernetes/master/tasks/kubeadm-setup.yml
+++ b/roles/kubernetes/master/tasks/kubeadm-setup.yml
@@ -159,16 +159,18 @@
     - kubeadm_token
 
 - name: kubeadm | Initialize other masters (experimental control plane)
-  include: kubeadm-secondary-experimental.yml
+  include_tasks: kubeadm-secondary-experimental.yml
   when: kubeadm_control_plane
 
 - name: kubeadm | Initialize other masters (experimental control plane)
-  include: kubeadm-secondary-legacy.yml
+  include_tasks: kubeadm-secondary-legacy.yml
   when: not kubeadm_control_plane
 
 - name: kubeadm | upgrade kubernetes cluster
-  import_tasks: kubeadm-upgrade.yml
-  when: upgrade_cluster_setup
+  include_tasks: kubeadm-upgrade.yml
+  when:
+    - upgrade_cluster_setup
+    - kubeadm_already_run.stat.exists
 
 - name: kubeadm | Check serviceaccount key again
   stat: