first commit
This commit is contained in:
69
destroy-lab.yml
Normal file
69
destroy-lab.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
- name: Delete VMs and all associated disks (PVCs)
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
collections:
|
||||
- kubernetes.core
|
||||
|
||||
vars:
|
||||
namespace: default
|
||||
|
||||
vm_names:
|
||||
- controller
|
||||
- node1
|
||||
- node2
|
||||
- node3
|
||||
- node4
|
||||
- node5
|
||||
- utility
|
||||
|
||||
disks:
|
||||
- rootdisk
|
||||
- disk2
|
||||
- disk3
|
||||
|
||||
tasks:
|
||||
###########################################################################
|
||||
# Delete VMs
|
||||
###########################################################################
|
||||
- name: Delete VirtualMachines
|
||||
k8s:
|
||||
api_version: kubevirt.io/v1
|
||||
kind: VirtualMachine
|
||||
name: "{{ item }}"
|
||||
namespace: "{{ namespace }}"
|
||||
state: absent
|
||||
loop: "{{ vm_names }}"
|
||||
|
||||
###########################################################################
|
||||
# Wait until VMs are actually gone (IMPORTANT)
|
||||
###########################################################################
|
||||
- name: Wait for VMs to be fully deleted
|
||||
k8s_info:
|
||||
api_version: kubevirt.io/v1
|
||||
kind: VirtualMachine
|
||||
name: "{{ item }}"
|
||||
namespace: "{{ namespace }}"
|
||||
register: vm_check
|
||||
until: vm_check.resources | length == 0
|
||||
retries: 30
|
||||
delay: 5
|
||||
loop: "{{ vm_names }}"
|
||||
loop_control:
|
||||
label: "{{ item }}"
|
||||
|
||||
###########################################################################
|
||||
# Delete PVCs (no pre-check, safe & idempotent)
|
||||
###########################################################################
|
||||
- name: Delete PVCs for all VM disks
|
||||
k8s:
|
||||
api_version: v1
|
||||
kind: PersistentVolumeClaim
|
||||
name: "{{ item.0 }}-{{ item.1 }}"
|
||||
namespace: "{{ namespace }}"
|
||||
state: absent
|
||||
loop: "{{ vm_names | product(disks) | list }}"
|
||||
loop_control:
|
||||
label: "{{ item.0 }}-{{ item.1 }}"
|
||||
failed_when: false
|
||||
|
||||
Reference in New Issue
Block a user