Skip to content

Commit 0e565af

Browse files
committed
Fix unit test: egressIP.
Interconnect resources (trasit switch-related ports and remote static routes) were not created before because node-id annotation wasn't set, and interconnect handler was simply failing. Now when node-id is set for GW router IP allocation, the resources are successfully created. Signed-off-by: Nadia Pinaeva <[email protected]>
1 parent 04cc24f commit 0e565af

File tree

1 file changed

+198
-10
lines changed

1 file changed

+198
-10
lines changed

go-controller/pkg/ovn/egressip_udn_l3_test.go

Lines changed: 198 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
3636
app *cli.App
3737
fakeOvn *FakeOVN
3838

39-
nodeUDNLogicalRouterIPv4 = []string{"100.65.0.2"}
39+
nodeUDNLogicalRouterIPv4 = []string{"100.65.0.2"}
40+
node2UDNLogicalRouterIPv4 = []string{"100.65.0.3"}
4041
)
4142

4243
const (
@@ -1353,20 +1354,53 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
13531354
Type: nbdb.NATTypeSNAT,
13541355
Options: map[string]string{"stateless": "false"},
13551356
},
1357+
&nbdb.LogicalRouterStaticRoute{
1358+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
1359+
ExternalIDs: map[string]string{
1360+
"ic-node": node2.Name,
1361+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
1362+
},
1363+
IPPrefix: v4Node2Net1,
1364+
Nexthop: v4Node2Tsp,
1365+
},
1366+
&nbdb.LogicalRouterStaticRoute{
1367+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
1368+
ExternalIDs: map[string]string{
1369+
"ic-node": node2.Name,
1370+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
1371+
},
1372+
IPPrefix: node2UDNLogicalRouterIPv4[0] + "/32",
1373+
Nexthop: v4Node2Tsp,
1374+
},
1375+
&nbdb.LogicalRouterPort{
1376+
UUID: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID",
1377+
MAC: util.IPAddrToHWAddr(net.ParseIP(v4Node1Tsp)).String(),
1378+
Name: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
1379+
Networks: []string{v4Node1Tsp + "/16"},
1380+
Options: map[string]string{
1381+
"mcast_flood": "true",
1382+
},
1383+
},
13561384
&nbdb.LogicalRouter{
13571385
Name: netInfo.GetNetworkScopedClusterRouterName(),
13581386
UUID: netInfo.GetNetworkScopedClusterRouterName() + "-UUID",
13591387
ExternalIDs: map[string]string{ovntypes.NetworkExternalID: netInfo.GetNetworkName(), ovntypes.TopologyExternalID: ovntypes.Layer3Topology},
13601388
Policies: []string{"udn-default-no-reroute-node-UUID", "udn-default-no-reroute-UUID", "udn-no-reroute-service-UUID", "udn-enabled-svc-no-reroute-UUID",
13611389
fmt.Sprintf("%s-no-reroute-reply-traffic", netInfo.GetNetworkName()),
13621390
getReRoutePolicyUUID(eipNamespace2, podName2, IPFamilyValueV4, netInfo.GetNetworkName())},
1363-
StaticRoutes: []string{fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName())},
1364-
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
1391+
StaticRoutes: []string{
1392+
fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName()),
1393+
fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
1394+
fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
1395+
},
1396+
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
1397+
Ports: []string{netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID"},
13651398
},
13661399
&nbdb.LogicalRouter{
1367-
UUID: netInfo.GetNetworkScopedGWRouterName(node1.Name) + "-UUID",
1368-
Name: netInfo.GetNetworkScopedGWRouterName(node1.Name),
1369-
Ports: []string{ovntypes.GWRouterToJoinSwitchPrefix + ovntypes.GWRouterPrefix + networkName1_ + node1.Name + "-UUID"},
1400+
UUID: netInfo.GetNetworkScopedGWRouterName(node1.Name) + "-UUID",
1401+
Name: netInfo.GetNetworkScopedGWRouterName(node1.Name),
1402+
Ports: []string{
1403+
ovntypes.GWRouterToJoinSwitchPrefix + ovntypes.GWRouterPrefix + networkName1_ + node1.Name + "-UUID"},
13701404
ExternalIDs: map[string]string{ovntypes.NetworkExternalID: netInfo.GetNetworkName(), ovntypes.TopologyExternalID: ovntypes.Layer3Topology},
13711405
Policies: []string{getGWPktMarkLRPUUID(eipNamespace2, podName2, IPFamilyValueV4, netInfo.GetNetworkName()),
13721406
getGWPktMarkLRPUUID(eipNamespace2, podName4, IPFamilyValueV4, netInfo.GetNetworkName())},
@@ -1411,6 +1445,32 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
14111445
},
14121446
ACLs: []string{netInfo.GetNetworkScopedSwitchName(node1.Name) + "-NetpolNode-UUID"},
14131447
},
1448+
&nbdb.LogicalSwitchPort{
1449+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
1450+
Addresses: []string{"router"},
1451+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node1.Name),
1452+
ExternalIDs: map[string]string{
1453+
"node": node1.Name,
1454+
},
1455+
Options: map[string]string{
1456+
libovsdbops.RouterPort: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
1457+
libovsdbops.RequestedTnlKey: node1.Annotations[util.OvnNodeID],
1458+
},
1459+
Type: "router",
1460+
},
1461+
&nbdb.LogicalSwitchPort{
1462+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
1463+
Addresses: []string{util.IPAddrToHWAddr(net.ParseIP(v4Node2Tsp)).String() + " " + v4Node2Tsp + "/16"},
1464+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node2.Name),
1465+
ExternalIDs: map[string]string{
1466+
"node": node2.Name,
1467+
},
1468+
Options: map[string]string{
1469+
libovsdbops.RequestedChassis: node2.Name,
1470+
libovsdbops.RequestedTnlKey: node2.Annotations[util.OvnNodeID],
1471+
},
1472+
Type: "remote",
1473+
},
14141474
&nbdb.LogicalSwitch{
14151475
UUID: netInfo.GetNetworkScopedSwitchName(node1.Name) + "TRANSIT-UUID",
14161476
Name: networkName1_ + ovntypes.TransitSwitch,
@@ -1425,6 +1485,10 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
14251485
"interconn-ts": networkName1_ + ovntypes.TransitSwitch,
14261486
libovsdbops.RequestedTnlKey: tnlKey,
14271487
},
1488+
Ports: []string{
1489+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
1490+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
1491+
},
14281492
},
14291493
getNoReRouteReplyTrafficPolicyForController(netInfo.GetNetworkName(), DefaultNetworkControllerName),
14301494
getDefaultQoSRule(false, netInfo.GetNetworkName(), DefaultNetworkControllerName),
@@ -1542,15 +1606,47 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
15421606
Type: nbdb.NATTypeSNAT,
15431607
Options: map[string]string{"stateless": "false"},
15441608
},
1609+
&nbdb.LogicalRouterStaticRoute{
1610+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
1611+
ExternalIDs: map[string]string{
1612+
"ic-node": node2.Name,
1613+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
1614+
},
1615+
IPPrefix: v4Node2Net1,
1616+
Nexthop: v4Node2Tsp,
1617+
},
1618+
&nbdb.LogicalRouterStaticRoute{
1619+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
1620+
ExternalIDs: map[string]string{
1621+
"ic-node": node2.Name,
1622+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
1623+
},
1624+
IPPrefix: node2UDNLogicalRouterIPv4[0] + "/32",
1625+
Nexthop: v4Node2Tsp,
1626+
},
1627+
&nbdb.LogicalRouterPort{
1628+
UUID: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID",
1629+
MAC: util.IPAddrToHWAddr(net.ParseIP(v4Node1Tsp)).String(),
1630+
Name: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
1631+
Networks: []string{v4Node1Tsp + "/16"},
1632+
Options: map[string]string{
1633+
"mcast_flood": "true",
1634+
},
1635+
},
15451636
&nbdb.LogicalRouter{
15461637
Name: netInfo.GetNetworkScopedClusterRouterName(),
15471638
UUID: netInfo.GetNetworkScopedClusterRouterName() + "-UUID",
15481639
ExternalIDs: map[string]string{ovntypes.NetworkExternalID: secConInfo.bnc.GetNetworkName(), ovntypes.TopologyExternalID: ovntypes.Layer3Topology},
15491640
Policies: []string{"udn-default-no-reroute-node-UUID", "udn-default-no-reroute-UUID", "udn-no-reroute-service-UUID", "udn-enabled-svc-no-reroute-UUID",
15501641
fmt.Sprintf("%s-no-reroute-reply-traffic", netInfo.GetNetworkName()),
15511642
},
1552-
StaticRoutes: []string{fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName())},
1553-
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
1643+
StaticRoutes: []string{
1644+
fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName()),
1645+
fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
1646+
fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
1647+
},
1648+
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
1649+
Ports: []string{netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID"},
15541650
},
15551651
&nbdb.LogicalRouter{
15561652
UUID: netInfo.GetNetworkScopedGWRouterName(node1.Name) + "-UUID",
@@ -1598,6 +1694,32 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
15981694
},
15991695
ACLs: []string{netInfo.GetNetworkScopedSwitchName(node1.Name) + "-NetpolNode-UUID"},
16001696
},
1697+
&nbdb.LogicalSwitchPort{
1698+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
1699+
Addresses: []string{"router"},
1700+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node1.Name),
1701+
ExternalIDs: map[string]string{
1702+
"node": node1.Name,
1703+
},
1704+
Options: map[string]string{
1705+
libovsdbops.RouterPort: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
1706+
libovsdbops.RequestedTnlKey: node1.Annotations[util.OvnNodeID],
1707+
},
1708+
Type: "router",
1709+
},
1710+
&nbdb.LogicalSwitchPort{
1711+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
1712+
Addresses: []string{util.IPAddrToHWAddr(net.ParseIP(v4Node2Tsp)).String() + " " + v4Node2Tsp + "/16"},
1713+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node2.Name),
1714+
ExternalIDs: map[string]string{
1715+
"node": node2.Name,
1716+
},
1717+
Options: map[string]string{
1718+
libovsdbops.RequestedChassis: node2.Name,
1719+
libovsdbops.RequestedTnlKey: node2.Annotations[util.OvnNodeID],
1720+
},
1721+
Type: "remote",
1722+
},
16011723
&nbdb.LogicalSwitch{
16021724
UUID: netInfo.GetNetworkScopedSwitchName(node1.Name) + "TRANSIT-UUID",
16031725
Name: networkName1_ + ovntypes.TransitSwitch,
@@ -1612,6 +1734,10 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
16121734
"interconn-ts": networkName1_ + ovntypes.TransitSwitch,
16131735
libovsdbops.RequestedTnlKey: tnlKey,
16141736
},
1737+
Ports: []string{
1738+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
1739+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
1740+
},
16151741
},
16161742
getNoReRouteReplyTrafficPolicyForController(netInfo.GetNetworkName(), DefaultNetworkControllerName),
16171743
getDefaultQoSRule(false, netInfo.GetNetworkName(), DefaultNetworkControllerName),
@@ -2703,15 +2829,47 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
27032829
Type: nbdb.NATTypeSNAT,
27042830
Options: map[string]string{"stateless": "false"},
27052831
},
2832+
&nbdb.LogicalRouterStaticRoute{
2833+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
2834+
ExternalIDs: map[string]string{
2835+
"ic-node": node2.Name,
2836+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
2837+
},
2838+
IPPrefix: v4Node2Net1,
2839+
Nexthop: v4Node2Tsp,
2840+
},
2841+
&nbdb.LogicalRouterStaticRoute{
2842+
UUID: fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
2843+
ExternalIDs: map[string]string{
2844+
"ic-node": node2.Name,
2845+
ovntypes.NetworkExternalID: netInfo.GetNetworkName(),
2846+
},
2847+
IPPrefix: node2UDNLogicalRouterIPv4[0] + "/32",
2848+
Nexthop: v4Node2Tsp,
2849+
},
2850+
&nbdb.LogicalRouterPort{
2851+
UUID: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID",
2852+
MAC: util.IPAddrToHWAddr(net.ParseIP(v4Node1Tsp)).String(),
2853+
Name: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
2854+
Networks: []string{v4Node1Tsp + "/16"},
2855+
Options: map[string]string{
2856+
"mcast_flood": "true",
2857+
},
2858+
},
27062859
&nbdb.LogicalRouter{
27072860
Name: netInfo.GetNetworkScopedClusterRouterName(),
27082861
UUID: netInfo.GetNetworkScopedClusterRouterName() + "-UUID",
27092862
ExternalIDs: map[string]string{ovntypes.NetworkExternalID: netInfo.GetNetworkName(), ovntypes.TopologyExternalID: ovntypes.Layer3Topology},
27102863
Policies: []string{"udn-default-no-reroute-node-UUID", "udn-default-no-reroute-UUID", "udn-no-reroute-service-UUID", "udn-enabled-svc-no-reroute-UUID",
27112864
fmt.Sprintf("%s-no-reroute-reply-traffic", netInfo.GetNetworkName()),
27122865
getReRoutePolicyUUID(eipNamespace2, podName2, IPFamilyValueV4, netInfo.GetNetworkName())},
2713-
StaticRoutes: []string{fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName())},
2714-
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
2866+
StaticRoutes: []string{
2867+
fmt.Sprintf("%s-reroute-static-route-UUID", netInfo.GetNetworkName()),
2868+
fmt.Sprintf("static-route-%s-%s-UUID", v4Node2Net1, v4Node2Tsp),
2869+
fmt.Sprintf("static-route-%s-%s-UUID", node2UDNLogicalRouterIPv4[0], v4Node2Tsp),
2870+
},
2871+
Nat: []string{networkName1_ + node1Name + "-masqueradeNAT-UUID"},
2872+
Ports: []string{netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix+node1.Name) + "-UUID"},
27152873
},
27162874
&nbdb.LogicalRouter{
27172875
UUID: netInfo.GetNetworkScopedGWRouterName(node1.Name) + "-UUID",
@@ -2761,6 +2919,32 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
27612919
},
27622920
ACLs: []string{netInfo.GetNetworkScopedSwitchName(node1.Name) + "-NetpolNode-UUID"},
27632921
},
2922+
&nbdb.LogicalSwitchPort{
2923+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
2924+
Addresses: []string{"router"},
2925+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node1.Name),
2926+
ExternalIDs: map[string]string{
2927+
"node": node1.Name,
2928+
},
2929+
Options: map[string]string{
2930+
libovsdbops.RouterPort: netInfo.GetNetworkScopedName(ovntypes.RouterToTransitSwitchPrefix + node1.Name),
2931+
libovsdbops.RequestedTnlKey: node1.Annotations[util.OvnNodeID],
2932+
},
2933+
Type: "router",
2934+
},
2935+
&nbdb.LogicalSwitchPort{
2936+
UUID: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
2937+
Addresses: []string{util.IPAddrToHWAddr(net.ParseIP(v4Node2Tsp)).String() + " " + v4Node2Tsp + "/16"},
2938+
Name: netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix + node2.Name),
2939+
ExternalIDs: map[string]string{
2940+
"node": node2.Name,
2941+
},
2942+
Options: map[string]string{
2943+
libovsdbops.RequestedChassis: node2.Name,
2944+
libovsdbops.RequestedTnlKey: node2.Annotations[util.OvnNodeID],
2945+
},
2946+
Type: "remote",
2947+
},
27642948
&nbdb.LogicalSwitch{
27652949
UUID: netInfo.GetNetworkScopedSwitchName(node1.Name) + "TRANSIT-UUID",
27662950
Name: networkName1_ + ovntypes.TransitSwitch,
@@ -2776,6 +2960,10 @@ var _ = ginkgo.Describe("EgressIP Operations for user defined network with topol
27762960
"interconn-ts": networkName1_ + ovntypes.TransitSwitch,
27772961
libovsdbops.RequestedTnlKey: tnlKey,
27782962
},
2963+
Ports: []string{
2964+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node1.Name) + "-UUID",
2965+
netInfo.GetNetworkScopedName(ovntypes.TransitSwitchToRouterPrefix+node2.Name) + "-UUID",
2966+
},
27792967
},
27802968
getNoReRouteReplyTrafficPolicyForController(netInfo.GetNetworkName(), DefaultNetworkControllerName),
27812969
getDefaultQoSRule(false, netInfo.GetNetworkName(), DefaultNetworkControllerName),

0 commit comments

Comments
 (0)