diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml
index 8fba48f2b87aa63619554c752216e9f523ffc290..aa24980430baf075a37be4dd56cf847d53443d58 100644
--- a/roles/download/tasks/main.yml
+++ b/roles/download/tasks/main.yml
@@ -12,7 +12,6 @@
   when:
     - kube_version is version('v1.11.0', '>=')
     - not skip_downloads|default(false)
-    - not skip_kubeadm_images|default(false)
     - inventory_hostname in groups['kube-master']
   tags:
     - download
diff --git a/roles/download/tasks/prep_kubeadm_images.yml b/roles/download/tasks/prep_kubeadm_images.yml
index 8187a30cca35fb65e3f3fd2465dda088bb8dad74..2461626db18da50e945a5f2555a6c97691d4f51d 100644
--- a/roles/download/tasks/prep_kubeadm_images.yml
+++ b/roles/download/tasks/prep_kubeadm_images.yml
@@ -21,6 +21,8 @@
   template:
     src: "kubeadm-images.yaml.j2"
     dest: "{{ kube_config_dir }}/kubeadm-images.yaml"
+  when:
+    - not skip_kubeadm_images|default(false)
 
 - name: prep_kubeadm_images | Copy kubeadm binary from download dir to system path
   synchronize:
@@ -43,6 +45,8 @@
   register: kubeadm_images_raw
   run_once: true
   changed_when: false
+  when:
+    - not skip_kubeadm_images|default(false)
 
 - name: prep_kubeadm_images | Parse list of images
   vars:
@@ -59,8 +63,12 @@
   loop: "{{ kubeadm_images_list | flatten(levels=1) }}"
   register: kubeadm_images_cooked
   run_once: true
+  when:
+    - not skip_kubeadm_images|default(false)
 
 - name: prep_kubeadm_images | Convert list of images to dict for later use
   set_fact:
     kubeadm_images: "{{ kubeadm_images_cooked.results | map(attribute='ansible_facts.kubeadm_image') | list | items2dict }}"
   run_once: true
+  when:
+    - not skip_kubeadm_images|default(false)