Files
RHCE/destroy-lab.yml
2026-01-25 08:31:56 -07:00

70 lines
1.9 KiB
YAML

---
- 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