From 0789e8cfc0b2fc05167bdf7f59fed59b1aa5a89d Mon Sep 17 00:00:00 2001
From: "red-hat-konflux[bot]"
 <126015336+red-hat-konflux[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 16:59:04 +0000
Subject: [PATCH] fix(deps): update
 github.com/ovn-org/ovn-kubernetes/go-controller digest to dd2a70c (#570)

Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com>
---
 go.mod                                        |  2 +-
 go.sum                                        |  4 +-
 .../observability-lib/model/network_event.go  | 49 +++++++++++++------
 .../sampledecoder/sample_decoder.go           |  7 ++-
 .../go-controller/pkg/config/config.go        |  7 +++
 .../go-controller/pkg/libovsdb/ops/lbgroup.go | 30 +++++++++++-
 .../go-controller/pkg/types/const.go          | 19 ++++---
 vendor/modules.txt                            |  2 +-
 8 files changed, 91 insertions(+), 29 deletions(-)

diff --git a/go.mod b/go.mod
index 83d147a6..cdaa4d91 100644
--- a/go.mod
+++ b/go.mod
@@ -14,7 +14,7 @@ require (
 	github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118
 	github.com/netobserv/flowlogs-pipeline v1.7.0-community.0.20241217113023-fa0540a1658e
 	github.com/netobserv/gopipes v0.3.0
-	github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250116185920-20e7a0e40c93
+	github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250215040159-dd2a70c928d3
 	github.com/paulbellamy/ratecounter v0.2.0
 	github.com/prometheus/client_golang v1.20.5
 	github.com/segmentio/kafka-go v0.4.47
diff --git a/go.sum b/go.sum
index be6453e5..ff5254e8 100644
--- a/go.sum
+++ b/go.sum
@@ -749,8 +749,8 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh
 github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
 github.com/ovn-org/libovsdb v0.7.1-0.20240820095311-ce1951614a20 h1:OoDvzyaK7F/ZANIIFOgb4Haj7mye3Hle0fYZZNdidSs=
 github.com/ovn-org/libovsdb v0.7.1-0.20240820095311-ce1951614a20/go.mod h1:dJbxEaalQl83nn904K32FaMjlH/qOObZ0bj4ejQ78AI=
-github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250116185920-20e7a0e40c93 h1:BJxeBVZvLEOOz7TswGbJFC60uOFpqUyJBHp7wvmdVIM=
-github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250116185920-20e7a0e40c93/go.mod h1:9LxDV3rAHlGHAYtVrT62y/fqfIxc5RrDiYi9RVeD0gg=
+github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250215040159-dd2a70c928d3 h1:tXdBJx1z7CYnjWCQnT6kBbI2LJd5XlDrIymIsxGWPF8=
+github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250215040159-dd2a70c928d3/go.mod h1:MzFM3OEsLM2w/4MBMOCsxGR6ZBUvJfOxvQHB8LIKSv4=
 github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
diff --git a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model/network_event.go b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model/network_event.go
index 00fb19fc..3a10bdbc 100644
--- a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model/network_event.go
+++ b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model/network_event.go
@@ -2,9 +2,30 @@ package model
 
 import (
 	"fmt"
+)
+
+const (
+	// Constants are duplicated to minimize dependencies
+	// When adding constants here, add them in network_event_test.go too
+
+	// libovsdb constants: see also github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops
+	egressFirewallOwnerType             = "EgressFirewall"
+	adminNetworkPolicyOwnerType         = "AdminNetworkPolicy"
+	baselineAdminNetworkPolicyOwnerType = "BaselineAdminNetworkPolicy"
+	networkPolicyOwnerType              = "NetworkPolicy"
+	multicastNamespaceOwnerType         = "MulticastNS"
+	multicastClusterOwnerType           = "MulticastCluster"
+	netpolNodeOwnerType                 = "NetpolNode"
+	netpolNamespaceOwnerType            = "NetpolNamespace"
+	udnIsolationOwnerType               = "UDNIsolation"
 
-	libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops"
-	"github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb"
+	// nbdb constants: see also github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb
+	aclActionAllow          = "allow"
+	aclActionAllowRelated   = "allow-related"
+	aclActionAllowStateless = "allow-stateless"
+	aclActionDrop           = "drop"
+	aclActionReject         = "reject"
+	aclActionPass           = "pass"
 )
 
 type NetworkEvent interface {
@@ -23,38 +44,38 @@ type ACLEvent struct {
 func (e *ACLEvent) String() string {
 	var action string
 	switch e.Action {
-	case nbdb.ACLActionAllow, nbdb.ACLActionAllowRelated, nbdb.ACLActionAllowStateless:
+	case aclActionAllow, aclActionAllowRelated, aclActionAllowStateless:
 		action = "Allowed"
-	case nbdb.ACLActionDrop:
+	case aclActionDrop:
 		action = "Dropped"
-	case nbdb.ACLActionPass:
+	case aclActionPass:
 		action = "Delegated to network policy"
 	default:
 		action = "Action " + e.Action
 	}
 	var msg string
 	switch e.Actor {
-	case libovsdbops.AdminNetworkPolicyOwnerType:
+	case adminNetworkPolicyOwnerType:
 		msg = fmt.Sprintf("admin network policy %s, direction %s", e.Name, e.Direction)
-	case libovsdbops.BaselineAdminNetworkPolicyOwnerType:
+	case baselineAdminNetworkPolicyOwnerType:
 		msg = fmt.Sprintf("baseline admin network policy %s, direction %s", e.Name, e.Direction)
-	case libovsdbops.MulticastNamespaceOwnerType:
+	case multicastNamespaceOwnerType:
 		msg = fmt.Sprintf("multicast in namespace %s, direction %s", e.Namespace, e.Direction)
-	case libovsdbops.MulticastClusterOwnerType:
+	case multicastClusterOwnerType:
 		msg = fmt.Sprintf("cluster multicast policy, direction %s", e.Direction)
-	case libovsdbops.NetpolNodeOwnerType:
+	case netpolNodeOwnerType:
 		msg = fmt.Sprintf("default allow from local node policy, direction %s", e.Direction)
-	case libovsdbops.NetworkPolicyOwnerType:
+	case networkPolicyOwnerType:
 		if e.Namespace != "" {
 			msg = fmt.Sprintf("network policy %s in namespace %s, direction %s", e.Name, e.Namespace, e.Direction)
 		} else {
 			msg = fmt.Sprintf("network policy %s, direction %s", e.Name, e.Direction)
 		}
-	case libovsdbops.NetpolNamespaceOwnerType:
+	case netpolNamespaceOwnerType:
 		msg = fmt.Sprintf("network policies isolation in namespace %s, direction %s", e.Namespace, e.Direction)
-	case libovsdbops.EgressFirewallOwnerType:
+	case egressFirewallOwnerType:
 		msg = fmt.Sprintf("egress firewall in namespace %s", e.Namespace)
-	case libovsdbops.UDNIsolationOwnerType:
+	case udnIsolationOwnerType:
 		msg = fmt.Sprintf("UDN isolation of type %s", e.Name)
 	}
 	return fmt.Sprintf("%s by %s", action, msg)
diff --git a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/sampledecoder/sample_decoder.go b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/sampledecoder/sample_decoder.go
index 0642e795..0beb41f9 100644
--- a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/sampledecoder/sample_decoder.go
+++ b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/sampledecoder/sample_decoder.go
@@ -292,10 +292,13 @@ func (d *SampleDecoder) DeleteCollector(collectorID int) error {
 	return err
 }
 
-// This is a copy of the ParseNetworkName function from go-controller/pkg/clustermanager/userdefinednetwork/template/net-attach-def-template.go
+// This is a copy of the ParseNetworkName function from go-controller/pkg/util/multi_network.go
 // We need to copy it to optimize dependencies of observability-lib.
 func ParseNetworkName(networkName string) (udnNamespace, udnName string) {
-	parts := strings.Split(networkName, ".")
+	if strings.HasPrefix(networkName, "cluster_udn_") {
+		return "", networkName[len("cluster_udn_"):]
+	}
+	parts := strings.Split(networkName, "_")
 	if len(parts) == 2 {
 		return parts[0], parts[1]
 	}
diff --git a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config/config.go b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config/config.go
index 1f601153..2759f071 100644
--- a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config/config.go
+++ b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config/config.go
@@ -460,6 +460,7 @@ type GatewayConfig struct {
 	// NodeportEnable sets whether to provide Kubernetes NodePort service or not
 	NodeportEnable bool `gcfg:"nodeport"`
 	// DisableSNATMultipleGws sets whether to disable SNAT of egress traffic in namespaces annotated with routing-external-gws
+	// only applicable to the default network not for UDNs
 	DisableSNATMultipleGWs bool `gcfg:"disable-snat-multiple-gws"`
 	// V4JoinSubnet to be used in the cluster
 	V4JoinSubnet string `gcfg:"v4-join-subnet"`
@@ -661,6 +662,12 @@ func PrepareTestConfig() error {
 		return err
 	}
 
+	// set klog level here as some tests will not call InitConfig
+	var level klog.Level
+	if err := level.Set(strconv.Itoa(Logging.Level)); err != nil {
+		return fmt.Errorf("failed to set klog log level %v", err)
+	}
+
 	// Don't pick up defaults from the environment
 	os.Unsetenv("KUBECONFIG")
 	os.Unsetenv("K8S_CACERT")
diff --git a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/lbgroup.go b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/lbgroup.go
index 854c8f2b..71517cb9 100644
--- a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/lbgroup.go
+++ b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/lbgroup.go
@@ -2,7 +2,6 @@ package ops
 
 import (
 	"context"
-
 	libovsdbclient "github.com/ovn-org/libovsdb/client"
 	"github.com/ovn-org/libovsdb/ovsdb"
 	libovsdb "github.com/ovn-org/libovsdb/ovsdb"
@@ -30,6 +29,35 @@ func CreateOrUpdateLoadBalancerGroupOps(nbClient libovsdbclient.Client, ops []ov
 	return ops, nil
 }
 
+// DeleteLoadBalancerGroupsOps DeleteLoadBalncerGroupOps creates the operations for deleting load balancer groups
+func DeleteLoadBalancerGroupsOps(nbClient libovsdbclient.Client, ops []libovsdb.Operation, groups ...*nbdb.LoadBalancerGroup) ([]ovsdb.Operation, error) {
+	opModels := make([]operationModel, 0, len(groups))
+	for i := range groups {
+		// can't use i in the predicate, for loop replaces it in-memory
+		lb := groups[i]
+		opModel := operationModel{
+			Model:       lb,
+			ErrNotFound: false,
+			BulkOp:      false,
+		}
+		opModels = append(opModels, opModel)
+	}
+
+	modelClient := newModelClient(nbClient)
+	return modelClient.DeleteOps(ops, opModels...)
+}
+
+// DeleteLoadBalancerGroups deletes the provided load balancer groups
+func DeleteLoadBalancerGroups(nbClient libovsdbclient.Client, groups []*nbdb.LoadBalancerGroup) error {
+	ops, err := DeleteLoadBalancerGroupsOps(nbClient, nil, groups...)
+	if err != nil {
+		return err
+	}
+
+	_, err = TransactAndCheck(nbClient, ops)
+	return err
+}
+
 // AddLoadBalancersToGroupOps adds the provided load balancers to the provided
 // group and returns the corresponding ops
 func AddLoadBalancersToGroupOps(nbClient libovsdbclient.Client, ops []libovsdb.Operation, group *nbdb.LoadBalancerGroup, lbs ...*nbdb.LoadBalancer) ([]libovsdb.Operation, error) {
diff --git a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types/const.go b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types/const.go
index 9c6afae5..8de44967 100644
--- a/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types/const.go
+++ b/vendor/github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types/const.go
@@ -123,14 +123,14 @@ const (
 	EndpointSliceMirrorControllerName = "endpointslice-mirror-controller.k8s.ovn.org"
 	// EndpointSliceDefaultControllerName default kubernetes EndpointSlice controller name (used as a value for the "endpointslice.kubernetes.io/managed-by" label)
 	EndpointSliceDefaultControllerName = "endpointslice-controller.k8s.io"
-	// LabelSourceEndpointSlice label key used in mirrored EndpointSlice
+	// SourceEndpointSliceAnnotation key used in mirrored EndpointSlice
 	// that has the value of the default EndpointSlice name
-	LabelSourceEndpointSlice = "k8s.ovn.org/source-endpointslice"
+	SourceEndpointSliceAnnotation = "k8s.ovn.org/source-endpointslice"
 	// LabelSourceEndpointSliceVersion label key used in mirrored EndpointSlice
 	// that has the value of the last known default EndpointSlice ResourceVersion
 	LabelSourceEndpointSliceVersion = "k8s.ovn.org/source-endpointslice-version"
-	// LabelUserDefinedEndpointSliceNetwork label key used in mirrored EndpointSlices that contains the current primary user defined network name
-	LabelUserDefinedEndpointSliceNetwork = "k8s.ovn.org/endpointslice-network"
+	// UserDefinedNetworkEndpointSliceAnnotation key used in mirrored EndpointSlices that contains the current primary user defined network name
+	UserDefinedNetworkEndpointSliceAnnotation = "k8s.ovn.org/endpointslice-network"
 	// LabelUserDefinedServiceName label key used in mirrored EndpointSlices that contains the service name matching the EndpointSlice
 	LabelUserDefinedServiceName = "k8s.ovn.org/service-name"
 
@@ -215,6 +215,8 @@ const (
 	LoadBalancerOwnerExternalID = OvnK8sPrefix + "/" + "owner"
 	// key for UDN enabled services routes
 	UDNEnabledServiceExternalID = OvnK8sPrefix + "/" + "udn-enabled-default-service"
+	// RequiredUDNNamespaceLabel is the required namespace label for enabling primary UDNs
+	RequiredUDNNamespaceLabel = "k8s.ovn.org/primary-user-defined-network"
 
 	// different secondary network topology type defined in CNI netconf
 	Layer3Topology   = "layer3"
@@ -226,12 +228,13 @@ const (
 	NetworkRolePrimary   = "primary"
 	NetworkRoleSecondary = "secondary"
 	NetworkRoleDefault   = "default"
-	// defined internally by ovnkube to recognize "default"
-	// network's role as a "infrastructure-locked" network
-	// when user defined network is the primary network for
-	// the pod which makes "default" network niether primary
+	// NetworkRoleInfrastructure is defined internally by ovnkube to recognize "default"
+	// network's role as an "infrastructure-locked" network
+	// when a user defined network is the primary network for
+	// the pod which makes "default" network neither primary
 	// nor secondary
 	NetworkRoleInfrastructure = "infrastructure-locked"
+	NetworkRoleNone           = "none"
 
 	// db index keys
 	// PrimaryIDKey is used as a primary client index
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 507cc3e0..1d688dc6 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -357,7 +357,7 @@ github.com/ovn-org/libovsdb/model
 github.com/ovn-org/libovsdb/ovsdb
 github.com/ovn-org/libovsdb/ovsdb/serverdb
 github.com/ovn-org/libovsdb/updates
-# github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250116185920-20e7a0e40c93
+# github.com/ovn-org/ovn-kubernetes/go-controller v0.0.0-20250215040159-dd2a70c928d3
 ## explicit; go 1.22.0
 github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model
 github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/ovsdb
-- 
GitLab