From 1e8e38288c9accd275ab65168ec82d82962c0606 Mon Sep 17 00:00:00 2001
From: gugu <404200721@qq.com>
Date: Fri, 7 Apr 2023 12:59:05 +0800
Subject: [PATCH] replace port_group function call with ovnClient (#2608)
Co-authored-by: liguo
---
pkg/controller/gc.go | 31 +++--
pkg/controller/network_policy.go | 38 +++---
pkg/controller/node.go | 76 +++---------
pkg/controller/pod.go | 1 -
pkg/controller/security_group.go | 35 ++++--
pkg/controller/subnet.go | 71 +++--------
pkg/ovs/ovn-nbctl-legacy.go | 197 -------------------------------
7 files changed, 105 insertions(+), 344 deletions(-)
diff --git a/pkg/controller/gc.go b/pkg/controller/gc.go
index 7c795387286..d93ae1dfc36 100644
--- a/pkg/controller/gc.go
+++ b/pkg/controller/gc.go
@@ -546,7 +546,9 @@ func (c *Controller) gcLoadBalancer() error {
func (c *Controller) gcPortGroup() error {
klog.Infof("start to gc network policy")
- var npNames []string
+
+ npNames := make(map[string]struct{})
+
if c.config.EnableNP {
nps, err := c.npsLister.List(labels.Everything())
if err != nil {
@@ -554,18 +556,19 @@ func (c *Controller) gcPortGroup() error {
return err
}
- npNames = make([]string, 0, len(nps))
for _, np := range nps {
- npNames = append(npNames, fmt.Sprintf("%s/%s", np.Namespace, np.Name))
+ npNames[fmt.Sprintf("%s/%s", np.Namespace, np.Name)] = struct{}{}
}
+
// append node port group to npNames to avoid gc node port group
nodes, err := c.nodesLister.List(labels.Everything())
if err != nil {
klog.Errorf("failed to list nodes, %v", err)
return err
}
+
for _, node := range nodes {
- npNames = append(npNames, fmt.Sprintf("%s/%s", "node", node.Name))
+ npNames[fmt.Sprintf("%s/%s", "node", node.Name)] = struct{}{}
}
// append overlay subnets port group to npNames to avoid gc distributed subnets port group
@@ -578,22 +581,30 @@ func (c *Controller) gcPortGroup() error {
if subnet.Spec.Vpc != util.DefaultVpc || (subnet.Spec.Vlan != "" && !subnet.Spec.LogicalGateway) || subnet.Name == c.config.NodeSwitch || subnet.Spec.GatewayType != kubeovnv1.GWDistributedType {
continue
}
+
for _, node := range nodes {
- npNames = append(npNames, fmt.Sprintf("%s/%s", subnet.Name, node.Name))
+ npNames[fmt.Sprintf("%s/%s", subnet.Name, node.Name)] = struct{}{}
}
}
}
- pgs, err := c.ovnLegacyClient.ListNpPortGroup()
+ // list all np port groups which externalIDs[np]!=""
+ pgs, err := c.ovnClient.ListPortGroups(map[string]string{networkPolicyKey: ""})
if err != nil {
- klog.Errorf("failed to list port-group, %v", err)
+ klog.Errorf("list np port group: %v", err)
return err
}
+
for _, pg := range pgs {
- if !c.config.EnableNP || !util.IsStringIn(fmt.Sprintf("%s/%s", pg.NpNamespace, pg.NpName), npNames) {
+ np := strings.Split(pg.ExternalIDs[networkPolicyKey], "/")
+ npNamespace := np[0]
+ npName := np[1]
+
+ if _, ok := npNames[fmt.Sprintf("%s/%s", npNamespace, npName)]; !c.config.EnableNP || !ok {
klog.Infof("gc port group %s", pg.Name)
- if err := c.handleDeleteNp(fmt.Sprintf("%s/%s", pg.NpNamespace, pg.NpName)); err != nil {
- klog.Errorf("failed to gc np %s/%s, %v", pg.NpNamespace, pg.NpName, err)
+
+ if err := c.handleDeleteNp(fmt.Sprintf("%s/%s", npNamespace, npName)); err != nil {
+ klog.Errorf("gc np %s/%s, %v", npNamespace, npName, err)
return err
}
}
diff --git a/pkg/controller/network_policy.go b/pkg/controller/network_policy.go
index ccccb7bd7b9..45737964cb9 100644
--- a/pkg/controller/network_policy.go
+++ b/pkg/controller/network_policy.go
@@ -185,27 +185,31 @@ func (c *Controller) handleUpdateNp(key string) error {
// TODO: ovn acl doesn't support address_set name with '-', now we replace '-' by '.'.
// This may cause conflict if two np with name test-np and test.np. Maybe hash is a better solution,
// but we do not want to lost the readability now.
- pgName := strings.Replace(fmt.Sprintf("%s.%s", npName, np.Namespace), "-", ".", -1)
- ingressAllowAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.ingress.allow", npName, np.Namespace), "-", ".", -1)
- ingressExceptAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.ingress.except", npName, np.Namespace), "-", ".", -1)
- egressAllowAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.egress.allow", npName, np.Namespace), "-", ".", -1)
- egressExceptAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.egress.except", npName, np.Namespace), "-", ".", -1)
-
- if err = c.ovnLegacyClient.CreateNpPortGroup(pgName, np.Namespace, npName); err != nil {
- klog.Errorf("failed to create port group for np %s, %v", key, err)
+ pgName := strings.Replace(fmt.Sprintf("%s.%s", np.Name, np.Namespace), "-", ".", -1)
+ ingressAllowAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.ingress.allow", np.Name, np.Namespace), "-", ".", -1)
+ ingressExceptAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.ingress.except", np.Name, np.Namespace), "-", ".", -1)
+ egressAllowAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.egress.allow", np.Name, np.Namespace), "-", ".", -1)
+ egressExceptAsNamePrefix := strings.Replace(fmt.Sprintf("%s.%s.egress.except", np.Name, np.Namespace), "-", ".", -1)
+
+ // delete existing pg to update acl
+ if err = c.ovnClient.DeletePortGroup(pgName); err != nil {
+ klog.Errorf("delete port group %s before networkpolicy update process: %v", pgName, err)
+ }
+
+ if err = c.ovnClient.CreatePortGroup(pgName, map[string]string{networkPolicyKey: np.Namespace + "/" + np.Name}); err != nil {
+ klog.Errorf("create port group for np %s: %v", key, err)
return err
}
namedPortMap := c.namedPort.GetNamedPortByNs(np.Namespace)
ports, err := c.fetchSelectedPorts(np.Namespace, &np.Spec.PodSelector)
if err != nil {
- klog.Errorf("failed to fetch ports, %v", err)
+ klog.Errorf("fetch ports belongs to np %s: %v", key, err)
return err
}
- err = c.ovnLegacyClient.SetPortsToPortGroup(pgName, ports)
- if err != nil && !strings.Contains(err.Error(), "not found") {
- klog.Errorf("failed to set port group, %v", err)
+ if err := c.ovnClient.PortGroupAddPorts(pgName, ports...); err != nil {
+ klog.Errorf("add ports to port group %s: %v", pgName, err)
return err
}
@@ -248,7 +252,7 @@ func (c *Controller) handleUpdateNp(key string) error {
}
var ingressAclCmd []string
- exist, err := c.ovnLegacyClient.PortGroupExists(pgName)
+ exist, err := c.ovnClient.PortGroupExists(pgName)
if err != nil {
klog.Errorf("failed to query np %s port group, %v", key, err)
return err
@@ -391,7 +395,7 @@ func (c *Controller) handleUpdateNp(key string) error {
}
var egressAclCmd []string
- exist, err = c.ovnLegacyClient.PortGroupExists(pgName)
+ exist, err = c.ovnClient.PortGroupExists(pgName)
if err != nil {
klog.Errorf("failed to query np %s port group, %v", key, err)
return err
@@ -539,9 +543,9 @@ func (c *Controller) handleDeleteNp(key string) error {
npName = "np" + name
}
- pgName := strings.Replace(fmt.Sprintf("%s.%s", npName, namespace), "-", ".", -1)
- if err := c.ovnLegacyClient.DeletePortGroup(pgName); err != nil {
- klog.Errorf("failed to delete np %s port group, %v", key, err)
+ pgName := strings.Replace(fmt.Sprintf("%s.%s", name, namespace), "-", ".", -1)
+ if err = c.ovnClient.DeletePortGroup(pgName); err != nil {
+ klog.Errorf("delete np %s port group: %v", key, err)
}
svcAsNames, err := c.ovnLegacyClient.ListNpAddressSet(namespace, npName, "service")
diff --git a/pkg/controller/node.go b/pkg/controller/node.go
index c4d0c48e411..21039c326c7 100644
--- a/pkg/controller/node.go
+++ b/pkg/controller/node.go
@@ -336,8 +336,8 @@ func (c *Controller) handleAddNode(key string) error {
// ovn acl doesn't support address_set name with '-', so replace '-' by '.'
pgName := strings.Replace(node.Annotations[util.PortNameAnnotation], "-", ".", -1)
- if err := c.ovnLegacyClient.CreateNpPortGroup(pgName, "node", key); err != nil {
- klog.Errorf("failed to create port group %s for node %s: %v", pgName, key, err)
+ if err = c.ovnClient.CreatePortGroup(pgName, map[string]string{networkPolicyKey: "node" + "/" + key}); err != nil {
+ klog.Errorf("create port group %s for node %s: %v", pgName, key, err)
return err
}
@@ -461,10 +461,11 @@ func (c *Controller) handleDeleteNode(key string) error {
// ovn acl doesn't support address_set name with '-', so replace '-' by '.'
pgName := strings.Replace(portName, "-", ".", -1)
- if err := c.ovnLegacyClient.DeletePortGroup(pgName); err != nil {
- klog.Errorf("failed to delete port group %s for node, %v", portName, err)
+ if err := c.ovnClient.DeletePortGroup(pgName); err != nil {
+ klog.Errorf("delete port group %s for node: %v", portName, err)
return err
}
+
if err := c.deletePolicyRouteForNode(key); err != nil {
klog.Errorf("failed to delete policy route for node %s: %v", key, err)
return err
@@ -917,27 +918,12 @@ func (c *Controller) fetchPodsOnNode(nodeName string, pods []*v1.Pod) ([]string,
return ports, nil
}
-func (c *Controller) checkPodsChangedOnNode(pgName string, nameIdMap map[string]string, pgPorts, ports []string) (bool, error) {
- for _, port := range ports {
- if portId, ok := nameIdMap[port]; ok {
- if !util.IsStringIn(portId, pgPorts) {
- klog.Infof("pod on node changed, new added port %v should add to node port group %v", port, pgName)
- return true, nil
- }
- }
- }
-
- return false, nil
-}
-
func (c *Controller) CheckNodePortGroup() {
if err := c.checkAndUpdateNodePortGroup(); err != nil {
- klog.Errorf("failed to check node port-group status, %v", err)
+ klog.Errorf("check node port group status: %v", err)
}
}
-var lastNpExists = make(map[string]bool)
-
func (c *Controller) checkAndUpdateNodePortGroup() error {
klog.V(3).Infoln("start to check node port-group status")
np, _ := c.npsLister.List(labels.Everything())
@@ -945,25 +931,13 @@ func (c *Controller) checkAndUpdateNodePortGroup() error {
nodes, err := c.nodesLister.List(labels.Everything())
if err != nil {
- klog.Errorf("failed to list nodes, %v", err)
+ klog.Errorf("list nodes: %v", err)
return err
}
pods, err := c.podsLister.List(labels.Everything())
if err != nil {
- klog.Errorf("failed to list pods, %v", err)
- return err
- }
-
- nameIdMap, _, err := c.ovnLegacyClient.ListLspForNodePortgroup()
- if err != nil {
- klog.Errorf("failed to list lsp info, %v", err)
- return err
- }
-
- namePortsMap, err := c.ovnLegacyClient.ListPgPortsForNodePortgroup()
- if err != nil {
- klog.Errorf("failed to list port-group info, %v", err)
+ klog.Errorf("list pods, %v", err)
return err
}
@@ -983,32 +957,14 @@ func (c *Controller) checkAndUpdateNodePortGroup() error {
}
nodeIP := strings.Trim(fmt.Sprintf("%s,%s", nodeIPv4, nodeIPv6), ",")
- ports, err := c.fetchPodsOnNode(node.Name, pods)
+ nodePorts, err := c.fetchPodsOnNode(node.Name, pods)
if err != nil {
- klog.Errorf("failed to fetch pods for node %v, %v", node.Name, err)
+ klog.Errorf("fetch pods for node %v: %v", node.Name, err)
return err
}
- changed, err := c.checkPodsChangedOnNode(pgName, nameIdMap, namePortsMap[pgName], ports)
- if err != nil {
- klog.Errorf("failed to check pod status for node %v, %v", node.Name, err)
- continue
- }
-
- if lastNpExists[node.Name] != networkPolicyExists {
- klog.Infof("networkpolicy num changed when check nodepg %v", pgName)
- changed = true
- }
-
- if !changed {
- klog.V(3).Infof("pods on node %v do not changed", node.Name)
- continue
- }
- lastNpExists[node.Name] = networkPolicyExists
-
- err = c.ovnLegacyClient.SetPortsToPortGroup(pgName, ports)
- if err != nil {
- klog.Errorf("failed to set port group for node %v, %v", node.Name, err)
+ if err := c.ovnClient.PortGroupAddPorts(pgName, nodePorts...); err != nil {
+ klog.Errorf("add ports to port group %s: %v", pgName, err)
return err
}
@@ -1123,7 +1079,7 @@ func (c *Controller) checkPolicyRouteExistForNode(nodeName, cidr, nexthop string
func (c *Controller) deletePolicyRouteForNode(nodeName string) error {
subnets, err := c.subnetsLister.List(labels.Everything())
if err != nil {
- klog.Errorf("failed to get subnets %v", err)
+ klog.Errorf("get subnets: %v", err)
return err
}
@@ -1134,14 +1090,14 @@ func (c *Controller) deletePolicyRouteForNode(nodeName string) error {
if subnet.Spec.GatewayType == kubeovnv1.GWDistributedType {
pgName := getOverlaySubnetsPortGroupName(subnet.Name, nodeName)
- if err = c.ovnLegacyClient.DeletePortGroup(pgName); err != nil {
- klog.Errorf("failed to delete port group for subnet %s and node %s, %v", subnet.Name, nodeName, err)
+ if err = c.ovnClient.DeletePortGroup(pgName); err != nil {
+ klog.Errorf("delete port group for subnet %s and node %s: %v", subnet.Name, nodeName, err)
return err
}
klog.Infof("delete policy route for distributed subnet %s, node %s", subnet.Name, nodeName)
if err = c.deletePolicyRouteForDistributedSubnet(subnet, nodeName); err != nil {
- klog.Errorf("failed to delete policy route for subnet %s and node %s, %v", subnet.Name, nodeName, err)
+ klog.Errorf("delete policy route for subnet %s and node %s: %v", subnet.Name, nodeName, err)
return err
}
}
diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go
index e0dde040083..47fa553fa41 100644
--- a/pkg/controller/pod.go
+++ b/pkg/controller/pod.go
@@ -990,7 +990,6 @@ func (c *Controller) handleUpdatePodSecurity(key string) error {
}
return nil
}
-
func (c *Controller) syncKubeOvnNet(pod *v1.Pod, podNets []*kubeovnNet) error {
podName := c.getNameByPod(pod)
key := fmt.Sprintf("%s/%s", pod.Namespace, podName)
diff --git a/pkg/controller/security_group.go b/pkg/controller/security_group.go
index efc7542c015..e147f62217b 100644
--- a/pkg/controller/security_group.go
+++ b/pkg/controller/security_group.go
@@ -167,12 +167,19 @@ func (c *Controller) processNextDeleteSgWorkItem() bool {
}
func (c *Controller) initDenyAllSecurityGroup() error {
- if err := c.ovnLegacyClient.CreateSgPortGroup(util.DenyAllSecurityGroup); err != nil {
+ pgName := ovs.GetSgPortGroupName(util.DenyAllSecurityGroup)
+ if err := c.ovnClient.CreatePortGroup(pgName, map[string]string{
+ "type": "security_group",
+ sgKey: util.DenyAllSecurityGroup,
+ }); err != nil {
+ klog.Errorf("create port group for sg %s: %v", util.DenyAllSecurityGroup, err)
return err
}
+
if err := c.ovnLegacyClient.CreateSgDenyAllACL(); err != nil {
return err
}
+
c.addOrUpdateSgQueue.Add(util.DenyAllSecurityGroup)
return nil
}
@@ -182,7 +189,7 @@ func (c *Controller) updateDenyAllSgPorts() error {
// list all lsp which security_groups is not empty
lsps, err := c.ovnClient.ListNormalLogicalSwitchPorts(true, map[string]string{sgsKey: ""})
if err != nil {
- klog.Errorf("failed to find logical port, %v", err)
+ klog.Errorf("list logical switch ports with security_groups is not empty: %v", err)
return err
}
@@ -254,9 +261,15 @@ func (c *Controller) handleAddOrUpdateSg(key string) error {
return err
}
- if err = c.ovnLegacyClient.CreateSgPortGroup(sg.Name); err != nil {
- return fmt.Errorf("failed to create sg port_group %s, %v", key, err.Error())
+ pgName := ovs.GetSgPortGroupName(sg.Name)
+ if err := c.ovnClient.CreatePortGroup(pgName, map[string]string{
+ "type": "security_group",
+ sgKey: sg.Name,
+ }); err != nil {
+ klog.Errorf("create port group for sg %s: %v", sg.Name, err)
+ return err
}
+
if err = c.ovnLegacyClient.CreateSgAssociatedAddressSet(sg.Name); err != nil {
return fmt.Errorf("failed to create sg associated address_set %s, %v", key, err.Error())
}
@@ -378,7 +391,13 @@ func (c *Controller) patchSgStatus(sg *kubeovnv1.SecurityGroup) {
func (c *Controller) handleDeleteSg(key string) error {
c.sgKeyMutex.Lock(key)
defer c.sgKeyMutex.Unlock(key)
- return c.ovnLegacyClient.DeleteSgPortGroup(key)
+
+ if err := c.ovnClient.DeleteSecurityGroup(key); err != nil {
+ klog.Errorf("delete sg %s: %v", key, err)
+ return err
+ }
+
+ return nil
}
func (c *Controller) syncSgLogicalPort(key string) error {
@@ -420,14 +439,16 @@ func (c *Controller) syncSgLogicalPort(key string) error {
}
}
- if err = c.ovnLegacyClient.SetPortsToPortGroup(sg.Status.PortGroup, ports); err != nil {
- klog.Errorf("failed to set port to sg, %v", err)
+ if err := c.ovnClient.PortGroupAddPorts(sg.Status.PortGroup, ports...); err != nil {
+ klog.Errorf("add ports to port group %s: %v", sg.Status.PortGroup, err)
return err
}
+
if err = c.ovnLegacyClient.SetAddressesToAddressSet(v4s, ovs.GetSgV4AssociatedName(key)); err != nil {
klog.Errorf("failed to set address_set, %v", err)
return err
}
+
if err = c.ovnLegacyClient.SetAddressesToAddressSet(v6s, ovs.GetSgV6AssociatedName(key)); err != nil {
klog.Errorf("failed to set address_set, %v", err)
return err
diff --git a/pkg/controller/subnet.go b/pkg/controller/subnet.go
index 73307cd9c3f..56b99f8fb15 100644
--- a/pkg/controller/subnet.go
+++ b/pkg/controller/subnet.go
@@ -1415,12 +1415,6 @@ func (c *Controller) reconcileOvnDefaultVpcRoute(subnet *kubeovnv1.Subnet) error
}
}
- nameIdMap, idNameMap, err := c.ovnLegacyClient.ListLspForNodePortgroup()
- if err != nil {
- klog.Errorf("failed to list lsp info, %v", err)
- return err
- }
-
for _, pod := range pods {
if !isPodAlive(pod) {
continue
@@ -1478,38 +1472,27 @@ func (c *Controller) reconcileOvnDefaultVpcRoute(subnet *kubeovnv1.Subnet) error
pgName := getOverlaySubnetsPortGroupName(subnet.Name, pod.Spec.NodeName)
c.ovnPgKeyMutex.Lock(pgName)
- pgPorts, err := c.getPgPorts(idNameMap, pgName)
- if err != nil {
- c.ovnPgKeyMutex.Unlock(pgName)
- klog.Errorf("failed to fetch ports for pg %v, %v", pgName, err)
- return err
- }
portsToAdd := make([]string, 0, len(podPorts))
for _, port := range podPorts {
- if _, ok := nameIdMap[port]; !ok {
+ exist, err := c.ovnClient.LogicalSwitchPortExists(port)
+ if err != nil {
+ return err
+ }
+
+ if exist {
klog.Errorf("lsp does not exist for pod %v, please delete the pod and retry", port)
continue
}
- if _, ok := pgPorts[port]; !ok {
- portsToAdd = append(portsToAdd, port)
- }
+ portsToAdd = append(portsToAdd, port)
}
- if len(portsToAdd) != 0 {
- klog.Infof("new port %v should be added to port group %s", portsToAdd, pgName)
- newPgPorts := make([]string, len(portsToAdd), len(portsToAdd)+len(pgPorts))
- copy(newPgPorts, portsToAdd)
- for port := range pgPorts {
- newPgPorts = append(newPgPorts, port)
- }
- if err = c.ovnLegacyClient.SetPortsToPortGroup(pgName, newPgPorts); err != nil {
- c.ovnPgKeyMutex.Unlock(pgName)
- klog.Errorf("failed to set ports to port group %v, %v", pgName, err)
- return err
- }
+ if err := c.ovnClient.PortGroupAddPorts(pgName, portsToAdd...); err != nil {
+ klog.Errorf("add ports to port group %s: %v", pgName, err)
+ return err
}
+
c.ovnPgKeyMutex.Unlock(pgName)
}
return nil
@@ -2114,23 +2097,6 @@ func (c *Controller) checkGwNodeExists(gatewayNode string) bool {
return found
}
-func (c *Controller) getPgPorts(idNameMap map[string]string, pgName string) (map[string]struct{}, error) {
- pgPorts, err := c.ovnLegacyClient.ListPgPorts(pgName)
- if err != nil {
- klog.Errorf("failed to fetch ports for pg %v, %v", pgName, err)
- return nil, err
- }
-
- result := make(map[string]struct{}, len(pgPorts))
- for _, portId := range pgPorts {
- if portName, ok := idNameMap[portId]; ok {
- result[portName] = struct{}{}
- }
- }
-
- return result, nil
-}
-
func (c *Controller) addCommonRoutesForSubnet(subnet *kubeovnv1.Subnet) error {
for _, cidr := range strings.Split(subnet.Spec.CIDRBlock, ",") {
if cidr == "" {
@@ -2185,10 +2151,11 @@ func (c *Controller) createPortGroupForDistributedSubnet(node *v1.Node, subnet *
}
pgName := getOverlaySubnetsPortGroupName(subnet.Name, node.Name)
- if err := c.ovnLegacyClient.CreateNpPortGroup(pgName, subnet.Name, node.Name); err != nil {
- klog.Errorf("failed to create port group for subnet %s and node %s, %v", subnet.Name, node.Name, err)
+ if err := c.ovnClient.CreatePortGroup(pgName, map[string]string{networkPolicyKey: subnet.Name + "/" + node.Name}); err != nil {
+ klog.Errorf("create port group for subnet %s and node %s: %v", subnet.Name, node.Name, err)
return err
}
+
return nil
}
@@ -2349,18 +2316,18 @@ func (c *Controller) deletePolicyRouteByGatewayType(subnet *kubeovnv1.Subnet, ga
if gatewayType == kubeovnv1.GWDistributedType {
nodes, err := c.nodesLister.List(labels.Everything())
if err != nil {
- klog.Errorf("failed to list nodes: %v", err)
+ klog.Errorf("list nodes: %v", err)
return err
}
for _, node := range nodes {
pgName := getOverlaySubnetsPortGroupName(subnet.Name, node.Name)
- if err = c.ovnLegacyClient.DeletePortGroup(pgName); err != nil {
- klog.Errorf("failed to delete port group for subnet %s and node %s, %v", subnet.Name, node.Name, err)
+ if err = c.ovnClient.DeletePortGroup(pgName); err != nil {
+ klog.Errorf("delete port group for subnet %s and node %s: %v", subnet.Name, node.Name, err)
return err
}
if err = c.deletePolicyRouteForDistributedSubnet(subnet, node.Name); err != nil {
- klog.Errorf("failed to delete policy route for subnet %s and node %s, %v", subnet.Name, node.Name, err)
+ klog.Errorf("delete policy route for subnet %s and node %s: %v", subnet.Name, node.Name, err)
return err
}
}
@@ -2369,7 +2336,7 @@ func (c *Controller) deletePolicyRouteByGatewayType(subnet *kubeovnv1.Subnet, ga
if gatewayType == kubeovnv1.GWCentralizedType {
klog.Infof("delete policy route for centralized subnet %s", subnet.Name)
if err := c.deletePolicyRouteForCentralizedSubnet(subnet); err != nil {
- klog.Errorf("failed to delete policy route for subnet %s, %v", subnet.Name, err)
+ klog.Errorf("delete policy route for subnet %s: %v", subnet.Name, err)
return err
}
}
diff --git a/pkg/ovs/ovn-nbctl-legacy.go b/pkg/ovs/ovn-nbctl-legacy.go
index 7bc441e87d6..0512fff4fa7 100644
--- a/pkg/ovs/ovn-nbctl-legacy.go
+++ b/pkg/ovs/ovn-nbctl-legacy.go
@@ -741,70 +741,6 @@ func (c LegacyClient) SetPrivateLogicalSwitch(ls, cidr string, allow []string) e
return err
}
-func (c LegacyClient) CreateNpPortGroup(pgName, npNs, npName string) error {
- output, err := c.ovnNbCommand(
- "--data=bare", "--no-heading", "--columns=_uuid", "find", "port_group", fmt.Sprintf("name=%s", pgName))
- if err != nil {
- klog.Errorf("failed to find port_group %s: %v, %q", pgName, err, output)
- return err
- }
- if output != "" {
- return nil
- }
- _, err = c.ovnNbCommand(
- "pg-add", pgName,
- "--", "set", "port_group", pgName, fmt.Sprintf("external_ids:np=%s/%s", npNs, npName),
- )
- return err
-}
-
-func (c LegacyClient) DeletePortGroup(pgName string) error {
- output, err := c.ovnNbCommand(
- "--data=bare", "--no-heading", "--columns=_uuid", "find", "port_group", fmt.Sprintf("name=%s", pgName))
- if err != nil {
- klog.Errorf("failed to find port_group %s: %v, %q", pgName, err, output)
- return err
- }
- if output == "" {
- return nil
- }
-
- _, err = c.ovnNbCommand("pg-del", pgName)
- return err
-}
-
-type portGroup struct {
- Name string
- NpName string
- NpNamespace string
-}
-
-func (c LegacyClient) ListNpPortGroup() ([]portGroup, error) {
- output, err := c.ovnNbCommand("--data=bare", "--format=csv", "--no-heading", "--columns=name,external_ids", "find", "port_group", "external_ids:np!=[]")
- if err != nil {
- klog.Errorf("failed to list logical port-group, %v", err)
- return nil, err
- }
- lines := strings.Split(output, "\n")
- result := make([]portGroup, 0, len(lines))
- for _, l := range lines {
- if len(strings.TrimSpace(l)) == 0 {
- continue
- }
- parts := strings.Split(strings.TrimSpace(l), ",")
- if len(parts) != 2 {
- continue
- }
- name := strings.TrimSpace(parts[0])
- np := strings.Split(strings.TrimPrefix(strings.TrimSpace(parts[1]), "np="), "/")
- if len(np) != 2 {
- continue
- }
- result = append(result, portGroup{Name: name, NpNamespace: np[0], NpName: np[1]})
- }
- return result, nil
-}
-
func (c LegacyClient) CreateAddressSet(name string) error {
output, err := c.ovnNbCommand("--data=bare", "--no-heading", "--columns=_uuid", "find", "address_set", fmt.Sprintf("name=%s", name))
if err != nil {
@@ -1122,82 +1058,6 @@ func (c LegacyClient) DeleteAclForNodePg(pgName string) error {
return nil
}
-func (c LegacyClient) ListPgPorts(pgName string) ([]string, error) {
- output, err := c.ovnNbCommand("--format=csv", "--data=bare", "--no-heading", "--columns=ports", "find", "port_group", fmt.Sprintf("name=%s", pgName))
- if err != nil {
- klog.Errorf("failed to list port-group ports, %v", err)
- return nil, err
- }
- lines := strings.Split(output, "\n")
- result := make([]string, 0, len(lines))
- for _, l := range lines {
- if len(strings.TrimSpace(l)) == 0 {
- continue
- }
- result = append(result, strings.Fields(l)...)
- }
- return result, nil
-}
-
-func (c LegacyClient) ListLspForNodePortgroup() (map[string]string, map[string]string, error) {
- output, err := c.ovnNbCommand("--data=bare", "--format=csv", "--no-heading", "--columns=name,_uuid", "list", "logical_switch_port")
- if err != nil {
- klog.Errorf("failed to list logical-switch-port, %v", err)
- return nil, nil, err
- }
- lines := strings.Split(output, "\n")
- nameIdMap := make(map[string]string, len(lines))
- idNameMap := make(map[string]string, len(lines))
- for _, l := range lines {
- if len(strings.TrimSpace(l)) == 0 {
- continue
- }
- parts := strings.Split(strings.TrimSpace(l), ",")
- if len(parts) != 2 {
- continue
- }
- name := strings.TrimSpace(parts[0])
- uuid := strings.TrimSpace(parts[1])
- nameIdMap[name] = uuid
- idNameMap[uuid] = name
- }
- return nameIdMap, idNameMap, nil
-}
-
-func (c LegacyClient) ListPgPortsForNodePortgroup() (map[string][]string, error) {
- output, err := c.ovnNbCommand("--data=bare", "--format=csv", "--no-heading", "--columns=name,ports", "list", "port_group")
- if err != nil {
- klog.Errorf("failed to list port_group, %v", err)
- return nil, err
- }
- lines := strings.Split(output, "\n")
- namePortsMap := make(map[string][]string, len(lines))
- for _, l := range lines {
- if len(strings.TrimSpace(l)) == 0 {
- continue
- }
- parts := strings.Split(strings.TrimSpace(l), ",")
- if len(parts) != 2 {
- continue
- }
- name := strings.TrimSpace(parts[0])
- ports := strings.Fields(parts[1])
- namePortsMap[name] = ports
- }
-
- return namePortsMap, nil
-}
-
-func (c LegacyClient) SetPortsToPortGroup(portGroup string, portNames []string) error {
- ovnArgs := []string{"clear", "port_group", portGroup, "ports"}
- if len(portNames) > 0 {
- ovnArgs = []string{"pg-set-ports", portGroup}
- ovnArgs = append(ovnArgs, portNames...)
- }
- _, err := c.ovnNbCommand(ovnArgs...)
- return err
-}
-
func (c LegacyClient) SetAddressesToAddressSet(addresses []string, as string) error {
ovnArgs := []string{"clear", "address_set", as, "addresses"}
if len(addresses) > 0 {
@@ -1295,51 +1155,6 @@ func GetSgV6AssociatedName(sgName string) string {
return strings.Replace(fmt.Sprintf("ovn.sg.%s.associated.v6", sgName), "-", ".", -1)
}
-func (c LegacyClient) CreateSgPortGroup(sgName string) error {
- sgPortGroupName := GetSgPortGroupName(sgName)
- output, err := c.ovnNbCommand(
- "--data=bare", "--no-heading", "--columns=_uuid", "find", "port_group", fmt.Sprintf("name=%s", sgPortGroupName))
- if err != nil {
- klog.Errorf("failed to find port_group of sg %s: %v", sgPortGroupName, err)
- return err
- }
- if output != "" {
- return nil
- }
- _, err = c.ovnNbCommand(
- "pg-add", sgPortGroupName,
- "--", "set", "port_group", sgPortGroupName, "external_ids:type=security_group",
- fmt.Sprintf("external_ids:sg=%s", sgName),
- fmt.Sprintf("external_ids:name=%s", sgPortGroupName))
- return err
-}
-
-func (c LegacyClient) DeleteSgPortGroup(sgName string) error {
- sgPortGroupName := GetSgPortGroupName(sgName)
- // delete acl
- if err := c.DeleteACL(sgPortGroupName, ""); err != nil {
- return err
- }
-
- // delete address_set
- asList, err := c.ListSgRuleAddressSet(sgName, "")
- if err != nil {
- return err
- }
- for _, as := range asList {
- if err = c.DeleteAddressSet(as); err != nil {
- return err
- }
- }
-
- // delete pg
- err = c.DeletePortGroup(sgPortGroupName)
- if err != nil {
- return err
- }
- return nil
-}
-
func (c LegacyClient) CreateSgAssociatedAddressSet(sgName string) error {
v4AsName := GetSgV4AssociatedName(sgName)
v6AsName := GetSgV6AssociatedName(sgName)
@@ -1588,18 +1403,6 @@ func (c *LegacyClient) AclExists(priority, direction string) (bool, error) {
return true, nil
}
-func (c *LegacyClient) PortGroupExists(pgName string) (bool, error) {
- results, err := c.CustomFindEntity("port_group", []string{"_uuid"}, fmt.Sprintf("name=%s", pgName))
- if err != nil {
- klog.Errorf("customFindEntity failed, %v", err)
- return false, err
- }
- if len(results) == 0 {
- return false, nil
- }
- return true, nil
-}
-
func (c *LegacyClient) VpcHasPolicyRoute(vpc string, nextHops []string, priority int32) (bool, error) {
// get all policies by vpc
outPolicies, err := c.ovnNbCommand("--data=bare", "--no-heading",