Masquerade uses OVN-K over eno2/br-ex — no bridge setup required
Test cases(24 of 50)
Complete prerequisites first ([PRE-01](PRE-01) → [PRE-08](PRE-08) minimum) before running these tests. Go to prerequisites
NOT POSSIBLE on SNO — live migration requires ≥2 nodes. Documented as an expected failure.
Test on local storage
Optimal for single-NIC — OVN-K over eno2/br-ex, no bridge setup required
✗ NOT TESTABLE ON HETZNER -- TOS violation! OVN-K localnet works technically (verified 30.06.2026: ping successful), but any VM MAC that reaches eno2/the physical switch via this interface is detected and reported by Hetzner as an unauthorised MAC (server suspension threatened). Only the registered server MAC is permitted.
✗ NOT TESTABLE — SR-IOV requires a dedicated second NIC (Intel X710, Mellanox ConnectX). The sole NIC eno2 is consumed by OVN-K and cannot be used for SR-IOV VFs.
Variant A uses pure software bridges br-net1/2/3 (port: []) — no VM MAC leaves eno2/the physical switch, no TOS risk. Variant B (on-premises, trunk port) is relevant only with your own switch.
purely internal software bridges br-net1/br-net2 (port: []) — no VM MAC leaves the node
UserDefinedNetwork with Layer2 topology is a pure overlay (encapsulated Geneve tunnel within OVN-K) — explicitly NOT localnet, so no VM MAC leaves the node.
⚠️ DEDICATED NAMESPACE REQUIRED: see NOTE below.
Modern approach without Linux bridge: OVN creates a Layer2 overlay network directly in the software stack. No VLAN on the switch required, no bridge setup on the node.
Feature available in OCP 4.14+.
The Namespace vmtest does not have this label and must never receive it: if set later, EVERY pod/VM in vmtest would be blocked until a primary UDN exists there — that would break all other test cases that use vmtest normally with the default network.
Therefore this test case gets its own dedicated namespace (vmtest-udn-primary), which exists only for the Primary UDN test.
Confirm these before running steps:
- OCP 4.21 (OVN-K)
- NO existing namespace with pods — label must be set at namespace creation, not retrospectively
3Verify label
oc get ns vmtest-udn-primary --show-labels6Check UDN status
oc get userdefinednetwork udn-vm-net -n vmtest-udn-primary8Create second VM (vm-udn-2, same namespace, same l2bridge binding)
9Wait until the VMs are Running
watch oc get vmi vm-udn-1 vm-udn-2 -n vmtest-udn-primary10Brief wait until cloud-init has completed and set the password
11Log in via console on vm-udn-1 — works independently of the network tunnel mechanism, as it is purely serial (no SSH/port-forward involved)
virtctl console vm-udn-1 -n vmtest-udn-primaryip addr # → interface with IP from 10.200.0.0/16, note IP12Similarly log in on vm-udn-2 and note IP
virtctl console vm-udn-2 -n vmtest-udn-primaryip addr13Test communication between the two VMs in the UDN (re-open console session on vm-udn-1)
virtctl console vm-udn-1 -n vmtest-udn-primaryping <ip-of-vm-udn-2>14For verification: no additional bridge interface required on the node (difference from TC-MULTUS-001)
NODE=$(oc get node -o name)oc debug $NODE -- chroot /host ip link show | grep -i br-net15Clean up: default — delete entire namespace (removes VM + UDN in one step)
oc delete namespace vmtest-udn-primary16Exception: if the UDN is still needed for later tests, delete ONLY the VMs and keep namespace + UDN
oc delete vm vm-udn-1 vm-udn-2 -n vmtest-udn-primary2 Pools: internal-pool binds to br-net1 — external-pool binds to eno2, requires a 2nd public IP
external-pool uses a provider-registered additional IP (e.g. Hetzner Additional IP); MetalLB speaker announces with the node's own MAC.
⚠️ SHARED RESOURCE: external-pool currently has only ONE IP — Clean up after this test (delete vm-ssh-lb) before starting TC-HCP-002
⚠️ NOT usable by default on the current SNO cluster: there is no customer-controlled router in the path for peering. Left for documentation purposes and future tests.
L2Advertisement explicitly binds to br-net1/br-net2 — ARP announcements stay node-internal.
Single-NIC OK — HyperShift pods use the OVN-K pod network.
⚠️ Check Pod/Node Capacity before starting TC-HCP-002 — see steps below.
⚠️ SNO EXAMPLE INSTALLATION: --control-plane-availability-policy SingleReplica is mandatory on a single-node cluster.
⚠️ Be sure enough compute resources are available on the SNO node before starting this test.
Import over OVN-K — bandwidth is shared with OCP traffic on eno2/br-ex in this cluster