From 56927913e2b227e1c5850cb6b3d83e1cbb0e4c4c Mon Sep 17 00:00:00 2001 From: bobz965 Date: Mon, 12 Jun 2023 09:41:44 +0800 Subject: [PATCH] make conformance with underlay pn vlan subnet has no gw (#2908) --- pkg/controller/external-gw.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pkg/controller/external-gw.go b/pkg/controller/external-gw.go index 50af8e6b383..fc6afe3da87 100644 --- a/pkg/controller/external-gw.go +++ b/pkg/controller/external-gw.go @@ -142,7 +142,17 @@ func (c *Controller) establishExternalGateway(config map[string]string) error { return err } var lrpIp, lrpMac string - if config["nic-ip"] == "" { + lrpName := fmt.Sprintf("%s-%s", c.config.ClusterRouter, c.config.ExternalGatewaySwitch) + lrp, err := c.ovnClient.GetLogicalRouterPort(lrpName, true) + if err != nil { + klog.Errorf("failed to get lrp %s, %v", lrpName, err) + return err + } + if lrp != nil { + klog.Infof("lrp %s already exist", lrpName) + lrpMac = lrp.MAC + lrpIp = lrp.Networks[0] + } else if config["nic-ip"] == "" { if lrpIp, lrpMac, err = c.createDefaultVpcLrpEip(config); err != nil { klog.Errorf("failed to create ovn eip for default vpc lrp: %v", err) return err @@ -151,16 +161,6 @@ func (c *Controller) establishExternalGateway(config map[string]string) error { lrpIp = config["nic-ip"] lrpMac = config["nic-mac"] } - lrpName := fmt.Sprintf("%s-%s", c.config.ClusterRouter, c.config.ExternalGatewaySwitch) - exist, err := c.ovnClient.LogicalRouterPortExists(lrpName) - if err != nil { - return err - } - if exist { - klog.Infof("lrp %s exist", lrpName) - return nil - } - if err := c.ovnClient.CreateGatewayLogicalSwitch(c.config.ExternalGatewaySwitch, c.config.ClusterRouter, c.config.ExternalGatewayNet, lrpIp, lrpMac, c.config.ExternalGatewayVlanID, chassises...); err != nil { klog.Errorf("create external gateway switch %s: %v", c.config.ExternalGatewaySwitch, err) return err