diff --git a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
index 26d0ebe5b8c7f463f1a3ec0cb2ed3d957df99d32..a7c6299e8c7a9ea24900b7f1ea5d5d2e116e5060 100644
--- a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
+++ b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
@@ -273,14 +273,18 @@
   assert:
     that: etcd_deployment_type in ['host', 'docker']
     msg: "The etcd deployment type, 'etcd_deployment_type', must be host or docker"
-  run_once: true
+  when:
+    - inventory_hostname in groups['etcd']
+    - not etcd_kubeadm_enabled
 
 - name: Stop if etcd deployment type is not host when container_manager != docker
   assert:
     that: etcd_deployment_type == 'host'
     msg: "The etcd deployment type, 'etcd_deployment_type', must be host when container_manager is not docker"
-  when: container_manager != 'docker'
-  run_once: true
+  when:
+    - inventory_hostname in groups['etcd']
+    - not etcd_kubeadm_enabled
+    - container_manager != 'docker'
 
 - name: Stop if download_localhost is enabled but download_run_once is not
   assert: