From 8fa5902b788fd4c3c14d419e7458b68f795ec39d Mon Sep 17 00:00:00 2001 From: Ram Lavi Date: Mon, 21 Jul 2025 10:20:26 +0300 Subject: [PATCH 1/4] networking: Add primaryUDN VM restart test w/ preconfigured IP addr. Validates that KubeVirt VMs with preconfigured IP addresses maintain those addresses correctly before and after restart operation. Signed-off-by: Ram Lavi --- test/extended/networking/kubevirt/template.go | 57 ++++++++++++++++++- test/extended/networking/livemigration.go | 57 ++++++++++++++++++- .../networking/network_segmentation.go | 5 ++ 3 files changed, 116 insertions(+), 3 deletions(-) diff --git a/test/extended/networking/kubevirt/template.go b/test/extended/networking/kubevirt/template.go index 55901a04d08a..6e056b8fa1dc 100644 --- a/test/extended/networking/kubevirt/template.go +++ b/test/extended/networking/kubevirt/template.go @@ -2,7 +2,7 @@ package kubevirt import ( "bytes" - "html/template" + "text/template" ) const ( @@ -196,6 +196,60 @@ spec: password: fedora chpasswd: { expire: False } name: cloudinitdisk +` + FedoraVMWithPreconfiguredPrimaryUDNAttachment = ` +apiVersion: kubevirt.io/v1 +kind: VirtualMachine +metadata: + name: {{ .VMName }} + namespace: {{ .VMNamespace }} +spec: + runStrategy: Always + template: + {{- if .PreconfiguredIP }} + metadata: + annotations: + network.kubevirt.io/addresses: {{ printf "%q" .PreconfiguredIP }} + {{- end }} + spec: + domain: + devices: + disks: + - name: containerdisk + disk: + bus: virtio + - name: cloudinitdisk + disk: + bus: virtio + interfaces: + - name: overlay + binding: + name: {{ .NetBindingName }} + machine: + type: "" + resources: + requests: + memory: 2048M + networks: + - name: overlay + pod: {} + terminationGracePeriodSeconds: 0 + volumes: + - name: containerdisk + containerDisk: + image: {{ .FedoraContainterDiskImage }} + - name: cloudinitdisk + cloudInitNoCloud: + networkData: | + version: 2 + ethernets: + eth0: + dhcp4: true + dhcp6: true + userData: |- + #cloud-config + password: fedora + chpasswd: { expire: False } ` vmimTemplate = ` apiVersion: kubevirt.io/v1 @@ -214,6 +268,7 @@ type CreationTemplateParams struct { FedoraContainterDiskImage string NetBindingName string NetworkName string + PreconfiguredIP string } func renderVMTemplate(vmTemplateString string, params CreationTemplateParams) (string, error) { diff --git a/test/extended/networking/livemigration.go b/test/extended/networking/livemigration.go index 9bddeee2ce84..63f00698d688 100644 --- a/test/extended/networking/livemigration.go +++ b/test/extended/networking/livemigration.go @@ -70,8 +70,12 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F DescribeTableSubtree("created using", func(createNetworkFn func(netConfig networkAttachmentConfigParams) networkAttachmentConfig) { - DescribeTable("[Suite:openshift/network/virtualization] should keep ip", func(netConfig networkAttachmentConfigParams, vmResource string, opCmd func(cli *kubevirt.Client, vmNamespace, vmName string)) { + DescribeTable("[Suite:openshift/network/virtualization] should keep ip", func(netConfig networkAttachmentConfigParams, vmResource string, opCmd func(cli *kubevirt.Client, vmNamespace, vmName string), wlConfig ...workloadNetworkConfig) { var err error + var workloadConfig workloadNetworkConfig + if len(wlConfig) > 0 { + workloadConfig = wlConfig[0] + } l := map[string]string{ "e2e-framework": f.BaseName, } @@ -128,6 +132,11 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F vmCreationParams.NetworkName = nadName } + if len(workloadConfig.preconfiguredIPs) > 0 { + var err error + vmCreationParams.PreconfiguredIP, err = formatAddressesAnnotation(workloadConfig.preconfiguredIPs) + Expect(err).NotTo(HaveOccurred()) + } Expect(virtClient.CreateVM(vmResource, vmCreationParams)).To(Succeed()) waitForVMReadiness(virtClient, vmCreationParams.VMNamespace, vmCreationParams.VMName) @@ -151,6 +160,13 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F } Expect(initialAddresses).To(HaveLen(expectedNumberOfAddresses)) + if len(workloadConfig.preconfiguredIPs) > 0 { + By("Verifying VM received the preconfigured IP address(es)") + for _, expectedIP := range workloadConfig.preconfiguredIPs { + expectedIP = strings.TrimSpace(expectedIP) + Expect(initialAddresses).To(ContainElement(expectedIP), fmt.Sprintf("Expected IP %s not found in VM addresses %v", expectedIP, initialAddresses)) + } + } httpServerPodsIPs := httpServerTestPodsMultusNetworkIPs(netConfig, httpServerPods) By(fmt.Sprintf("Check east/west traffic before test operation using IPs: %v", httpServerPodsIPs)) @@ -241,7 +257,22 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F }, kubevirt.FedoraVMWithSecondaryNetworkAttachment, restartVM, - )) + ), + Entry( + "[OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IPs attached to a primary UDN is restarted", + networkAttachmentConfigParams{ + name: nadName, + topology: "layer2", + role: "primary", + allowPersistentIPs: true, + }, + kubevirt.FedoraVMWithPreconfiguredPrimaryUDNAttachment, + restartVM, + workloadNetworkConfig{ + preconfiguredIPs: []string{"203.203.0.50", "2014:100:200::50"}, + }, + ), + ) }, Entry("NetworkAttachmentDefinitions", func(c networkAttachmentConfigParams) networkAttachmentConfig { netConfig := newNetworkAttachmentConfig(c) @@ -627,3 +658,25 @@ func networkName(netSpecConfig string) string { Expect(json.Unmarshal([]byte(netSpecConfig), &nc)).To(Succeed()) return nc.Name } + +// formatAddressesAnnotation converts slice of IPs to the required JSON format for kubevirt addresses annotation +func formatAddressesAnnotation(preconfiguredIPs []string) (string, error) { + const primaryUDNNetworkName = "overlay" + if len(preconfiguredIPs) == 0 { + return "", nil + } + + ips := make([]string, len(preconfiguredIPs)) + for i, ip := range preconfiguredIPs { + ips[i] = strings.TrimSpace(ip) + } + + staticIPs, err := json.Marshal(map[string][]string{ + primaryUDNNetworkName: ips, + }) + if err != nil { + return "", fmt.Errorf("failed to marshal static IPs: %w", err) + } + + return string(staticIPs), nil +} diff --git a/test/extended/networking/network_segmentation.go b/test/extended/networking/network_segmentation.go index 56902022a266..0e36d7751140 100644 --- a/test/extended/networking/network_segmentation.go +++ b/test/extended/networking/network_segmentation.go @@ -1890,6 +1890,11 @@ type networkAttachmentConfigParams struct { role string } +// workloadNetworkConfig contains workload-specific network customizations +type workloadNetworkConfig struct { + preconfiguredIPs []string +} + type networkAttachmentConfig struct { networkAttachmentConfigParams } From 6bc9d9ce5d4732a86708f1e4551b220f3f283953 Mon Sep 17 00:00:00 2001 From: Ram Lavi Date: Tue, 22 Jul 2025 11:02:08 +0300 Subject: [PATCH 2/4] networking: Add primaryUDN VM restart test w/ preconfigured MAC addr. Validates that KubeVirt VMs with preconfigured MAC addresses maintain those addresses correctly before and after restart operation. Signed-off-by: Ram Lavi --- test/extended/networking/kubevirt/template.go | 4 ++ test/extended/networking/livemigration.go | 49 +++++++++++++++++++ .../networking/network_segmentation.go | 1 + 3 files changed, 54 insertions(+) diff --git a/test/extended/networking/kubevirt/template.go b/test/extended/networking/kubevirt/template.go index 6e056b8fa1dc..3c668345c011 100644 --- a/test/extended/networking/kubevirt/template.go +++ b/test/extended/networking/kubevirt/template.go @@ -225,6 +225,9 @@ spec: - name: overlay binding: name: {{ .NetBindingName }} + {{- if .PreconfiguredMAC }} + macAddress: "{{ .PreconfiguredMAC }}" + {{- end }} machine: type: "" resources: @@ -269,6 +272,7 @@ type CreationTemplateParams struct { NetBindingName string NetworkName string PreconfiguredIP string + PreconfiguredMAC string } func renderVMTemplate(vmTemplateString string, params CreationTemplateParams) (string, error) { diff --git a/test/extended/networking/livemigration.go b/test/extended/networking/livemigration.go index 63f00698d688..76e113e20037 100644 --- a/test/extended/networking/livemigration.go +++ b/test/extended/networking/livemigration.go @@ -137,6 +137,9 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F vmCreationParams.PreconfiguredIP, err = formatAddressesAnnotation(workloadConfig.preconfiguredIPs) Expect(err).NotTo(HaveOccurred()) } + if workloadConfig.preconfiguredMAC != "" { + vmCreationParams.PreconfiguredMAC = workloadConfig.preconfiguredMAC + } Expect(virtClient.CreateVM(vmResource, vmCreationParams)).To(Succeed()) waitForVMReadiness(virtClient, vmCreationParams.VMNamespace, vmCreationParams.VMName) @@ -167,6 +170,10 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F Expect(initialAddresses).To(ContainElement(expectedIP), fmt.Sprintf("Expected IP %s not found in VM addresses %v", expectedIP, initialAddresses)) } } + if workloadConfig.preconfiguredMAC != "" { + By("Verifying VM received the preconfigured MAC address") + verifyVMMAC(virtClient, vmName, workloadConfig.preconfiguredMAC) + } httpServerPodsIPs := httpServerTestPodsMultusNetworkIPs(netConfig, httpServerPods) By(fmt.Sprintf("Check east/west traffic before test operation using IPs: %v", httpServerPodsIPs)) @@ -189,6 +196,10 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F ShouldNot(BeEmpty()) Expect(obtainedAddresses).To(ConsistOf(initialAddresses)) + if workloadConfig.preconfiguredMAC != "" { + By("Verifying VM MAC address persisted after test operation") + verifyVMMAC(virtClient, vmName, workloadConfig.preconfiguredMAC) + } By("Check east/west after test operation") checkEastWestTraffic(virtClient, vmName, httpServerPodsIPs) }, @@ -272,6 +283,20 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F preconfiguredIPs: []string{"203.203.0.50", "2014:100:200::50"}, }, ), + Entry( + "[OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured MAC attached to a primary UDN is restarted", + networkAttachmentConfigParams{ + name: nadName, + topology: "layer2", + role: "primary", + allowPersistentIPs: true, + }, + kubevirt.FedoraVMWithPreconfiguredPrimaryUDNAttachment, + restartVM, + workloadNetworkConfig{ + preconfiguredMAC: "02:0A:0B:0C:0D:50", + }, + ), ) }, Entry("NetworkAttachmentDefinitions", func(c networkAttachmentConfigParams) networkAttachmentConfig { @@ -459,6 +484,14 @@ func obtainAddresses(virtClient *kubevirt.Client, vmName string) ([]string, erro return addressFromStatus(virtClient, vmName) } +func obtainMAC(virtClient *kubevirt.Client, vmName string) (string, error) { + macStr, err := virtClient.GetJSONPath("vmi", vmName, "{@.status.interfaces[0].mac}") + if err != nil { + return "", fmt.Errorf("failed to extract the MAC address from VM %q: %w", vmName, err) + } + return strings.ToUpper(macStr), nil +} + func restartVM(cli *kubevirt.Client, vmNamespace, vmName string) { GinkgoHelper() By(fmt.Sprintf("Restarting vmi %s/%s", vmNamespace, vmName)) @@ -473,6 +506,22 @@ func migrateVM(cli *kubevirt.Client, vmNamespace, vmName string) { waitForVMIMSuccess(cli, vmNamespace, vmName) } +func verifyVMMAC(virtClient *kubevirt.Client, vmName, expectedMAC string) { + GinkgoHelper() + var actualMAC string + Eventually(func(g Gomega) string { + GinkgoHelper() + + var err error + actualMAC, err = obtainMAC(virtClient, vmName) + g.Expect(err).NotTo(HaveOccurred(), "Failed to obtain MAC address for VM") + return actualMAC + }). + WithPolling(time.Second). + WithTimeout(5 * time.Minute). + Should(Equal(expectedMAC)) +} + func waitForPodsCondition(fr *framework.Framework, pods []*corev1.Pod, conditionFn func(g Gomega, pod *corev1.Pod)) { for _, pod := range pods { Eventually(func(g Gomega) { diff --git a/test/extended/networking/network_segmentation.go b/test/extended/networking/network_segmentation.go index 0e36d7751140..95dad4521090 100644 --- a/test/extended/networking/network_segmentation.go +++ b/test/extended/networking/network_segmentation.go @@ -1893,6 +1893,7 @@ type networkAttachmentConfigParams struct { // workloadNetworkConfig contains workload-specific network customizations type workloadNetworkConfig struct { preconfiguredIPs []string + preconfiguredMAC string } type networkAttachmentConfig struct { From cd54e493b6af0e52471e79066b34c976a7c6df9e Mon Sep 17 00:00:00 2001 From: Ram Lavi Date: Tue, 22 Jul 2025 11:02:57 +0300 Subject: [PATCH 3/4] networking: Add primaryUDN VM LM test w/ preconfigured addr. Validates that KubeVirt VMs with preconfigured MAC and IP addresses maintain those addresses correctly before and after live migration operation. Signed-off-by: Ram Lavi --- test/extended/networking/livemigration.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/extended/networking/livemigration.go b/test/extended/networking/livemigration.go index 76e113e20037..3ff4e8d22335 100644 --- a/test/extended/networking/livemigration.go +++ b/test/extended/networking/livemigration.go @@ -297,6 +297,21 @@ var _ = Describe("[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][F preconfiguredMAC: "02:0A:0B:0C:0D:50", }, ), + Entry( + "[OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IP and MAC attached to a primary UDN is migrated between nodes", + networkAttachmentConfigParams{ + name: nadName, + topology: "layer2", + role: "primary", + allowPersistentIPs: true, + }, + kubevirt.FedoraVMWithPreconfiguredPrimaryUDNAttachment, + migrateVM, + workloadNetworkConfig{ + preconfiguredIPs: []string{"203.203.0.51", "2014:100:200::51"}, + preconfiguredMAC: "02:0A:0B:0C:0D:51", + }, + ), ) }, Entry("NetworkAttachmentDefinitions", func(c networkAttachmentConfigParams) networkAttachmentConfig { From b106650bff58997ed43816d4188b17a49033008b Mon Sep 17 00:00:00 2001 From: Miguel Duarte Barroso Date: Wed, 27 Aug 2025 13:07:02 +0100 Subject: [PATCH 4/4] networking, virt: run `make update` This updates the tests to be reported matrix. Signed-off-by: Miguel Duarte Barroso --- .../generated/zz_generated.annotations.go | 12 +++ zz_generated.manifests/test-reporting.yaml | 88 +++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/test/extended/util/annotate/generated/zz_generated.annotations.go b/test/extended/util/annotate/generated/zz_generated.annotations.go index 7670bb21bcae..dfcc9d8d81ad 100644 --- a/test/extended/util/annotate/generated/zz_generated.annotations.go +++ b/test/extended/util/annotate/generated/zz_generated.annotations.go @@ -1833,6 +1833,12 @@ var Annotations = map[string]string{ "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:NetworkSegmentation] when the VMI attached to a primary UDN is migrated between nodes": "", + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IP and MAC attached to a primary UDN is migrated between nodes": "", + + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IPs attached to a primary UDN is restarted": "", + + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured MAC attached to a primary UDN is restarted": "", + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip when the VM attached to a secondary UDN is migrated between nodes": "", "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip when the VM attached to a secondary UDN is restarted": "", @@ -1845,6 +1851,12 @@ var Annotations = map[string]string{ "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:NetworkSegmentation] when the VMI attached to a primary UDN is migrated between nodes": "", + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IP and MAC attached to a primary UDN is migrated between nodes": "", + + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured IPs attached to a primary UDN is restarted": "", + + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured MAC attached to a primary UDN is restarted": "", + "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip when the VM attached to a secondary UDN is migrated between nodes": "", "[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip when the VM attached to a secondary UDN is restarted": "", diff --git a/zz_generated.manifests/test-reporting.yaml b/zz_generated.manifests/test-reporting.yaml index d5d784571771..d656154b347a 100644 --- a/zz_generated.manifests/test-reporting.yaml +++ b/zz_generated.manifests/test-reporting.yaml @@ -960,6 +960,24 @@ spec: UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:NetworkSegmentation] when the VMI attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IP and MAC attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IPs attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + MAC attached to a primary UDN is restarted' - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] @@ -1037,6 +1055,22 @@ spec: networks and persistent ips configured created using NetworkAttachmentDefinitions [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:NetworkSegmentation] when the VMI attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured IP and MAC attached to a primary UDN is migrated + between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured IPs attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured MAC attached to a primary UDN is restarted' - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using NetworkAttachmentDefinitions @@ -1070,6 +1104,24 @@ spec: UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:NetworkSegmentation] when the VMI attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IP and MAC attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IPs attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + MAC attached to a primary UDN is restarted' - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] @@ -1117,6 +1169,42 @@ spec: [FeatureGate:PodObservedGenerationTracking] [Alpha] [Feature:OffByDefault] Pod Generation pod rejected by kubelet should have updated generation and observedGeneration' + - featureGate: PreconfiguredUDNAddresses + tests: + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured IP and MAC attached to a primary UDN is migrated + between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured IPs attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using NetworkAttachmentDefinitions + [Suite:openshift/network/virtualization] should keep ip [OCPFeatureGate:PreconfiguredUDNAddresses] + when the VM with preconfigured MAC attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IP and MAC attached to a primary UDN is migrated between nodes' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + IPs attached to a primary UDN is restarted' + - testName: '[sig-network][OCPFeatureGate:PersistentIPsForVirtualization][Feature:Layer2LiveMigration] + Kubevirt Virtual Machines when using openshift ovn-kubernetes with user defined + networks and persistent ips configured created using [OCPFeatureGate:NetworkSegmentation] + UserDefinedNetwork [Suite:openshift/network/virtualization] should keep ip + [OCPFeatureGate:PreconfiguredUDNAddresses] when the VM with preconfigured + MAC attached to a primary UDN is restarted' - featureGate: PreferSameTrafficDistribution tests: - testName: '[sig-network] Traffic Distribution should route traffic correctly