diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index 95a10704fc1287e23b94c80fbd7c249dfaafc272..34ad9af34d34c3f38ab63713668460c6940a36c4 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -3,6 +3,10 @@
   tags:
     - asserts
 
+# This is run before bin_dir is pinned because these tasks are run on localhost
+- import_tasks: pre_upgrade.yml
+  tags:
+    - upgrade
 
 - name: Force binaries directory for Container Linux by CoreOS
   set_fact:
@@ -40,11 +44,6 @@
   tags:
     - facts
 
-- import_tasks: pre_upgrade.yml
-  tags:
-    - upgrade
-
-
 - name: Create kubernetes directories
   file:
     path: "{{ item }}"
diff --git a/roles/kubernetes/preinstall/tasks/pre_upgrade.yml b/roles/kubernetes/preinstall/tasks/pre_upgrade.yml
index 4cfb79593f7a993eeb5957856c415d7d6aae07bf..91bab1f52145956479862f132f1be0689232f36e 100644
--- a/roles/kubernetes/preinstall/tasks/pre_upgrade.yml
+++ b/roles/kubernetes/preinstall/tasks/pre_upgrade.yml
@@ -1,21 +1,22 @@
 ---
 - name: "Pre-upgrade | check if old credential dir exists"
-  stat:
+  local_action:
+    module: stat
     path: "{{ inventory_dir }}/../credentials"
   register: old_credential_dir
-  delegate_to: localhost
+  become: no
 
 - name: "Pre-upgrade | check if new credential dir exists"
-  stat: 
+  local_action:
+    module: stat
     path: "{{ inventory_dir }}/credentials"
   register: new_credential_dir
-  delegate_to: localhost
+  become: no
   when: old_credential_dir.stat.exists
 
 - name: "Pre-upgrade | move data from old credential dir to new"
-  command: mv {{ inventory_dir }}/../credentials {{ inventory_dir }}/credentials
+  local_action: command mv {{ inventory_dir }}/../credentials {{ inventory_dir }}/credentials
   args:
     creates: "{{ inventory_dir }}/credentials"
+  become: no
   when: old_credential_dir.stat.exists and not new_credential_dir.stat.exists
-  delegate_to: localhost
-