From 00ad151186b9e5a88d4bea2a985facd053818140 Mon Sep 17 00:00:00 2001
From: Alexander Block <ablock84@gmail.com>
Date: Wed, 7 Dec 2016 17:36:24 +0100
Subject: [PATCH] Add playbook and role to reset the cluster

This deletes everything related to the cluster and allows to start from
scratch.
---
 reset.yml                  |  5 +++++
 roles/reset/tasks/main.yml | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 reset.yml
 create mode 100644 roles/reset/tasks/main.yml

diff --git a/reset.yml b/reset.yml
new file mode 100644
index 000000000..afc3f6e39
--- /dev/null
+++ b/reset.yml
@@ -0,0 +1,5 @@
+---
+
+- hosts: all
+  roles:
+    - { role: reset, tags: reset }
diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml
new file mode 100644
index 000000000..95eeb412e
--- /dev/null
+++ b/roles/reset/tasks/main.yml
@@ -0,0 +1,38 @@
+---
+
+- name: reset | stop services
+  service: name={{item}} state=stopped
+  with_items:
+    - kubelet
+    - etcd
+  failed_when: false
+
+- name: reset | remove services
+  file: path="/etc/systemd/system/{{item}}" state=absent
+  with_items:
+    - kubelet
+    - etcd
+  register: services_removed
+
+- name: reset | systemctl daemon-reload
+  command: systemctl daemon-reload
+  when: ansible_service_mgr == "systemd" and services_removed.changed
+
+- name: reset | remove all containers
+  shell: docker ps -aq | xargs -r docker rm -fv
+
+- name: reset | gather mounted kubelet dirs
+  shell: mount | grep /var/lib/kubelet | awk '{print $3}'
+  register: mounted_dirs
+
+- name: reset | unmount kubelet dirs
+  command: umount {{item}}
+  with_items: '{{mounted_dirs.stdout_lines}}'
+
+- name: reset | delete some files and directories
+  file: path={{ item }} state=absent
+  with_items:
+    - /etc/kubernetes/
+    - /var/lib/kubelet
+    - /var/lib/etcd
+
-- 
GitLab