--- - name: De-Provision OCP-CNV VMs hosts: localhost tasks: - name: Show VM(s) we are about to make {{ instance_state }} ansible.builtin.debug: msg: "Setting the following hosts to {{ instance_state }} {{ lookup('ansible.builtin.inventory_hostnames', vm_host_string) | split(',') | difference(['localhost']) }}" - name: Define resources kubernetes.core.k8s: wait: true state: "{{ instance_state | default('present') }}" definition: apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: "{{ item }}" namespace: "{{ vm_namespace }}" labels: app: "{{ item }}" os.template.kubevirt.io/fedora36: 'true' vm.kubevirt.io/name: "{{ item }}" spec: dataVolumeTemplates: - apiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: creationTimestamp: null name: "{{ item }}" spec: sourceRef: kind: DataSource name: "{{ os_version | default('rhel9') }}" namespace: openshift-virtualization-os-images storage: resources: requests: storage: 30Gi running: true template: metadata: annotations: vm.kubevirt.io/flavor: small vm.kubevirt.io/os: "{{ os_version | default('rhel9') }}" vm.kubevirt.io/workload: server creationTimestamp: null labels: kubevirt.io/domain: "{{ item }}" kubevirt.io/size: small spec: domain: cpu: cores: 4 sockets: 1 threads: 1 devices: disks: - disk: bus: virtio name: rootdisk interfaces: - masquerade: {} model: virtio name: default networkInterfaceMultiqueue: true rng: {} machine: type: pc-q35-rhel9.2.0 resources: requests: memory: 8Gi evictionStrategy: LiveMigrate networks: - name: default pod: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: "{{ item }}" name: rootdisk loop: "{{ lookup('ansible.builtin.inventory_hostnames', vm_host_string) | regex_replace(vm_namespace + '-', '') | split(',') | difference(['localhost']) }}"