@@ -47,6 +47,18 @@ func makeProviderNetwork(providerNetworkName string, exchangeLinkName bool, link
47
47
return framework .MakeProviderNetwork (providerNetworkName , exchangeLinkName , defaultInterface , customInterfaces , nil )
48
48
}
49
49
50
+ func waitSubnetStatusUpdate (subnetName string , subnetClient * framework.SubnetClient , expectedUsingIPs float64 ) {
51
+ ginkgo .By ("Waiting for status of subnet " + subnetName + " to be updated" )
52
+ framework .WaitUntil (2 * time .Second , 30 * time .Second , func (_ context.Context ) (bool , error ) {
53
+ subnet := subnetClient .Get (subnetName )
54
+ if (subnet .Status .V4AvailableIPs != 0 && subnet .Status .V4UsingIPs != expectedUsingIPs ) ||
55
+ (subnet .Status .V6AvailableIPs != 0 && subnet .Status .V6UsingIPs != expectedUsingIPs ) {
56
+ return false , nil
57
+ }
58
+ return true , nil
59
+ }, "" )
60
+ }
61
+
50
62
var _ = framework .SerialDescribe ("[group:underlay]" , func () {
51
63
f := framework .NewDefaultFramework ("underlay" )
52
64
@@ -521,6 +533,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
521
533
args := []string {"netexec" , "--http-port" , strconv .Itoa (curlListenPort )}
522
534
originUnderlayPod := framework .MakePod (namespaceName , u2oPodNameUnderlay , nil , annotations , framework .AgnhostImage , nil , args )
523
535
underlayPod := podClient .CreateSync (originUnderlayPod )
536
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
524
537
525
538
ginkgo .By ("Creating overlay subnet " + u2oOverlaySubnetName )
526
539
cidr := framework .RandomCIDR (f .ClusterIpFamily )
@@ -552,6 +565,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
552
565
553
566
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
554
567
underlayPod = podClient .CreateSync (originUnderlayPod )
568
+ waitSubnetStatusUpdate (subnetName , subnetClient , 1 )
555
569
556
570
subnet = subnetClient .Get (subnetName )
557
571
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -569,6 +583,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
569
583
570
584
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
571
585
underlayPod = podClient .CreateSync (originUnderlayPod )
586
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
572
587
573
588
subnet = subnetClient .Get (subnetName )
574
589
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -596,6 +611,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
596
611
597
612
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
598
613
underlayPod = podClient .CreateSync (originUnderlayPod )
614
+ waitSubnetStatusUpdate (subnetName , subnetClient , 1 )
599
615
600
616
subnet = subnetClient .Get (subnetName )
601
617
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -613,6 +629,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
613
629
614
630
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
615
631
underlayPod = podClient .CreateSync (originUnderlayPod )
632
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
616
633
617
634
subnet = subnetClient .Get (subnetName )
618
635
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -654,6 +671,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
654
671
655
672
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
656
673
underlayPod = podClient .CreateSync (originUnderlayPod )
674
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
657
675
658
676
subnet = subnetClient .Get (subnetName )
659
677
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -694,6 +712,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
694
712
695
713
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
696
714
underlayPod = podClient .CreateSync (originUnderlayPod )
715
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
697
716
698
717
subnet = subnetClient .Get (subnetName )
699
718
checkU2OItems (f , subnet , underlayPod , podOverlayCustomVPC , true )
@@ -712,6 +731,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
712
731
713
732
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
714
733
underlayPod = podClient .CreateSync (originUnderlayPod )
734
+ waitSubnetStatusUpdate (subnetName , subnetClient , 2 )
715
735
716
736
subnet = subnetClient .Get (subnetName )
717
737
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
@@ -729,6 +749,7 @@ var _ = framework.SerialDescribe("[group:underlay]", func() {
729
749
730
750
ginkgo .By ("Creating underlay pod " + u2oPodNameUnderlay )
731
751
underlayPod = podClient .CreateSync (originUnderlayPod )
752
+ waitSubnetStatusUpdate (subnetName , subnetClient , 1 )
732
753
733
754
subnet = subnetClient .Get (subnetName )
734
755
checkU2OItems (f , subnet , underlayPod , overlayPod , false )
0 commit comments