diff options
-rw-r--r-- | common/kubernetes-cleanup.yml | 40 | ||||
-rw-r--r-- | common/kubernetes.yml | 48 |
2 files changed, 40 insertions, 48 deletions
diff --git a/common/kubernetes-cleanup.yml b/common/kubernetes-cleanup.yml new file mode 100644 index 00000000..a320e0f8 --- /dev/null +++ b/common/kubernetes-cleanup.yml @@ -0,0 +1,40 @@ +--- +- import_playbook: kubernetes-cluster-layout.yml + +######## +- name: check for nodes to be removed + hosts: _kubernetes_primary_master_ + tasks: + - name: fetch list of current nodes + command: kubectl get nodes -o name + changed_when: False + check_mode: no + register: kubectl_node_list + + - name: generate list of nodes to be removed + loop: "{{ kubectl_node_list.stdout_lines | map('replace', 'node/', '') | list | difference(groups['_kubernetes_nodes_']) }}" + add_host: + name: "{{ item }}" + inventory_dir: "{{ inventory_dir }}" + group: _kubernetes_nodes_remove_ + changed_when: False + + - name: drain superflous nodes + loop: "{{ groups['_kubernetes_nodes_remove_'] | default([]) }}" + command: "kubectl drain {{ item }} --delete-local-data --force --ignore-daemonsets" + +- name: try to clean superflous nodes + hosts: _kubernetes_nodes_remove_ + roles: + - role: kubernetes/kubeadm/reset + - role: kubernetes/net/kubeguard + when: kubernetes_network_plugin == 'kubeguard' + vars: + kubeguard_action: remove + +- name: remove node from api server + hosts: _kubernetes_primary_master_ + tasks: + - name: remove superflous nodes + loop: "{{ groups['_kubernetes_nodes_remove_'] | default([]) }}" + command: "kubectl delete node {{ item }}" diff --git a/common/kubernetes.yml b/common/kubernetes.yml index 21af11a6..c4f3f81e 100644 --- a/common/kubernetes.yml +++ b/common/kubernetes.yml @@ -31,7 +31,6 @@ that: - kubernetes_cri_socket == "unix:///run/containerd/containerd.sock" - ######## - name: kubernetes base installation hosts: _kubernetes_nodes_ @@ -56,51 +55,4 @@ # roles: # - role: kubernetes/kubeadm/node -######## -# - name: check for nodes to be removed -# hosts: _kubernetes_primary_master_ -# tasks: -# - name: fetch list of current nodes -# command: kubectl get nodes -o name -# changed_when: False -# check_mode: no -# register: kubectl_node_list - -# - name: generate list of nodes to be removed -# loop: "{{ kubectl_node_list.stdout_lines | map('replace', 'node/', '') | list | difference(kubernetes_nodes) }}" -# add_host: -# name: "{{ item }}" -# inventory_dir: "{{ inventory_dir }}" -# group: _kubernetes_nodes_remove_ -# changed_when: False - -# - name: drain superflous nodes -# loop: "{{ groups['_kubernetes_nodes_remove_'] | default([]) }}" -# command: "kubectl drain {{ item }} --delete-local-data --force --ignore-daemonsets" - -# - name: try to clean superflous nodes -# hosts: _kubernetes_nodes_remove_ -# roles: -# - role: kubernetes/kubeadm/reset -# - role: kubernetes/net/kubeguard -# when: kubernetes_network_plugin == 'kubeguard' -# vars: -# kubeguard_action: remove - -# - name: remove node from api server -# hosts: _kubernetes_primary_master_ -# tasks: -# - name: remove superflous nodes -# loop: "{{ groups['_kubernetes_nodes_remove_'] | default([]) }}" -# command: "kubectl delete node {{ item }}" - -# - name: wait a litte before removing bootstrap-token so new nodes have time to generate certificates for themselves -# when: kube_bootstrap_token != "" -# pause: -# seconds: 42 - -# - name: remove bootstrap-token -# when: kube_bootstrap_token != "" -# command: "kubectl --namespace kube-system delete secret bootstrap-token-{{ kube_bootstrap_token.split('.') | first }}" - ### TODO: add node labels (ie. for ingress daeomnset) |