diff --git a/roles/kubernetes/master/tasks/kubeadm-secondary-experimental.yml b/roles/kubernetes/master/tasks/kubeadm-secondary-experimental.yml
index b204dbba0dffff072dffcd455b20706bc00eddae..9a3f8fe1147a5ed570d598d20c84afca3c414948 100644
--- a/roles/kubernetes/master/tasks/kubeadm-secondary-experimental.yml
+++ b/roles/kubernetes/master/tasks/kubeadm-secondary-experimental.yml
@@ -34,9 +34,9 @@
     {% if kubeadm_certificate_key is defined %}
     --certificate-key={{ kubeadm_certificate_key }}
     {% endif %}
-  run_once: yes
   register: kubeadm_upload_cert
-  delegate_to: "{{ groups['kube-master'][0] }}"
+  when:
+    - inventory_hostname == groups['kube-master']|first
 
 - name: Parse certificate key if not set
   set_fact: