Clarify network topology — I.e. software bridges (variant A)
Prerequisites & cluster preparation(15 of 26)
Verified on SNO (single NIC). Some related tests may be marked not runnable.
Install and verify NMState Operator
Configure Linux bridges via NMState (Hetzner: variant A — software bridges)
Install OpenShift Virtualization Operator
Set up LVM Storage Operator — storage for VMs
VMs need PersistentVolumes. On SNO without ODF (too resource-intensive for a single node), the LVM Storage Operator is the recommended solution. It creates a thin-pool-based StorageClass on a free block device. Thin provisioning enables fast PVC clones — essential for VM golden-image workflows. Prerequisite: at least one free, unused block device on the node.
1Identify free block device: in this example it is nvme1n1 (894.3G, no partitions)
nvme0n1 is the OCP system disk (has /boot + /sysroot) — do not touch it!2OpenShift Console → Ecosystem → Software Catalog → Operators → search for
LVM Storage → install3Namespace:
openshift-lvm-storage (default), channel: stable-4.214Create LVMCluster CR (Commands/YAML tab — path
/dev/nvme1n1 already set)5Watch status:
watch oc get lvmcluster -n openshift-lvm-storage6Mark StorageClass
lvms-vg1 as default7Create VolumeSnapshotClass for VM snapshots — include label
velero.io/csi-volumesnapshot-class=true (required when using OADP/PRE-13, otherwise PVC snapshots fail in OADP backups)8Create test PVC — NOTE: stays Pending until a consumer exists (WaitForFirstConsumer)
9Create test pod — forces PVC binding → status changes to Bound
10Clean up: delete pod and PVC
Pull secret, import golden image, prepare SSH keys
Create namespace vmtest and NetworkAttachmentDefinitions
Install MetalLB Operator and configure IP pools (3 options)
MCE + HyperShift for hosted control planes
Deploy MinIO (S3 object storage)
Install MTV (Migration Toolkit for Virtualization) Operator
Install OADP Operator and configure with MinIO (S3)
Install Advanced Cluster Management (ACM) v2.17
Install Kasten K10 (Veeam) Operator and configure with MinIO