@@ -209,7 +209,7 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
209
209
210
210
numberOfRequestsToSend := 10
211
211
g .By (fmt .Sprintf ("Sending requests from prober and making sure that %d requests with search string and PodIP %v were seen" , numberOfRequestsToSend , v4PodIPSet ))
212
-
212
+ svcUrl := fmt . Sprintf ( "%s-0-service.%s.svc.cluster.local:%d" , targetNamespace , targetNamespace , serverPort )
213
213
if clusterIPFamily == DualStack || clusterIPFamily == IPv4 {
214
214
g .By ("sending to IPv4 external host" )
215
215
spawnProberSendEgressIPTrafficCheckLogs (oc , snifferNamespace , probePodName , svcUrl , targetProtocol , v4ExternalIP , serverPort , numberOfRequestsToSend , numberOfRequestsToSend , packetSnifferDaemonSet , v4PodIPSet )
@@ -242,12 +242,29 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
242
242
})
243
243
})
244
244
245
- g . Context ( "[PodNetwork] Advertising a cluster user defined network [apigroup:user.openshift.io][apigroup:security.openshift.io]" , func () {
245
+ verifyUdnRaFunc := func (udnTopology string ) {
246
246
var cleanup func ()
247
247
g .BeforeEach (func () {
248
248
var err error
249
+ var snifferPodsNodes []string
250
+ // Check if the cluster is in local gateway mode
251
+ network , err := oc .AdminOperatorClient ().OperatorV1 ().Networks ().Get (context .TODO (), "cluster" , metav1.GetOptions {})
252
+ o .Expect (err ).NotTo (o .HaveOccurred ())
253
+ if network .Spec .DefaultNetwork .OVNKubernetesConfig .GatewayConfig != nil && network .Spec .DefaultNetwork .OVNKubernetesConfig .GatewayConfig .RoutingViaHost && udnTopology == "layer2" {
254
+ skipper .Skipf ("Skipping Layer2 UDN advertisements test for local gateway mode" )
255
+ }
256
+ if udnTopology == "layer2" {
257
+ // Running the packet sniffer on all nodes in the cluster for Layer2 UDN
258
+ nodes , err := clientset .CoreV1 ().Nodes ().List (context .TODO (), metav1.ListOptions {})
259
+ o .Expect (err ).NotTo (o .HaveOccurred ())
260
+ for _ , node := range nodes .Items {
261
+ snifferPodsNodes = append (snifferPodsNodes , node .Name )
262
+ }
263
+ } else {
264
+ snifferPodsNodes = advertisedPodsNodes
265
+ }
249
266
g .By ("Setup packet sniffer at nodes" )
250
- packetSnifferDaemonSet , err = setupPacketSniffer (oc , clientset , snifferNamespace , advertisedPodsNodes , networkPlugin )
267
+ packetSnifferDaemonSet , err = setupPacketSniffer (oc , clientset , snifferNamespace , snifferPodsNodes , networkPlugin )
251
268
o .Expect (err ).NotTo (o .HaveOccurred ())
252
269
253
270
g .By ("Create a namespace with UDPN" )
@@ -261,12 +278,12 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
261
278
targetNamespace = ns .Name
262
279
f .Namespace = ns
263
280
// use a long cudn (longer than 15 characters) name to work around OCPBUGS-54659
264
- cudnName = "clusteruserdefinenetwork" + ns .Name
281
+ cudnName = "clusteruserdefinenetwork- " + ns .Name
265
282
266
283
g .By ("Creating a cluster user defined network" )
267
284
nc := & networkAttachmentConfigParams {
268
285
name : cudnName ,
269
- topology : "layer3" ,
286
+ topology : udnTopology ,
270
287
role : "primary" ,
271
288
namespace : targetNamespace ,
272
289
}
@@ -356,6 +373,14 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
356
373
}
357
374
}
358
375
})
376
+ }
377
+
378
+ g .Context ("[PodNetwork] Advertising a Layer 3 cluster user defined network [apigroup:user.openshift.io][apigroup:security.openshift.io]" , func () {
379
+ verifyUdnRaFunc ("layer3" )
380
+ })
381
+
382
+ g .Context ("[PodNetwork] Advertising a Layer 2 cluster user defined network [apigroup:user.openshift.io][apigroup:security.openshift.io]" , func () {
383
+ verifyUdnRaFunc ("layer2" )
359
384
})
360
385
361
386
g .Context ("[EgressIP][apigroup:user.openshift.io][apigroup:security.openshift.io]" , func () {
@@ -500,7 +525,7 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
500
525
)
501
526
})
502
527
503
- g . Context ( "Advertising egressIP for user defined network" , func () {
528
+ verifyEIPForUDN := func (udnTopology string ) {
504
529
var cleanup func ()
505
530
g .BeforeEach (func () {
506
531
g .By ("Create a namespace with UDPN" )
@@ -519,7 +544,7 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
519
544
g .By ("Creating a cluster user defined network" )
520
545
nc := & networkAttachmentConfigParams {
521
546
name : cudnName ,
522
- topology : "layer3" ,
547
+ topology : udnTopology ,
523
548
role : "primary" ,
524
549
namespace : targetNamespace ,
525
550
}
@@ -628,7 +653,13 @@ var _ = g.Describe("[sig-network][OCPFeatureGate:RouteAdvertisements][Feature:Ro
628
653
g .Entry ("IPv4" , IPv4 , v4ExternalIP ),
629
654
g .Entry ("IPv6" , IPv6 , v6ExternalIP ),
630
655
)
656
+ }
657
+
658
+ g .Context ("Advertising egressIP for layer 3 user defined network" , func () {
659
+ verifyEIPForUDN ("layer3" )
631
660
})
661
+
662
+ // [TODO] Add test for layer 2 UDN once OCPBUGS-55157 is fixed.
632
663
})
633
664
})
634
665
})
@@ -999,6 +1030,7 @@ func checkExternalResponse(oc *exutil.CLI, proberPod *corev1.Pod, podIP, Externa
999
1030
lastErr = fmt .Errorf ("no responses received" )
1000
1031
return false
1001
1032
}
1033
+ framework .Logf ("resp: %s prober IP: %s" , resp .Responses [0 ], ExternalIP )
1002
1034
1003
1035
if ! strings .Contains (resp .Responses [0 ], ExternalIP ) {
1004
1036
lastErr = fmt .Errorf ("response does not contain external IP %s" , ExternalIP )
0 commit comments