summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/kubernetes-cluster-cleanup.yml21
-rw-r--r--inventory/hosts.ini2
-rw-r--r--roles/kubernetes/kubeadm/control-plane/templates/kubeadm-init.config.j23
-rw-r--r--roles/kubernetes/kubeadm/control-plane/templates/kubeadm-join.config.j23
-rw-r--r--roles/kubernetes/kubeadm/prune/tasks/main.yml12
-rw-r--r--roles/kubernetes/kubeadm/worker/templates/kubeadm.config.j23
6 files changed, 24 insertions, 20 deletions
diff --git a/common/kubernetes-cluster-cleanup.yml b/common/kubernetes-cluster-cleanup.yml
index 67f6151b..69a9fc7e 100644
--- a/common/kubernetes-cluster-cleanup.yml
+++ b/common/kubernetes-cluster-cleanup.yml
@@ -3,27 +3,22 @@
hosts: _kubernetes_primary_controlplane_node_
tasks:
- name: fetch list of current nodes
- command: kubectl get nodes -o name
+ command: kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes -o jsonpath='{range .items[*]}{.metadata.name}{":"}{.metadata.labels.ansible\.spreadsapce\.org/inventory_hostname}{"\n"}{end}'
changed_when: False
check_mode: no
- register: kubectl_node_list
-
- - name: generate list of nodes to be removed
- set_fact:
- kubernetes_nodes_to_delete: "{{ kubectl_node_list.stdout_lines | map('replace', 'node/', '') | list | difference(groups['_kubernetes_nodes_'] | map('extract', hostvars, 'kubernetes_node_name')) | list }}"
+ register: kubectl_node_list_yaml
- name: generate group of nodes to be removed
- loop: "{{ hostvars | dict2items | selectattr('value.kubernetes_node_name', 'defined') | selectattr('value.kubernetes_node_name', 'in', kubernetes_nodes_to_delete) | map(attribute='key') }}"
+ loop: "{{ kubectl_node_list_yaml.stdout_lines | map('split', ':', 1) | rejectattr('1', 'in', groups['_kubernetes_nodes_']) }}"
+ loop_control:
+ label: "{{ item[1] }} ({{ item[0] }})"
add_host:
- name: "{{ item }}"
- inventory_dir: "{{ hostvars[item].inventory_dir }}"
+ name: "{{ item[1] }}"
+ inventory_dir: "{{ hostvars[item[1]].inventory_dir }}"
group: _kubernetes_nodes_prune_
+ kubernetes_node_name: "{{ item[0] }}"
changed_when: False
- - name: drain superflous nodes
- loop: "{{ kubernetes_nodes_to_delete }}"
- command: "kubectl drain {{ item }} --delete-local-data --force --ignore-daemonsets"
-
- name: prune superflous nodes from cluster
hosts: _kubernetes_nodes_
roles:
diff --git a/inventory/hosts.ini b/inventory/hosts.ini
index 1b6fb279..f646399f 100644
--- a/inventory/hosts.ini
+++ b/inventory/hosts.ini
@@ -264,7 +264,7 @@ ele-emc-e01 host_name=emc-e01
ele-emc-e02 host_name=emc-e02
#[elevate-mediachannel_todelete]
-#ele-emc-e03 host_name=emc-e03 kubernetes_node_name=emc-e03
+#ele-emc-e03 host_name=emc-e03
###############################
diff --git a/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-init.config.j2 b/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-init.config.j2
index 23cd36e6..e08ea66d 100644
--- a/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-init.config.j2
+++ b/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-init.config.j2
@@ -18,8 +18,9 @@ skipPhases:
nodeRegistration:
name: "{{ kubernetes_node_name }}"
criSocket: "{{ kubernetes_cri_socket }}"
-{% if kubernetes_overlay_node_ip is defined %}
kubeletExtraArgs:
+ node-labels: "ansible.spreadsapce.org/inventory_hostname={{ inventory_hostname }}"
+{% if kubernetes_overlay_node_ip is defined %}
node-ip: "{{ kubernetes_overlay_node_ip }}"
{% endif %}
---
diff --git a/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-join.config.j2 b/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-join.config.j2
index 77da9021..9f79fbad 100644
--- a/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-join.config.j2
+++ b/roles/kubernetes/kubeadm/control-plane/templates/kubeadm-join.config.j2
@@ -18,7 +18,8 @@ controlPlane:
nodeRegistration:
name: "{{ kubernetes_node_name }}"
criSocket: "{{ kubernetes_cri_socket }}"
-{% if kubernetes_overlay_node_ip is defined %}
kubeletExtraArgs:
+ node-labels: "ansible.spreadsapce.org/inventory_hostname={{ inventory_hostname }}"
+{% if kubernetes_overlay_node_ip is defined %}
node-ip: "{{ kubernetes_overlay_node_ip }}"
{% endif %}
diff --git a/roles/kubernetes/kubeadm/prune/tasks/main.yml b/roles/kubernetes/kubeadm/prune/tasks/main.yml
index 1c746294..88ab7ecd 100644
--- a/roles/kubernetes/kubeadm/prune/tasks/main.yml
+++ b/roles/kubernetes/kubeadm/prune/tasks/main.yml
@@ -1,9 +1,15 @@
---
-- name: remove nodes from api server
+- name: drain and remove superflous nodes
run_once: true
delegate_to: "{{ groups['_kubernetes_primary_controlplane_node_'] | first }}"
- loop: "{{ groups['_kubernetes_nodes_prune_'] | default([]) }}"
- command: "kubectl delete node {{ hostvars[item].kubernetes_node_name }}"
+ block:
+ - name: drain superflous nodes
+ loop: "{{ groups['_kubernetes_nodes_prune_'] | default([]) }}"
+ command: "kubectl --kubeconfig /etc/kubernetes/admin.conf drain {{ hostvars[item].kubernetes_node_name }} --delete-local-data --force --ignore-daemonsets"
+
+ - name: remove nodes from api server
+ loop: "{{ groups['_kubernetes_nodes_prune_'] | default([]) }}"
+ command: "kubectl --kubeconfig /etc/kubernetes/admin.conf delete node {{ hostvars[item].kubernetes_node_name }}"
- name: prune network plugin
include_tasks: "net_{{ kubernetes_network_plugin }}.yml"
diff --git a/roles/kubernetes/kubeadm/worker/templates/kubeadm.config.j2 b/roles/kubernetes/kubeadm/worker/templates/kubeadm.config.j2
index 70314fde..302e3e76 100644
--- a/roles/kubernetes/kubeadm/worker/templates/kubeadm.config.j2
+++ b/roles/kubernetes/kubeadm/worker/templates/kubeadm.config.j2
@@ -11,7 +11,8 @@ discovery:
nodeRegistration:
name: "{{ kubernetes_node_name }}"
criSocket: "{{ kubernetes_cri_socket }}"
-{% if kubernetes_overlay_node_ip is defined %}
kubeletExtraArgs:
+ node-labels: "ansible.spreadsapce.org/inventory_hostname={{ inventory_hostname }}"
+{% if kubernetes_overlay_node_ip is defined %}
node-ip: "{{ kubernetes_overlay_node_ip }}"
{% endif %}