From bb469005b275b5573137d7276b25eabc8bbe53ca Mon Sep 17 00:00:00 2001
From: Matthew Mosesohn <matthew.mosesohn@gmail.com>
Date: Thu, 15 Feb 2018 20:18:12 +0300
Subject: [PATCH] Add pre-upgrade task for moving credentials file

---
 .gitignore                                    |  1 +
 roles/kubernetes/preinstall/tasks/main.yml    |  6 ++++++
 .../preinstall/tasks/pre_upgrade.yml          | 21 +++++++++++++++++++
 3 files changed, 28 insertions(+)
 create mode 100644 roles/kubernetes/preinstall/tasks/pre_upgrade.yml

diff --git a/.gitignore b/.gitignore
index 66c9b4867..1e8b17188 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 289065c71..95a10704f 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 000000000..4cfb79593
--- /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
+
-- 
GitLab