--- - name: Cluster Nuke hosts: kubernetes become: true gather_facts: true any_errors_fatal: true vars_prompt: - name: nuke prompt: |- Are you sure you want to nuke this cluster? Type 'YES I WANT TO DESTROY THIS CLUSTER' to proceed default: "n" private: false pre_tasks: - name: Check for confirmation ansible.builtin.fail: msg: Aborted nuking the cluster when: nuke != 'YES I WANT TO DESTROY THIS CLUSTER' - name: Pausing for 5 seconds... ansible.builtin.pause: seconds: 5 tasks: - name: Stop Kubernetes # noqa: ignore-errors ignore_errors: true block: - name: Stop Kubernetes ansible.builtin.include_role: name: xanmanning.k3s public: true vars: k3s_state: stopped # https://github.com/k3s-io/docs/blob/main/docs/installation/network-options.md - name: Networking block: - name: Networking | Delete Cilium links ansible.builtin.command: cmd: "ip link delete {% raw %}{{ item }}{% endraw %}" removes: "/sys/class/net/{% raw %}{{ item }}{% endraw %}" loop: ["cilium_host", "cilium_net", "cilium_vxlan"] - name: Networking | Flush iptables ansible.builtin.iptables: table: "{% raw %}{{ item }}{% endraw %}" flush: true loop: ["filter", "nat", "mangle", "raw"] - name: Networking | Flush ip6tables ansible.builtin.iptables: table: "{% raw %}{{ item }}{% endraw %}" flush: true ip_version: ipv6 loop: ["filter", "nat", "mangle", "raw"] - name: Networking | Delete CNI directory ansible.builtin.file: path: /etc/cni/net.d state: absent - name: Uninstall Kubernetes ansible.builtin.include_role: name: xanmanning.k3s public: true vars: k3s_state: uninstalled - name: Stale Containers ansible.builtin.include_tasks: tasks/stale_containers.yaml vars: stale_containers_state: disabled - name: Reboot ansible.builtin.reboot: msg: Rebooting nodes reboot_timeout: 3600