mirror of
https://github.com/PyratLabs/ansible-role-k3s
synced 2024-12-12 14:00:18 +01:00
e7c714424c
* Tidy up and refactoring of tasks - `k3s_config_dir` derived from `k3s_config_file`, reused throughout the role to allow for easy removal of "Rancher" references #73. - `k3s_token_location` has moved to be in `k3s_config_dir`. - Tasks for creating directories now looped to caputure configuration from `k3s_server` and `k3s_agent` and ensure directories exist before k3s starts, see #75. - Server token collected directly from token file, not symlinked file (node-token). - `k3s_runtime_config` defined in `vars/` for validation and overwritten in tasks for control plane and workers. - Removed unused references to GitHub API. * set_fact now uses FQCN * re-pin molecule<3.2 * Command module now uses FQCN * Added package checks for #72 * Reorder task files - Docker tasks moved into a separate directory for ease of removal #67 - Bugfix: Control plane on alternate port didn't work. - Validation tasks grouped * Fix Fedora tests * Add optional documentation links to validations steps #76 * Removed jmespath requirement * Fix issue with data collection * Release candidate
44 lines
1.8 KiB
YAML
44 lines
1.8 KiB
YAML
---
|
|
|
|
- name: Check if kubectl exists
|
|
ansible.builtin.stat:
|
|
path: "{{ k3s_install_dir }}/kubectl"
|
|
register: k3s_check_kubectl
|
|
become: "{{ k3s_become_for_kubectl | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
- name: Clean up nodes that are in an uninstalled state
|
|
block:
|
|
|
|
- name: Gather a list of nodes
|
|
ansible.builtin.command: "{{ k3s_install_dir }}/kubectl get nodes"
|
|
changed_when: false
|
|
failed_when: false
|
|
delegate_to: "{{ k3s_control_delegate }}"
|
|
run_once: true
|
|
register: kubectl_get_nodes_result
|
|
become: "{{ k3s_become_for_kubectl | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
- name: Ensure uninstalled nodes are drained
|
|
ansible.builtin.command: "{{ k3s_install_dir }}/kubectl drain {{ item }} --ignore-daemonsets --delete-local-data"
|
|
delegate_to: "{{ k3s_control_delegate }}"
|
|
run_once: true
|
|
when: item in kubectl_get_nodes_result.stdout
|
|
and hostvars[item].k3s_state is defined
|
|
and hostvars[item].k3s_state == 'uninstalled'
|
|
loop: "{{ ansible_play_hosts_all }}"
|
|
become: "{{ k3s_become_for_kubectl | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
- name: Ensure uninstalled nodes are removed
|
|
ansible.builtin.command: "{{ k3s_install_dir }}/kubectl delete node {{ item }}"
|
|
delegate_to: "{{ k3s_control_delegate }}"
|
|
run_once: true
|
|
when: item in kubectl_get_nodes_result.stdout
|
|
and hostvars[item].k3s_state is defined
|
|
and hostvars[item].k3s_state == 'uninstalled'
|
|
loop: "{{ ansible_play_hosts_all }}"
|
|
become: "{{ k3s_become_for_kubectl | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
when: k3s_check_kubectl.stat.exists is defined
|
|
and k3s_check_kubectl.stat.exists
|
|
and k3s_control_delegate is defined
|
|
and not ansible_check_mode
|