diff --git a/.gitignore b/.gitignore
index 66c9b48678b97dbce998fa7b2c1aa326f5844030..1e8b17188a9a70482654cff0a795f4df4efaa8bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 .vagrant
 *.retry
 inventory/vagrant_ansible_inventory
+inventory/credentials/
 inventory/group_vars/fake_hosts.yml
 inventory/host_vars/
 temp
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index 289065c71a7fe9b66c4a2c6a0ddc1819f13d087f..95a10704fc1287e23b94c80fbd7c249dfaafc272 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -3,6 +3,7 @@
   tags:
     - asserts
 
+
 - name: Force binaries directory for Container Linux by CoreOS
   set_fact:
     bin_dir: "/opt/bin"
@@ -39,6 +40,11 @@
   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
new file mode 100644
index 0000000000000000000000000000000000000000..4cfb79593f7a993eeb5957856c415d7d6aae07bf
--- /dev/null
+++ b/roles/kubernetes/preinstall/tasks/pre_upgrade.yml
@@ -0,0 +1,21 @@
+---
+- name: "Pre-upgrade | check if old credential dir exists"
+  stat:
+    path: "{{ inventory_dir }}/../credentials"
+  register: old_credential_dir
+  delegate_to: localhost
+
+- name: "Pre-upgrade | check if new credential dir exists"
+  stat: 
+    path: "{{ inventory_dir }}/credentials"
+  register: new_credential_dir
+  delegate_to: localhost
+  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
+  args:
+    creates: "{{ inventory_dir }}/credentials"
+  when: old_credential_dir.stat.exists and not new_credential_dir.stat.exists
+  delegate_to: localhost
+