Skip to content

Commit 0473203

Browse files
committed
[gateway] pass gateway args for all controllers using GatewayConfig.
It is much easier to track how each parameter is used and set, removes 3 different names for the same thing problem. Add ovnClusterLRPToJoinIfAddrs to the GatewayConfig. Signed-off-by: Nadia Pinaeva <[email protected]>
1 parent e427103 commit 0473203

File tree

6 files changed

+203
-190
lines changed

6 files changed

+203
-190
lines changed

go-controller/pkg/ovn/gateway.go

Lines changed: 22 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -803,11 +803,7 @@ func (gw *GatewayManager) updateGWRouterNAT(nodeName string, clusterIPSubnet []*
803803
// enableGatewayMTU enables options:gateway_mtu for gateway routers.
804804
func (gw *GatewayManager) gatewayInit(
805805
nodeName string,
806-
clusterIPSubnet []*net.IPNet,
807-
hostSubnets []*net.IPNet,
808-
l3GatewayConfig *util.L3GatewayConfig,
809-
gwLRPJoinIPs, drLRPIfAddrs []*net.IPNet,
810-
externalIPs []net.IP,
806+
gwConfig *GatewayConfig,
811807
enableGatewayMTU bool,
812808
) error {
813809

@@ -837,7 +833,7 @@ func (gw *GatewayManager) gatewayInit(
837833
}
838834
}
839835

840-
gwRouter, err := gw.createGWRouter(l3GatewayConfig, gwLRPJoinIPs)
836+
gwRouter, err := gw.createGWRouter(gwConfig.config, gwConfig.gwLRPJoinIPs)
841837
if err != nil {
842838
return err
843839
}
@@ -846,28 +842,28 @@ func (gw *GatewayManager) gatewayInit(
846842
return err
847843
}
848844

849-
gwLRPIPs, err := gw.createGWRouterPort(hostSubnets, gwLRPJoinIPs, enableGatewayMTU, gwRouter)
845+
gwLRPIPs, err := gw.createGWRouterPort(gwConfig.hostSubnets, gwConfig.gwLRPJoinIPs, enableGatewayMTU, gwRouter)
850846
if err != nil {
851847
return err
852848
}
853849

854850
if err := gw.addExternalSwitch("",
855-
l3GatewayConfig.InterfaceID,
851+
gwConfig.config.InterfaceID,
856852
gw.gwRouterName,
857-
l3GatewayConfig.MACAddress.String(),
853+
gwConfig.config.MACAddress.String(),
858854
physNetName(gw.netInfo),
859-
l3GatewayConfig.IPAddresses,
860-
l3GatewayConfig.VLANID); err != nil {
855+
gwConfig.config.IPAddresses,
856+
gwConfig.config.VLANID); err != nil {
861857
return err
862858
}
863859

864-
if l3GatewayConfig.EgressGWInterfaceID != "" {
860+
if gwConfig.config.EgressGWInterfaceID != "" {
865861
if err := gw.addExternalSwitch(types.EgressGWSwitchPrefix,
866-
l3GatewayConfig.EgressGWInterfaceID,
862+
gwConfig.config.EgressGWInterfaceID,
867863
gw.gwRouterName,
868-
l3GatewayConfig.EgressGWMACAddress.String(),
864+
gwConfig.config.EgressGWMACAddress.String(),
869865
types.PhysicalNetworkExGwName,
870-
l3GatewayConfig.EgressGWIPAddresses,
866+
gwConfig.config.EgressGWIPAddresses,
871867
nil); err != nil {
872868
return err
873869
}
@@ -883,20 +879,20 @@ func (gw *GatewayManager) gatewayInit(
883879
}
884880

885881
externalRouterPort := types.GWRouterToExtSwitchPrefix + gw.gwRouterName
886-
if err = gw.updateGWRouterStaticRoutes(clusterIPSubnet, drLRPIfAddrs, l3GatewayConfig, externalRouterPort,
882+
if err = gw.updateGWRouterStaticRoutes(gwConfig.clusterSubnets, gwConfig.ovnClusterLRPToJoinIfAddrs, gwConfig.config, externalRouterPort,
887883
gwRouter); err != nil {
888884
return err
889885
}
890886

891-
if err = gw.updateClusterRouterStaticRoutes(hostSubnets, gwLRPIPs); err != nil {
887+
if err = gw.updateClusterRouterStaticRoutes(gwConfig.hostSubnets, gwLRPIPs); err != nil {
892888
return err
893889
}
894890

895-
if err = gw.syncNATsForGRIPChange(externalIPs, oldExtIPs, gwLRPIPs, gwRouter, oldLogicalRouter); err != nil {
891+
if err = gw.syncNATsForGRIPChange(gwConfig.externalIPs, oldExtIPs, gwLRPIPs, gwRouter, oldLogicalRouter); err != nil {
896892
return err
897893
}
898894

899-
if err = gw.updateGWRouterNAT(nodeName, clusterIPSubnet, l3GatewayConfig, externalIPs, gwLRPIPs, gwRouter); err != nil {
895+
if err = gw.updateGWRouterNAT(nodeName, gwConfig.clusterSubnets, gwConfig.config, gwConfig.externalIPs, gwLRPIPs, gwRouter); err != nil {
900896
return err
901897
}
902898

@@ -1333,33 +1329,23 @@ func (gw *GatewayManager) isRoutingAdvertised(node string) bool {
13331329
// SyncGateway ensures a node's gateway router is configured according to the L3 config and host subnets
13341330
func (gw *GatewayManager) SyncGateway(
13351331
node *corev1.Node,
1336-
l3GatewayConfig *util.L3GatewayConfig,
1337-
hostSubnets []*net.IPNet,
1338-
hostAddrs []string,
1339-
clusterSubnets, grLRPJoinIPs []*net.IPNet,
1340-
ovnClusterLRPToJoinIfAddrs []*net.IPNet,
1341-
externalIPs []net.IP,
1332+
gwConfig *GatewayConfig,
13421333
) error {
1343-
if l3GatewayConfig.Mode == config.GatewayModeDisabled {
1334+
if gwConfig.config.Mode == config.GatewayModeDisabled {
13441335
if err := gw.Cleanup(); err != nil {
13451336
return fmt.Errorf("error cleaning up gateway for node %s: %v", node.Name, err)
13461337
}
13471338
return nil
13481339
}
1349-
if hostSubnets == nil {
1340+
if gwConfig.hostSubnets == nil {
13501341
return nil
13511342
}
13521343

13531344
enableGatewayMTU := util.ParseNodeGatewayMTUSupport(node)
13541345

13551346
err := gw.gatewayInit(
13561347
node.Name,
1357-
clusterSubnets,
1358-
hostSubnets,
1359-
l3GatewayConfig,
1360-
grLRPJoinIPs, // the joinIP allocated to this node's GR for this controller's network
1361-
ovnClusterLRPToJoinIfAddrs,
1362-
externalIPs,
1348+
gwConfig,
13631349
enableGatewayMTU,
13641350
)
13651351
if err != nil {
@@ -1370,16 +1356,16 @@ func (gw *GatewayManager) SyncGateway(
13701356
if gw.clusterRouterName == "" {
13711357
routerName = gw.gwRouterName
13721358
}
1373-
for _, subnet := range hostSubnets {
1359+
for _, subnet := range gwConfig.hostSubnets {
13741360
mgmtIfAddr := util.GetNodeManagementIfAddr(subnet)
13751361
if mgmtIfAddr == nil {
13761362
return fmt.Errorf("management interface address not found for subnet %q on network %q", subnet, gw.netInfo.GetNetworkName())
13771363
}
1378-
l3GatewayConfigIP, err := util.MatchFirstIPNetFamily(utilnet.IsIPv6(mgmtIfAddr.IP), l3GatewayConfig.IPAddresses)
1364+
l3GatewayConfigIP, err := util.MatchFirstIPNetFamily(utilnet.IsIPv6(mgmtIfAddr.IP), gwConfig.config.IPAddresses)
13791365
if err != nil {
13801366
return fmt.Errorf("failed to extract the gateway IP addr for network %q: %v", gw.netInfo.GetNetworkName(), err)
13811367
}
1382-
relevantHostIPs, err := util.MatchAllIPStringFamily(utilnet.IsIPv6(mgmtIfAddr.IP), hostAddrs)
1368+
relevantHostIPs, err := util.MatchAllIPStringFamily(utilnet.IsIPv6(mgmtIfAddr.IP), gwConfig.hostAddrs)
13831369
if err != nil && err != util.ErrorNoIP {
13841370
return fmt.Errorf("failed to extract the host IP addrs for network %q: %v", gw.netInfo.GetNetworkName(), err)
13851371
}

0 commit comments

Comments
 (0)