diff --git a/contrib/kind.sh b/contrib/kind.sh index 5ec980bd95..3d8bd0f30e 100755 --- a/contrib/kind.sh +++ b/contrib/kind.sh @@ -845,14 +845,14 @@ build_ovn_image() { # store in local registry if [ "$KIND_LOCAL_REGISTRY" == true ];then echo "Pushing built image to local $OCI_BIN registry" - $OCI_BIN push "$push_args" "$OVN_IMAGE" + $OCI_BIN push $push_args "$OVN_IMAGE" fi # We should push to local registry if image is not remote elif [ "${OVN_IMAGE}" != "" -a "${KIND_LOCAL_REGISTRY}" == true ] && (echo "$OVN_IMAGE" | grep / -vq); then local local_registry_ovn_image="localhost:5000/${OVN_IMAGE}" $OCI_BIN tag "$OVN_IMAGE" $local_registry_ovn_image OVN_IMAGE=$local_registry_ovn_image - $OCI_BIN push "$push_args" "$OVN_IMAGE" + $OCI_BIN push $push_args "$OVN_IMAGE" fi } diff --git a/docs/developer-guide/developer.md b/docs/developer-guide/developer.md index d67bd62a9d..3dc7d0dfb8 100644 --- a/docs/developer-guide/developer.md +++ b/docs/developer-guide/developer.md @@ -5,11 +5,12 @@ This file aims to have information that is useful to the people contributing to ## Generating ovsdb bindings using modelgen In order to generate the latest NBDB and SBDB bindings, we have a tool called `modelgen` -which lives in the libovsdb repo: https://github.com/ovn-org/libovsdb#modelgen. It is a +which lives in the libovsdb repo: https://github.com/ovn-kubernetes/libovsdb#modelgen. It is a [code generator](https://go.dev/blog/generate) that uses `pkg/nbdb/gen.go` and `pkg/sbdb/gen.go` files to auto-generate the models and additional code like deep-copy methods. In order to use this tool do the following: + ``` $ cd go-controller/ $ make modelgen diff --git a/go-controller/.golangci.yml b/go-controller/.golangci.yml index 8f60edab95..d381676a37 100644 --- a/go-controller/.golangci.yml +++ b/go-controller/.golangci.yml @@ -33,6 +33,7 @@ linters-settings: - default - prefix(k8s.io,sigs.k8s.io) - prefix(github.com/ovn-org) + - prefix(github.com/ovn-kubernetes) - localmodule - dot @@ -41,7 +42,7 @@ linters-settings: disable: - fieldalignment - shadow - + importas: no-unaliased: true alias: @@ -57,9 +58,9 @@ linters-settings: - pkg: sigs.k8s.io/controller-runtime alias: ctrl # Other frequently used deps - - pkg: github.com/ovn-org/libovsdb/ovsdb + - pkg: github.com/ovn-kubernetes/libovsdb/ovsdb alias: "" - + revive: rules: # TODO: enable recommended (default) revive rules diff --git a/go-controller/cmd/ovnkube/ovnkube.go b/go-controller/cmd/ovnkube/ovnkube.go index 2dc1189c62..4211a7fec5 100644 --- a/go-controller/cmd/ovnkube/ovnkube.go +++ b/go-controller/cmd/ovnkube/ovnkube.go @@ -22,7 +22,7 @@ import ( "k8s.io/klog/v2" kexec "k8s.io/utils/exec" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/clustermanager" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/go.mod b/go-controller/go.mod index 7868b6ca26..f40f5001e2 100644 --- a/go-controller/go.mod +++ b/go-controller/go.mod @@ -38,7 +38,7 @@ require ( github.com/onsi/gomega v1.36.1 github.com/openshift/api v0.0.0-20231120222239-b86761094ee3 github.com/openshift/client-go v0.0.0-20231121143148-910ca30a1a9a - github.com/ovn-org/libovsdb v0.7.1-0.20240820095311-ce1951614a20 + github.com/ovn-kubernetes/libovsdb v0.8.0 github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 github.com/safchain/ethtool v0.3.1-0.20231027162144-83e5e0097c91 diff --git a/go-controller/go.sum b/go-controller/go.sum index 3dcc3208b3..50d5e1270d 100644 --- a/go-controller/go.sum +++ b/go-controller/go.sum @@ -639,8 +639,8 @@ github.com/openshift/client-go v0.0.0-20231121143148-910ca30a1a9a h1:4FVrw8hz0Wb github.com/openshift/client-go v0.0.0-20231121143148-910ca30a1a9a/go.mod h1:arApQobmOjZqtxw44TwnQdUCH+t9DgZ8geYPFqksHws= github.com/openshift/custom-resource-status v1.1.2 h1:C3DL44LEbvlbItfd8mT5jWrqPfHnSOQoQf/sypqA6A4= github.com/openshift/custom-resource-status v1.1.2/go.mod h1:DB/Mf2oTeiAmVVX1gN+NEqweonAPY0TKUwADizj8+ZA= -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-kubernetes/libovsdb v0.8.0 h1:cWhqWb5rCiS3yTJ6VJ7s85cElE1NWWJ2XksPGLd5WII= +github.com/ovn-kubernetes/libovsdb v0.8.0/go.mod h1:8nqWvM5pjHRbI5K6Uy/yuA5MdhCnGhNFH5fsSjZD8Rc= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= diff --git a/go-controller/hack/update-modelgen.sh b/go-controller/hack/update-modelgen.sh index 18c6f1a3cd..c17239f669 100755 --- a/go-controller/hack/update-modelgen.sh +++ b/go-controller/hack/update-modelgen.sh @@ -4,12 +4,12 @@ set -o pipefail # generate ovsdb bindings if ! ( command -v modelgen > /dev/null ); then - echo "modelgen not found, installing github.com/ovn-org/libovsdb/cmd/modelgen" + echo "modelgen not found, installing github.com/ovn-kubernetes/libovsdb/cmd/modelgen" olddir="${PWD}" builddir="$(mktemp -d)" cd "${builddir}" # ensure the hash value is not outdated, if wrong bindings are being generated re-install modelgen - GO111MODULE=on go install github.com/ovn-org/libovsdb/cmd/modelgen@v0.7.0 + GO111MODULE=on go install github.com/ovn-kubernetes/libovsdb/cmd/modelgen@v0.8.0 cd "${olddir}" if [[ "${builddir}" == /tmp/* ]]; then #paranoia rm -rf "${builddir}" diff --git a/go-controller/observability-lib/ovsdb/bridge.go b/go-controller/observability-lib/ovsdb/bridge.go index d0135c4886..d918918bb0 100644 --- a/go-controller/observability-lib/ovsdb/bridge.go +++ b/go-controller/observability-lib/ovsdb/bridge.go @@ -3,7 +3,7 @@ package ovsdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const BridgeTable = "Bridge" diff --git a/go-controller/observability-lib/ovsdb/flow_sample_collector_set.go b/go-controller/observability-lib/ovsdb/flow_sample_collector_set.go index 57a26e805d..b4b67f6055 100644 --- a/go-controller/observability-lib/ovsdb/flow_sample_collector_set.go +++ b/go-controller/observability-lib/ovsdb/flow_sample_collector_set.go @@ -3,7 +3,7 @@ package ovsdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const FlowSampleCollectorSetTable = "Flow_Sample_Collector_Set" diff --git a/go-controller/observability-lib/ovsdb/interface.go b/go-controller/observability-lib/ovsdb/interface.go index e9f350995c..9e59b20738 100644 --- a/go-controller/observability-lib/ovsdb/interface.go +++ b/go-controller/observability-lib/ovsdb/interface.go @@ -3,7 +3,7 @@ package ovsdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const InterfaceTable = "Interface" diff --git a/go-controller/observability-lib/ovsdb/observ_model.go b/go-controller/observability-lib/ovsdb/observ_model.go index 22547a3f8c..4667acf5d5 100644 --- a/go-controller/observability-lib/ovsdb/observ_model.go +++ b/go-controller/observability-lib/ovsdb/observ_model.go @@ -1,6 +1,6 @@ package ovsdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" // ObservDatabaseModel returns the DatabaseModel object to be used by observability library. func ObservDatabaseModel() (model.ClientDBModel, error) { diff --git a/go-controller/observability-lib/sampledecoder/db_client.go b/go-controller/observability-lib/sampledecoder/db_client.go index 5587646356..9d65645601 100644 --- a/go-controller/observability-lib/sampledecoder/db_client.go +++ b/go-controller/observability-lib/sampledecoder/db_client.go @@ -10,8 +10,8 @@ import ( "k8s.io/klog/v2/textlogger" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" "github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/observability-lib/sampledecoder/sample_decoder.go b/go-controller/observability-lib/sampledecoder/sample_decoder.go index 341a0d1c18..d92c03b3e8 100644 --- a/go-controller/observability-lib/sampledecoder/sample_decoder.go +++ b/go-controller/observability-lib/sampledecoder/sample_decoder.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/model" "github.com/ovn-org/ovn-kubernetes/go-controller/observability-lib/ovsdb" diff --git a/go-controller/pkg/cni/cni.go b/go-controller/pkg/cni/cni.go index e2cc865265..faf800d52e 100644 --- a/go-controller/pkg/cni/cni.go +++ b/go-controller/pkg/cni/cni.go @@ -15,7 +15,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/udn" diff --git a/go-controller/pkg/cni/cni_test.go b/go-controller/pkg/cni/cni_test.go index ed3f5be1f0..778c83c03c 100644 --- a/go-controller/pkg/cni/cni_test.go +++ b/go-controller/pkg/cni/cni_test.go @@ -15,7 +15,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes/fake" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/cni/cniserver.go b/go-controller/pkg/cni/cniserver.go index 4ec851bbb7..17b888dd63 100644 --- a/go-controller/pkg/cni/cniserver.go +++ b/go-controller/pkg/cni/cniserver.go @@ -16,7 +16,7 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/cni/cniserver_test.go b/go-controller/pkg/cni/cniserver_test.go index 65c9962e2a..6edfbf49e2 100644 --- a/go-controller/pkg/cni/cniserver_test.go +++ b/go-controller/pkg/cni/cniserver_test.go @@ -23,7 +23,7 @@ import ( "k8s.io/client-go/kubernetes/fake" utiltesting "k8s.io/client-go/util/testing" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/networkmanager" diff --git a/go-controller/pkg/cni/types.go b/go-controller/pkg/cni/types.go index f6c5e10727..7a20787d73 100644 --- a/go-controller/pkg/cni/types.go +++ b/go-controller/pkg/cni/types.go @@ -14,7 +14,7 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/networkmanager" diff --git a/go-controller/pkg/controllermanager/controller_manager.go b/go-controller/pkg/controllermanager/controller_manager.go index 6b5f1e9f89..27db274d05 100644 --- a/go-controller/pkg/controllermanager/controller_manager.go +++ b/go-controller/pkg/controllermanager/controller_manager.go @@ -14,7 +14,7 @@ import ( "k8s.io/client-go/tools/record" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/controllermanager/node_controller_manager.go b/go-controller/pkg/controllermanager/node_controller_manager.go index d3af2b3b40..aca81d30f7 100644 --- a/go-controller/pkg/controllermanager/node_controller_manager.go +++ b/go-controller/pkg/controllermanager/node_controller_manager.go @@ -13,7 +13,7 @@ import ( "k8s.io/klog/v2" kexec "k8s.io/utils/exec" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/factory/handler.go b/go-controller/pkg/factory/handler.go index 1e87f7309b..50563b3278 100644 --- a/go-controller/pkg/factory/handler.go +++ b/go-controller/pkg/factory/handler.go @@ -76,6 +76,10 @@ func (h *Handler) OnDelete(obj interface{}) { } } +func (h *Handler) FilterFunc(obj interface{}) bool { + return h.base.FilterFunc(obj) +} + func (h *Handler) kill() bool { return atomic.CompareAndSwapUint32(&h.tombstone, handlerAlive, handlerDead) } diff --git a/go-controller/pkg/kubevirt/dhcp.go b/go-controller/pkg/kubevirt/dhcp.go index 5e8534bd71..51cb600ebd 100644 --- a/go-controller/pkg/kubevirt/dhcp.go +++ b/go-controller/pkg/kubevirt/dhcp.go @@ -9,7 +9,7 @@ import ( ktypes "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/kubevirt/pod.go b/go-controller/pkg/kubevirt/pod.go index 48cd5ed1c2..b0f43ffcbf 100644 --- a/go-controller/pkg/kubevirt/pod.go +++ b/go-controller/pkg/kubevirt/pod.go @@ -13,7 +13,7 @@ import ( ktypes "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/util/retry" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/kube" diff --git a/go-controller/pkg/kubevirt/router.go b/go-controller/pkg/kubevirt/router.go index 06a6499e1f..ed4a5dfab2 100644 --- a/go-controller/pkg/kubevirt/router.go +++ b/go-controller/pkg/kubevirt/router.go @@ -8,7 +8,7 @@ import ( corev1 "k8s.io/api/core/v1" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/libovsdb/libovsdb.go b/go-controller/pkg/libovsdb/libovsdb.go index 40bd1298fe..860ec26698 100644 --- a/go-controller/pkg/libovsdb/libovsdb.go +++ b/go-controller/pkg/libovsdb/libovsdb.go @@ -23,8 +23,8 @@ import ( "k8s.io/klog/v2" "k8s.io/klog/v2/textlogger" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/acl.go b/go-controller/pkg/libovsdb/ops/acl.go index cd671595b3..f9987fbeb7 100644 --- a/go-controller/pkg/libovsdb/ops/acl.go +++ b/go-controller/pkg/libovsdb/ops/acl.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/address_set.go b/go-controller/pkg/libovsdb/ops/address_set.go index c6a8ce16e7..90d251bbb5 100644 --- a/go-controller/pkg/libovsdb/ops/address_set.go +++ b/go-controller/pkg/libovsdb/ops/address_set.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" @@ -18,7 +18,7 @@ type addressSetPredicate func(*nbdb.AddressSet) bool // The purpose is to prevent libovsdb interpreting non-nil empty maps/slices // as default and thus being filtered out of the update. The intention is to // use non-nil empty maps/slices to clear them out in the update. -// See: https://github.com/ovn-org/libovsdb/issues/226 +// See: https://github.com/ovn-kubernetes/libovsdb/issues/226 func getNonZeroAddressSetMutableFields(as *nbdb.AddressSet) []interface{} { fields := []interface{}{} if as.Addresses != nil { diff --git a/go-controller/pkg/libovsdb/ops/chassis.go b/go-controller/pkg/libovsdb/ops/chassis.go index 0196da3463..83a2d6a3c2 100644 --- a/go-controller/pkg/libovsdb/ops/chassis.go +++ b/go-controller/pkg/libovsdb/ops/chassis.go @@ -5,7 +5,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" diff --git a/go-controller/pkg/libovsdb/ops/copp.go b/go-controller/pkg/libovsdb/ops/copp.go index dac95c5c0e..a0f8697b1b 100644 --- a/go-controller/pkg/libovsdb/ops/copp.go +++ b/go-controller/pkg/libovsdb/ops/copp.go @@ -1,8 +1,8 @@ package ops import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/dhcp.go b/go-controller/pkg/libovsdb/ops/dhcp.go index 94ab12800a..cb03fde11c 100644 --- a/go-controller/pkg/libovsdb/ops/dhcp.go +++ b/go-controller/pkg/libovsdb/ops/dhcp.go @@ -1,8 +1,8 @@ package ops import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/lbgroup.go b/go-controller/pkg/libovsdb/ops/lbgroup.go index 8ab75c4d15..829cce5003 100644 --- a/go-controller/pkg/libovsdb/ops/lbgroup.go +++ b/go-controller/pkg/libovsdb/ops/lbgroup.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/loadbalancer.go b/go-controller/pkg/libovsdb/ops/loadbalancer.go index 221e980b0b..b984c99fce 100644 --- a/go-controller/pkg/libovsdb/ops/loadbalancer.go +++ b/go-controller/pkg/libovsdb/ops/loadbalancer.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" @@ -16,7 +16,7 @@ import ( // The purpose is to prevent libovsdb interpreting non-nil empty maps/slices // as default and thus being filtered out of the update. The intention is to // use non-nil empty maps/slices to clear them out in the update. -// See: https://github.com/ovn-org/libovsdb/issues/226 +// See: https://github.com/ovn-kubernetes/libovsdb/issues/226 func getNonZeroLoadBalancerMutableFields(lb *nbdb.LoadBalancer) []interface{} { fields := []interface{}{} if lb.Name != "" { diff --git a/go-controller/pkg/libovsdb/ops/mac_binding.go b/go-controller/pkg/libovsdb/ops/mac_binding.go index 1f7a76ba8b..0e1fe6718d 100644 --- a/go-controller/pkg/libovsdb/ops/mac_binding.go +++ b/go-controller/pkg/libovsdb/ops/mac_binding.go @@ -1,7 +1,7 @@ package ops import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/meter.go b/go-controller/pkg/libovsdb/ops/meter.go index d08b27ecc1..666da32fa8 100644 --- a/go-controller/pkg/libovsdb/ops/meter.go +++ b/go-controller/pkg/libovsdb/ops/meter.go @@ -5,8 +5,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/model.go b/go-controller/pkg/libovsdb/ops/model.go index 76b525fa48..f266a16a64 100644 --- a/go-controller/pkg/libovsdb/ops/model.go +++ b/go-controller/pkg/libovsdb/ops/model.go @@ -4,9 +4,9 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" diff --git a/go-controller/pkg/libovsdb/ops/model_client.go b/go-controller/pkg/libovsdb/ops/model_client.go index 0668c20399..bf72f086d9 100644 --- a/go-controller/pkg/libovsdb/ops/model_client.go +++ b/go-controller/pkg/libovsdb/ops/model_client.go @@ -8,9 +8,9 @@ import ( "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" diff --git a/go-controller/pkg/libovsdb/ops/model_client_test.go b/go-controller/pkg/libovsdb/ops/model_client_test.go index 0ab218c631..52471d6408 100644 --- a/go-controller/pkg/libovsdb/ops/model_client_test.go +++ b/go-controller/pkg/libovsdb/ops/model_client_test.go @@ -8,9 +8,9 @@ import ( "github.com/onsi/gomega/types" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" libovsdbtest "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/testing/libovsdb" diff --git a/go-controller/pkg/libovsdb/ops/nb_global.go b/go-controller/pkg/libovsdb/ops/nb_global.go index 88d962af0d..dc03be511e 100644 --- a/go-controller/pkg/libovsdb/ops/nb_global.go +++ b/go-controller/pkg/libovsdb/ops/nb_global.go @@ -1,7 +1,7 @@ package ops import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/ovs/bridge.go b/go-controller/pkg/libovsdb/ops/ovs/bridge.go index d109f2b1b6..aa2deeb673 100644 --- a/go-controller/pkg/libovsdb/ops/ovs/bridge.go +++ b/go-controller/pkg/libovsdb/ops/ovs/bridge.go @@ -3,7 +3,7 @@ package ovs import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/vswitchd" diff --git a/go-controller/pkg/libovsdb/ops/ovs/interface.go b/go-controller/pkg/libovsdb/ops/ovs/interface.go index 797e7421ca..41259ef5a4 100644 --- a/go-controller/pkg/libovsdb/ops/ovs/interface.go +++ b/go-controller/pkg/libovsdb/ops/ovs/interface.go @@ -3,7 +3,7 @@ package ovs import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/vswitchd" diff --git a/go-controller/pkg/libovsdb/ops/ovs/openvswitch.go b/go-controller/pkg/libovsdb/ops/ovs/openvswitch.go index c6dd53a89f..a19df4e3fa 100644 --- a/go-controller/pkg/libovsdb/ops/ovs/openvswitch.go +++ b/go-controller/pkg/libovsdb/ops/ovs/openvswitch.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/vswitchd" diff --git a/go-controller/pkg/libovsdb/ops/portbinding.go b/go-controller/pkg/libovsdb/ops/portbinding.go index 861a63cb95..0267a794c0 100644 --- a/go-controller/pkg/libovsdb/ops/portbinding.go +++ b/go-controller/pkg/libovsdb/ops/portbinding.go @@ -3,7 +3,7 @@ package ops import ( "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/portgroup.go b/go-controller/pkg/libovsdb/ops/portgroup.go index 37a6a782af..8a7cfb27f1 100644 --- a/go-controller/pkg/libovsdb/ops/portgroup.go +++ b/go-controller/pkg/libovsdb/ops/portgroup.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/qos.go b/go-controller/pkg/libovsdb/ops/qos.go index 21d6a2f7f8..cfc1d0900a 100644 --- a/go-controller/pkg/libovsdb/ops/qos.go +++ b/go-controller/pkg/libovsdb/ops/qos.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/router.go b/go-controller/pkg/libovsdb/ops/router.go index df87307918..18b3931a1f 100644 --- a/go-controller/pkg/libovsdb/ops/router.go +++ b/go-controller/pkg/libovsdb/ops/router.go @@ -8,8 +8,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/sample.go b/go-controller/pkg/libovsdb/ops/sample.go index cb0ddbc6bf..8e7799fce3 100644 --- a/go-controller/pkg/libovsdb/ops/sample.go +++ b/go-controller/pkg/libovsdb/ops/sample.go @@ -5,9 +5,9 @@ import ( "golang.org/x/net/context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/sb_global.go b/go-controller/pkg/libovsdb/ops/sb_global.go index 3fe14bf42d..28ee3ecad2 100644 --- a/go-controller/pkg/libovsdb/ops/sb_global.go +++ b/go-controller/pkg/libovsdb/ops/sb_global.go @@ -1,7 +1,7 @@ package ops import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" ) diff --git a/go-controller/pkg/libovsdb/ops/switch.go b/go-controller/pkg/libovsdb/ops/switch.go index 01f724b45d..4136f96bba 100644 --- a/go-controller/pkg/libovsdb/ops/switch.go +++ b/go-controller/pkg/libovsdb/ops/switch.go @@ -5,8 +5,8 @@ import ( "errors" "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/template_var.go b/go-controller/pkg/libovsdb/ops/template_var.go index 9c449d5f6b..ff4edc2f92 100644 --- a/go-controller/pkg/libovsdb/ops/template_var.go +++ b/go-controller/pkg/libovsdb/ops/template_var.go @@ -3,8 +3,8 @@ package ops import ( "context" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/ops/transact.go b/go-controller/pkg/libovsdb/ops/transact.go index 312cfdaffa..37aaf6808d 100644 --- a/go-controller/pkg/libovsdb/ops/transact.go +++ b/go-controller/pkg/libovsdb/ops/transact.go @@ -9,9 +9,9 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" ) diff --git a/go-controller/pkg/libovsdb/util/acl.go b/go-controller/pkg/libovsdb/util/acl.go index dbb6c2b3e5..7169b57798 100644 --- a/go-controller/pkg/libovsdb/util/acl.go +++ b/go-controller/pkg/libovsdb/util/acl.go @@ -7,7 +7,7 @@ import ( corev1 "k8s.io/api/core/v1" knet "k8s.io/api/networking/v1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/util/address_set.go b/go-controller/pkg/libovsdb/util/address_set.go index e4328d43a2..085abf2da6 100644 --- a/go-controller/pkg/libovsdb/util/address_set.go +++ b/go-controller/pkg/libovsdb/util/address_set.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/util/mac_binding.go b/go-controller/pkg/libovsdb/util/mac_binding.go index e6f11d8347..d6410a9b65 100644 --- a/go-controller/pkg/libovsdb/util/mac_binding.go +++ b/go-controller/pkg/libovsdb/util/mac_binding.go @@ -3,9 +3,9 @@ package util import ( "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" diff --git a/go-controller/pkg/libovsdb/util/metric.go b/go-controller/pkg/libovsdb/util/metric.go index 06c787f5fe..89015f343e 100644 --- a/go-controller/pkg/libovsdb/util/metric.go +++ b/go-controller/pkg/libovsdb/util/metric.go @@ -3,7 +3,7 @@ package util import ( "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/util/nb_global.go b/go-controller/pkg/libovsdb/util/nb_global.go index 57d9c69b97..d1bc11f0a2 100644 --- a/go-controller/pkg/libovsdb/util/nb_global.go +++ b/go-controller/pkg/libovsdb/util/nb_global.go @@ -3,7 +3,7 @@ package util import ( "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/util/port.go b/go-controller/pkg/libovsdb/util/port.go index 8e5cbe616f..bc82042419 100644 --- a/go-controller/pkg/libovsdb/util/port.go +++ b/go-controller/pkg/libovsdb/util/port.go @@ -5,7 +5,7 @@ import ( "net" "strings" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/libovsdb/util/router.go b/go-controller/pkg/libovsdb/util/router.go index 12ee755d28..b316fea0e3 100644 --- a/go-controller/pkg/libovsdb/util/router.go +++ b/go-controller/pkg/libovsdb/util/router.go @@ -8,7 +8,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/libovsdb/util/switch.go b/go-controller/pkg/libovsdb/util/switch.go index c0a3b0ca52..c3b1eb9e02 100644 --- a/go-controller/pkg/libovsdb/util/switch.go +++ b/go-controller/pkg/libovsdb/util/switch.go @@ -9,7 +9,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/metrics/metrics.go b/go-controller/pkg/metrics/metrics.go index ea86a65c0d..b8e9d736c7 100644 --- a/go-controller/pkg/metrics/metrics.go +++ b/go-controller/pkg/metrics/metrics.go @@ -24,7 +24,7 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" diff --git a/go-controller/pkg/metrics/ovn.go b/go-controller/pkg/metrics/ovn.go index 63f057e38f..51510fd7f9 100644 --- a/go-controller/pkg/metrics/ovn.go +++ b/go-controller/pkg/metrics/ovn.go @@ -9,7 +9,7 @@ import ( "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovsops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/ovs" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" diff --git a/go-controller/pkg/metrics/ovnkube_controller.go b/go-controller/pkg/metrics/ovnkube_controller.go index a4cb9fd693..30c846d07c 100644 --- a/go-controller/pkg/metrics/ovnkube_controller.go +++ b/go-controller/pkg/metrics/ovnkube_controller.go @@ -16,9 +16,9 @@ import ( "k8s.io/client-go/util/workqueue" klog "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/cache" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/cache" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/metrics/ovs.go b/go-controller/pkg/metrics/ovs.go index 455142ae6b..718fa031e7 100644 --- a/go-controller/pkg/metrics/ovs.go +++ b/go-controller/pkg/metrics/ovs.go @@ -14,7 +14,7 @@ import ( "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" ovsops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops/ovs" diff --git a/go-controller/pkg/metrics/recorders/duration.go b/go-controller/pkg/metrics/recorders/duration.go index c0ae704e8f..4376283c20 100644 --- a/go-controller/pkg/metrics/recorders/duration.go +++ b/go-controller/pkg/metrics/recorders/duration.go @@ -11,10 +11,10 @@ import ( "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/cache" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/cache" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/metrics/recorders/duration_test.go b/go-controller/pkg/metrics/recorders/duration_test.go index ee436d8d1b..2e725f99c3 100644 --- a/go-controller/pkg/metrics/recorders/duration_test.go +++ b/go-controller/pkg/metrics/recorders/duration_test.go @@ -12,7 +12,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" fakeclientgo "k8s.io/client-go/kubernetes/fake" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" egressfirewallfake "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressfirewall/v1/apis/clientset/versioned/fake" egressipfake "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressip/v1/apis/clientset/versioned/fake" diff --git a/go-controller/pkg/nbdb/acl.go b/go-controller/pkg/nbdb/acl.go index 0c2840c178..5415af620b 100644 --- a/go-controller/pkg/nbdb/acl.go +++ b/go-controller/pkg/nbdb/acl.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ACLTable = "ACL" diff --git a/go-controller/pkg/nbdb/address_set.go b/go-controller/pkg/nbdb/address_set.go index e8a836e2d1..be37eaf40d 100644 --- a/go-controller/pkg/nbdb/address_set.go +++ b/go-controller/pkg/nbdb/address_set.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const AddressSetTable = "Address_Set" diff --git a/go-controller/pkg/nbdb/bfd.go b/go-controller/pkg/nbdb/bfd.go index 46646e81a7..4211ceae80 100644 --- a/go-controller/pkg/nbdb/bfd.go +++ b/go-controller/pkg/nbdb/bfd.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const BFDTable = "BFD" diff --git a/go-controller/pkg/nbdb/chassis_template_var.go b/go-controller/pkg/nbdb/chassis_template_var.go index 602c3f5223..59c61d07de 100644 --- a/go-controller/pkg/nbdb/chassis_template_var.go +++ b/go-controller/pkg/nbdb/chassis_template_var.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ChassisTemplateVarTable = "Chassis_Template_Var" diff --git a/go-controller/pkg/nbdb/connection.go b/go-controller/pkg/nbdb/connection.go index baf6da344b..da2aa4bca3 100644 --- a/go-controller/pkg/nbdb/connection.go +++ b/go-controller/pkg/nbdb/connection.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ConnectionTable = "Connection" diff --git a/go-controller/pkg/nbdb/copp.go b/go-controller/pkg/nbdb/copp.go index 1e146b657e..54bbc841f6 100644 --- a/go-controller/pkg/nbdb/copp.go +++ b/go-controller/pkg/nbdb/copp.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const CoppTable = "Copp" diff --git a/go-controller/pkg/nbdb/dhcp_options.go b/go-controller/pkg/nbdb/dhcp_options.go index fd68ebee2d..7b58c1fe35 100644 --- a/go-controller/pkg/nbdb/dhcp_options.go +++ b/go-controller/pkg/nbdb/dhcp_options.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DHCPOptionsTable = "DHCP_Options" diff --git a/go-controller/pkg/nbdb/dhcp_relay.go b/go-controller/pkg/nbdb/dhcp_relay.go index f0e973ab78..5e10f2aff4 100644 --- a/go-controller/pkg/nbdb/dhcp_relay.go +++ b/go-controller/pkg/nbdb/dhcp_relay.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DHCPRelayTable = "DHCP_Relay" diff --git a/go-controller/pkg/nbdb/dns.go b/go-controller/pkg/nbdb/dns.go index 285d5df280..a15b166a80 100644 --- a/go-controller/pkg/nbdb/dns.go +++ b/go-controller/pkg/nbdb/dns.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DNSTable = "DNS" diff --git a/go-controller/pkg/nbdb/forwarding_group.go b/go-controller/pkg/nbdb/forwarding_group.go index 1a0657559d..82078551d3 100644 --- a/go-controller/pkg/nbdb/forwarding_group.go +++ b/go-controller/pkg/nbdb/forwarding_group.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ForwardingGroupTable = "Forwarding_Group" diff --git a/go-controller/pkg/nbdb/gateway_chassis.go b/go-controller/pkg/nbdb/gateway_chassis.go index 15935847b8..de6925f4c3 100644 --- a/go-controller/pkg/nbdb/gateway_chassis.go +++ b/go-controller/pkg/nbdb/gateway_chassis.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const GatewayChassisTable = "Gateway_Chassis" diff --git a/go-controller/pkg/nbdb/ha_chassis.go b/go-controller/pkg/nbdb/ha_chassis.go index dc09d1ec9d..8c171ddd09 100644 --- a/go-controller/pkg/nbdb/ha_chassis.go +++ b/go-controller/pkg/nbdb/ha_chassis.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const HAChassisTable = "HA_Chassis" diff --git a/go-controller/pkg/nbdb/ha_chassis_group.go b/go-controller/pkg/nbdb/ha_chassis_group.go index bdda95aaf7..6d304fd2e9 100644 --- a/go-controller/pkg/nbdb/ha_chassis_group.go +++ b/go-controller/pkg/nbdb/ha_chassis_group.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const HAChassisGroupTable = "HA_Chassis_Group" diff --git a/go-controller/pkg/nbdb/load_balancer.go b/go-controller/pkg/nbdb/load_balancer.go index 03bcd76011..8bddd25f4a 100644 --- a/go-controller/pkg/nbdb/load_balancer.go +++ b/go-controller/pkg/nbdb/load_balancer.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LoadBalancerTable = "Load_Balancer" diff --git a/go-controller/pkg/nbdb/load_balancer_group.go b/go-controller/pkg/nbdb/load_balancer_group.go index 7759249674..8d39f095ab 100644 --- a/go-controller/pkg/nbdb/load_balancer_group.go +++ b/go-controller/pkg/nbdb/load_balancer_group.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LoadBalancerGroupTable = "Load_Balancer_Group" diff --git a/go-controller/pkg/nbdb/load_balancer_health_check.go b/go-controller/pkg/nbdb/load_balancer_health_check.go index c8163fa007..8fc7020364 100644 --- a/go-controller/pkg/nbdb/load_balancer_health_check.go +++ b/go-controller/pkg/nbdb/load_balancer_health_check.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LoadBalancerHealthCheckTable = "Load_Balancer_Health_Check" diff --git a/go-controller/pkg/nbdb/logical_router.go b/go-controller/pkg/nbdb/logical_router.go index 81c5efaf9d..f303af80fa 100644 --- a/go-controller/pkg/nbdb/logical_router.go +++ b/go-controller/pkg/nbdb/logical_router.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalRouterTable = "Logical_Router" diff --git a/go-controller/pkg/nbdb/logical_router_policy.go b/go-controller/pkg/nbdb/logical_router_policy.go index 7272dbb8ad..51b29ea706 100644 --- a/go-controller/pkg/nbdb/logical_router_policy.go +++ b/go-controller/pkg/nbdb/logical_router_policy.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalRouterPolicyTable = "Logical_Router_Policy" diff --git a/go-controller/pkg/nbdb/logical_router_port.go b/go-controller/pkg/nbdb/logical_router_port.go index d39fe0db42..1d220b82d1 100644 --- a/go-controller/pkg/nbdb/logical_router_port.go +++ b/go-controller/pkg/nbdb/logical_router_port.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalRouterPortTable = "Logical_Router_Port" diff --git a/go-controller/pkg/nbdb/logical_router_static_route.go b/go-controller/pkg/nbdb/logical_router_static_route.go index ce966e5707..205741626c 100644 --- a/go-controller/pkg/nbdb/logical_router_static_route.go +++ b/go-controller/pkg/nbdb/logical_router_static_route.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalRouterStaticRouteTable = "Logical_Router_Static_Route" diff --git a/go-controller/pkg/nbdb/logical_switch.go b/go-controller/pkg/nbdb/logical_switch.go index 50b8214ad3..8a342dd315 100644 --- a/go-controller/pkg/nbdb/logical_switch.go +++ b/go-controller/pkg/nbdb/logical_switch.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalSwitchTable = "Logical_Switch" diff --git a/go-controller/pkg/nbdb/logical_switch_port.go b/go-controller/pkg/nbdb/logical_switch_port.go index c048f76541..b211672bff 100644 --- a/go-controller/pkg/nbdb/logical_switch_port.go +++ b/go-controller/pkg/nbdb/logical_switch_port.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalSwitchPortTable = "Logical_Switch_Port" diff --git a/go-controller/pkg/nbdb/meter.go b/go-controller/pkg/nbdb/meter.go index 09b7e9e6a4..e3a4a713da 100644 --- a/go-controller/pkg/nbdb/meter.go +++ b/go-controller/pkg/nbdb/meter.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MeterTable = "Meter" diff --git a/go-controller/pkg/nbdb/meter_band.go b/go-controller/pkg/nbdb/meter_band.go index 4ef0d901ac..1e1e7ad421 100644 --- a/go-controller/pkg/nbdb/meter_band.go +++ b/go-controller/pkg/nbdb/meter_band.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MeterBandTable = "Meter_Band" diff --git a/go-controller/pkg/nbdb/mirror.go b/go-controller/pkg/nbdb/mirror.go index 57e3b01f6d..352cc238af 100644 --- a/go-controller/pkg/nbdb/mirror.go +++ b/go-controller/pkg/nbdb/mirror.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MirrorTable = "Mirror" diff --git a/go-controller/pkg/nbdb/model.go b/go-controller/pkg/nbdb/model.go index daabac4530..9fbe25db4f 100644 --- a/go-controller/pkg/nbdb/model.go +++ b/go-controller/pkg/nbdb/model.go @@ -6,8 +6,8 @@ package nbdb import ( "encoding/json" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // FullDatabaseModel returns the DatabaseModel object to be used in libovsdb diff --git a/go-controller/pkg/nbdb/nat.go b/go-controller/pkg/nbdb/nat.go index 4bd1b7ed49..b10bbd25b3 100644 --- a/go-controller/pkg/nbdb/nat.go +++ b/go-controller/pkg/nbdb/nat.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const NATTable = "NAT" diff --git a/go-controller/pkg/nbdb/nb_global.go b/go-controller/pkg/nbdb/nb_global.go index bae9e20f20..3779d259fe 100644 --- a/go-controller/pkg/nbdb/nb_global.go +++ b/go-controller/pkg/nbdb/nb_global.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const NBGlobalTable = "NB_Global" diff --git a/go-controller/pkg/nbdb/port_group.go b/go-controller/pkg/nbdb/port_group.go index bf4fa809bc..525f84d90e 100644 --- a/go-controller/pkg/nbdb/port_group.go +++ b/go-controller/pkg/nbdb/port_group.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const PortGroupTable = "Port_Group" diff --git a/go-controller/pkg/nbdb/qos.go b/go-controller/pkg/nbdb/qos.go index d25322b4b2..3303f61c4d 100644 --- a/go-controller/pkg/nbdb/qos.go +++ b/go-controller/pkg/nbdb/qos.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const QoSTable = "QoS" diff --git a/go-controller/pkg/nbdb/sample.go b/go-controller/pkg/nbdb/sample.go index 639393a1e6..d53ef23825 100644 --- a/go-controller/pkg/nbdb/sample.go +++ b/go-controller/pkg/nbdb/sample.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SampleTable = "Sample" diff --git a/go-controller/pkg/nbdb/sample_collector.go b/go-controller/pkg/nbdb/sample_collector.go index 50f0659040..487465ee0f 100644 --- a/go-controller/pkg/nbdb/sample_collector.go +++ b/go-controller/pkg/nbdb/sample_collector.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SampleCollectorTable = "Sample_Collector" diff --git a/go-controller/pkg/nbdb/sampling_app.go b/go-controller/pkg/nbdb/sampling_app.go index a152b4237d..cd7458da83 100644 --- a/go-controller/pkg/nbdb/sampling_app.go +++ b/go-controller/pkg/nbdb/sampling_app.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SamplingAppTable = "Sampling_App" diff --git a/go-controller/pkg/nbdb/ssl.go b/go-controller/pkg/nbdb/ssl.go index ddaba5d322..847ea8c362 100644 --- a/go-controller/pkg/nbdb/ssl.go +++ b/go-controller/pkg/nbdb/ssl.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SSLTable = "SSL" diff --git a/go-controller/pkg/nbdb/static_mac_binding.go b/go-controller/pkg/nbdb/static_mac_binding.go index 15207e6484..c3397e3e70 100644 --- a/go-controller/pkg/nbdb/static_mac_binding.go +++ b/go-controller/pkg/nbdb/static_mac_binding.go @@ -3,7 +3,7 @@ package nbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const StaticMACBindingTable = "Static_MAC_Binding" diff --git a/go-controller/pkg/node/default_node_network_controller.go b/go-controller/pkg/node/default_node_network_controller.go index f9f3b36ec5..7a75c36984 100644 --- a/go-controller/pkg/node/default_node_network_controller.go +++ b/go-controller/pkg/node/default_node_network_controller.go @@ -28,7 +28,7 @@ import ( utilnet "k8s.io/utils/net" "sigs.k8s.io/knftables" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" honode "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/controller" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni" diff --git a/go-controller/pkg/node/gateway.go b/go-controller/pkg/node/gateway.go index 1b4544f89b..38a7ad2910 100644 --- a/go-controller/pkg/node/gateway.go +++ b/go-controller/pkg/node/gateway.go @@ -424,6 +424,11 @@ func gatewayInitInternal(nodeName, gwIntf, egressGatewayIntf string, gwNextHops } } + // Set static FDB entry for LOCAL port + if err := util.SetStaticFDBEntry(gatewayBridge.bridgeName, gatewayBridge.bridgeName, gatewayBridge.macAddress); err != nil { + return nil, nil, err + } + l3GwConfig := util.L3GatewayConfig{ Mode: config.Gateway.Mode, ChassisID: chassisID, diff --git a/go-controller/pkg/node/gateway_init_linux_test.go b/go-controller/pkg/node/gateway_init_linux_test.go index 9acc0143eb..efa9f0f38f 100644 --- a/go-controller/pkg/node/gateway_init_linux_test.go +++ b/go-controller/pkg/node/gateway_init_linux_test.go @@ -195,6 +195,9 @@ func shareGatewayInterfaceTest(app *cli.App, testNS ns.NetNS, Cmd: "ovs-vsctl --timeout=15 --if-exists get Open_vSwitch . other_config:hw-offload", Output: fmt.Sprintf("%t", hwOffload), }) + fexec.AddFakeCmdsNoOutputNoError([]string{ + "ovs-appctl --timeout=15 fdb/add breth0 breth0 0 " + eth0MAC, + }) fexec.AddFakeCmd(&ovntest.ExpectedCmd{ Cmd: "ovs-vsctl --timeout=15 get Interface patch-breth0_node1-to-br-int ofport", Output: "5", @@ -641,6 +644,9 @@ func shareGatewayInterfaceDPUTest(app *cli.App, testNS ns.NetNS, Cmd: "ovs-vsctl --timeout=15 --if-exists get Open_vSwitch . other_config:hw-offload", Output: "false", }) + fexec.AddFakeCmdsNoOutputNoError([]string{ + fmt.Sprintf("ovs-appctl --timeout=15 fdb/add %s %s 0 %s", brphys, brphys, hostMAC), + }) // GetDPUHostInterface fexec.AddFakeCmd(&ovntest.ExpectedCmd{ Cmd: "ovs-vsctl --timeout=15 list-ports " + brphys, @@ -1094,6 +1100,9 @@ OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0` Cmd: "ovs-vsctl --timeout=15 --if-exists get Open_vSwitch . other_config:hw-offload", Output: "false", }) + fexec.AddFakeCmdsNoOutputNoError([]string{ + "ovs-appctl --timeout=15 fdb/add breth0 breth0 0 " + eth0MAC, + }) fexec.AddFakeCmd(&ovntest.ExpectedCmd{ Cmd: "ovs-vsctl --timeout=15 get Interface patch-breth0_node1-to-br-int ofport", Output: "5", diff --git a/go-controller/pkg/node/gateway_shared_intf.go b/go-controller/pkg/node/gateway_shared_intf.go index 974a52f093..e4be5e7f1a 100644 --- a/go-controller/pkg/node/gateway_shared_intf.go +++ b/go-controller/pkg/node/gateway_shared_intf.go @@ -1897,10 +1897,10 @@ func commonFlows(hostSubnets []*net.IPNet, bridge *bridgeConfiguration) ([]strin for _, netConfig := range bridge.patchedNetConfigs() { actions += "output:" + netConfig.ofPortPatch + "," } - actions += strip_vlan + "output:" + ofPortHost + actions += strip_vlan + "NORMAL" dftFlows = append(dftFlows, - fmt.Sprintf("cookie=%s, priority=10, table=0, in_port=%s, %s dl_dst=%s, actions=%s", - defaultOpenFlowCookie, ofPortPhys, match_vlan, bridgeMacAddress, actions)) + fmt.Sprintf("cookie=%s, priority=10, table=0, %s dl_dst=%s, actions=%s", + defaultOpenFlowCookie, match_vlan, bridgeMacAddress, actions)) } // table 0, check packets coming from OVN have the correct mac address. Low priority flows that are a catch all diff --git a/go-controller/pkg/node/gateway_udn_test.go b/go-controller/pkg/node/gateway_udn_test.go index 9f66247599..1c02ffbbdb 100644 --- a/go-controller/pkg/node/gateway_udn_test.go +++ b/go-controller/pkg/node/gateway_udn_test.go @@ -171,6 +171,9 @@ func setUpGatewayFakeOVSCommands(fexec *ovntest.FakeExec) { Cmd: "ovs-vsctl --timeout=15 --if-exists get Open_vSwitch . other_config:hw-offload", Output: "false", }) + fexec.AddFakeCmdsNoOutputNoError([]string{ + "ovs-appctl --timeout=15 fdb/add breth0 breth0 0 00:00:00:55:66:99", + }) fexec.AddFakeCmd(&ovntest.ExpectedCmd{ Cmd: "ovs-vsctl --timeout=15 get Interface patch-breth0_worker1-to-br-int ofport", Output: "5", diff --git a/go-controller/pkg/observability/observability.go b/go-controller/pkg/observability/observability.go index a3ffbb54f3..9348966f13 100644 --- a/go-controller/pkg/observability/observability.go +++ b/go-controller/pkg/observability/observability.go @@ -10,8 +10,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/observability/observability_test.go b/go-controller/pkg/observability/observability_test.go index cfda506362..a247150093 100644 --- a/go-controller/pkg/observability/observability_test.go +++ b/go-controller/pkg/observability/observability_test.go @@ -4,7 +4,7 @@ import ( "strings" "time" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/address_set/address_set.go b/go-controller/pkg/ovn/address_set/address_set.go index a0b709eafc..ea5e035e22 100644 --- a/go-controller/pkg/ovn/address_set/address_set.go +++ b/go-controller/pkg/ovn/address_set/address_set.go @@ -7,8 +7,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/address_set/address_set_test.go b/go-controller/pkg/ovn/address_set/address_set_test.go index 40dec33d24..4c1c0af814 100644 --- a/go-controller/pkg/ovn/address_set/address_set_test.go +++ b/go-controller/pkg/ovn/address_set/address_set_test.go @@ -5,8 +5,8 @@ import ( "github.com/onsi/gomega" "github.com/urfave/cli/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/address_set/fake_address_set.go b/go-controller/pkg/ovn/address_set/fake_address_set.go index 48f56bb616..2f783b3486 100644 --- a/go-controller/pkg/ovn/address_set/fake_address_set.go +++ b/go-controller/pkg/ovn/address_set/fake_address_set.go @@ -11,7 +11,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/address_set/mocks/AddressSet.go b/go-controller/pkg/ovn/address_set/mocks/AddressSet.go index f8b9761b26..f5dd89448f 100644 --- a/go-controller/pkg/ovn/address_set/mocks/AddressSet.go +++ b/go-controller/pkg/ovn/address_set/mocks/AddressSet.go @@ -3,7 +3,7 @@ package mocks import ( - ovsdb "github.com/ovn-org/libovsdb/ovsdb" + ovsdb "github.com/ovn-kubernetes/libovsdb/ovsdb" mock "github.com/stretchr/testify/mock" ) diff --git a/go-controller/pkg/ovn/address_set/mocks/AddressSetFactory.go b/go-controller/pkg/ovn/address_set/mocks/AddressSetFactory.go index f76d6f132a..0d18215185 100644 --- a/go-controller/pkg/ovn/address_set/mocks/AddressSetFactory.go +++ b/go-controller/pkg/ovn/address_set/mocks/AddressSetFactory.go @@ -8,7 +8,7 @@ import ( ops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" - ovsdb "github.com/ovn-org/libovsdb/ovsdb" + ovsdb "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // AddressSetFactory is an autogenerated mock type for the AddressSetFactory type diff --git a/go-controller/pkg/ovn/base_network_controller.go b/go-controller/pkg/ovn/base_network_controller.go index db56f42cb9..02c82b172f 100644 --- a/go-controller/pkg/ovn/base_network_controller.go +++ b/go-controller/pkg/ovn/base_network_controller.go @@ -22,8 +22,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/allocator/pod" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" @@ -191,8 +191,7 @@ type BaseNetworkController struct { func (oc *BaseNetworkController) reconcile(netInfo util.NetInfo, setNodeFailed func(string)) error { // gather some information first - var err error - var retryNodes []*corev1.Node + var reconcileNodes []string oc.localZoneNodes.Range(func(key, _ any) bool { nodeName := key.(string) wasAdvertised := util.IsPodNetworkAdvertisedAtNode(oc, nodeName) @@ -201,41 +200,57 @@ func (oc *BaseNetworkController) reconcile(netInfo util.NetInfo, setNodeFailed f // noop return true } - var node *corev1.Node - node, err = oc.watchFactory.GetNode(nodeName) - if err != nil { - return false - } - retryNodes = append(retryNodes, node) + reconcileNodes = append(reconcileNodes, nodeName) return true }) - if err != nil { - return fmt.Errorf("failed to reconcile network %s: %w", oc.GetNetworkName(), err) - } reconcileRoutes := oc.routeImportManager != nil && oc.routeImportManager.NeedsReconciliation(netInfo) reconcilePendingPods := !oc.IsDefault() && !oc.ReconcilableNetInfo.EqualNADs(netInfo.GetNADs()...) + reconcileNamespaces := sets.NewString() + if oc.IsPrimaryNetwork() { + // since CanServeNamespace filters out namespace events for namespaces unknown + // to be served by this primary network, we need to reconcile namespaces once + // the network is reconfigured to serve a namespace. + reconcileNamespaces = sets.NewString(netInfo.GetNADNamespaces()...).Difference( + sets.NewString(oc.GetNADNamespaces()...)) + } // set the new NetInfo, point of no return - err = util.ReconcileNetInfo(oc.ReconcilableNetInfo, netInfo) + err := util.ReconcileNetInfo(oc.ReconcilableNetInfo, netInfo) if err != nil { return fmt.Errorf("failed to reconcile network information for network %s: %v", oc.GetNetworkName(), err) } + oc.doReconcile(reconcileRoutes, reconcilePendingPods, reconcileNodes, setNodeFailed, reconcileNamespaces.List()) + + return nil +} + +// doReconcile performs the reconciliation after the controller NetInfo has already being +// updated with the changes. What needs to be reconciled should already be known and +// provided on the arguments of the method. This method returns no error and logs them +// instead since once the controller NetInfo has been updated there is no point in retrying. +func (oc *BaseNetworkController) doReconcile(reconcileRoutes, reconcilePendingPods bool, + reconcileNodes []string, setNodeFailed func(string), reconcileNamespaces []string) { if reconcileRoutes { - err = oc.routeImportManager.ReconcileNetwork(oc.GetNetworkName()) + err := oc.routeImportManager.ReconcileNetwork(oc.GetNetworkName()) if err != nil { klog.Errorf("Failed to reconcile network %s on route import controller: %v", oc.GetNetworkName(), err) } } - for _, node := range retryNodes { - setNodeFailed(node.Name) + for _, nodeName := range reconcileNodes { + setNodeFailed(nodeName) + node, err := oc.watchFactory.GetNode(nodeName) + if err != nil { + klog.Infof("Failed to get node %s for reconciling network %s: %v", nodeName, oc.GetNetworkName(), err) + continue + } err = oc.retryNodes.AddRetryObjWithAddNoBackoff(node) if err != nil { - klog.Errorf("Failed to retry node %s for network %s: %v", node.Name, oc.GetNetworkName(), err) + klog.Errorf("Failed to retry node %s for network %s: %v", nodeName, oc.GetNetworkName(), err) } } - if len(retryNodes) > 0 { + if len(reconcileNodes) > 0 { oc.retryNodes.RequestRetryObjs() } @@ -245,7 +260,27 @@ func (oc *BaseNetworkController) reconcile(netInfo util.NetInfo, setNodeFailed f } } - return nil + // reconciles namespaces that were added to the network, this will trigger namespace add event and + // network controller creates the address set for the namespace. + // To update gress policy ACLs with peer namespace address set, invoke requeuePeerNamespace method after + // address set is created for the namespace. + namespaceAdded := false + for _, ns := range reconcileNamespaces { + namespace, err := oc.watchFactory.GetNamespace(ns) + if err != nil { + klog.Infof("Failed to get namespace %s for reconciling network %s: %v", ns, oc.GetNetworkName(), err) + continue + } + err = oc.retryNamespaces.AddRetryObjWithAddNoBackoff(namespace) + if err != nil { + klog.Infof("Failed to retry namespace %s for network %s: %v", ns, oc.GetNetworkName(), err) + continue + } + namespaceAdded = true + } + if namespaceAdded { + oc.retryNamespaces.RequestRetryObjs() + } } // BaseSecondaryNetworkController structure holds per-network fields and network specific diff --git a/go-controller/pkg/ovn/base_network_controller_pods.go b/go-controller/pkg/ovn/base_network_controller_pods.go index c6a105aa2a..1147983e79 100644 --- a/go-controller/pkg/ovn/base_network_controller_pods.go +++ b/go-controller/pkg/ovn/base_network_controller_pods.go @@ -18,8 +18,8 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ipallocator "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/allocator/ip" subnetipallocator "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/allocator/ip/subnet" diff --git a/go-controller/pkg/ovn/base_network_controller_policy.go b/go-controller/pkg/ovn/base_network_controller_policy.go index f4c10bfacf..bf1a253518 100644 --- a/go-controller/pkg/ovn/base_network_controller_policy.go +++ b/go-controller/pkg/ovn/base_network_controller_policy.go @@ -14,8 +14,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" @@ -23,6 +23,7 @@ import ( libovsdbutil "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/util" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/metrics" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" + "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/retry" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/util" utilerrors "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/util/errors" @@ -160,8 +161,8 @@ type networkPolicy struct { // network policy owns only 1 local pod handler localPodHandler *factory.Handler - // peer namespace handlers - nsHandlerList []*factory.Handler + // peer namespace reconcilers + reconcilePeerNamespaces []*peerNamespacesRetry // peerAddressSets stores PodSelectorAddressSet keys for peers that this network policy was successfully added to. // Required for cleanup. peerAddressSets []string @@ -186,17 +187,22 @@ type networkPolicy struct { cancelableContext *util.CancelableContext } +type peerNamespacesRetry struct { + retryFramework *retry.RetryFramework + handler *factory.Handler +} + func NewNetworkPolicy(policy *knet.NetworkPolicy) *networkPolicy { policyTypeIngress, policyTypeEgress := getPolicyType(policy) np := &networkPolicy{ - name: policy.Name, - namespace: policy.Namespace, - ingressPolicies: make([]*gressPolicy, 0), - egressPolicies: make([]*gressPolicy, 0), - isIngress: policyTypeIngress, - isEgress: policyTypeEgress, - nsHandlerList: make([]*factory.Handler, 0), - localPods: sync.Map{}, + name: policy.Name, + namespace: policy.Namespace, + ingressPolicies: make([]*gressPolicy, 0), + egressPolicies: make([]*gressPolicy, 0), + isIngress: policyTypeIngress, + isEgress: policyTypeEgress, + reconcilePeerNamespaces: make([]*peerNamespacesRetry, 0), + localPods: sync.Map{}, } return np } @@ -1490,6 +1496,47 @@ func (bnc *BaseNetworkController) peerNamespaceUpdate(np *networkPolicy, gp *gre return err } +// requeuePeerNamespace enqueues the namespace into network policy peer namespace +// retry framework object(s) which need to be retried immediately with add event. +func (bnc *BaseNetworkController) requeuePeerNamespace(namespace *corev1.Namespace) error { + var errors []error + npKeys := bnc.networkPolicies.GetKeys() + for _, npKey := range npKeys { + err := bnc.networkPolicies.DoWithLock(npKey, func(npKey string) error { + np, ok := bnc.networkPolicies.Load(npKey) + if !ok { + return nil + } + np.RLock() + defer np.RUnlock() + if np.deleted { + return nil + } + var errors []error + for _, reconcilePeerNamespace := range np.reconcilePeerNamespaces { + // Filter out namespace when it's labels not matching with network policy peer namespace + // selector. + if !reconcilePeerNamespace.handler.FilterFunc(namespace) { + continue + } + err := reconcilePeerNamespace.retryFramework.AddRetryObjWithAddNoBackoff(namespace) + if err != nil { + errors = append(errors, fmt.Errorf("failed to retry peer namespace %s for network policy %s on network %s: %w", + namespace.Name, npKey, bnc.GetNetworkName(), err)) + continue + } + reconcilePeerNamespace.retryFramework.RequestRetryObjs() + } + return utilerrors.Join(errors...) + }) + if err != nil { + errors = append(errors, fmt.Errorf("failed to retry peer namespaces for network policy %s on network %s: %w", + npKey, bnc.GetNetworkName(), err)) + } + } + return utilerrors.Join(errors...) +} + // addPeerNamespaceHandler starts a watcher for PeerNamespaceSelectorType. // Sync function and Add event for every existing namespace will be executed sequentially first, and an error will be // returned if something fails. @@ -1523,7 +1570,18 @@ func (bnc *BaseNetworkController) addPeerNamespaceHandler( return err } - np.nsHandlerList = append(np.nsHandlerList, namespaceHandler) + // Add peer namespace retry framework object into np.reconcilePeerNamespaces so that when + // a new peer namespace is newly created later under UDN network, it gets reconciled and + // address set is created for the namespace. so we must reconcile it for network policy + // as well to update gress policy ACL with matching peer namespace address set. + if bnc.IsPrimaryNetwork() { + np.Lock() + np.reconcilePeerNamespaces = append(np.reconcilePeerNamespaces, + &peerNamespacesRetry{retryFramework: retryPeerNamespaces, + handler: namespaceHandler}) + np.Unlock() + } + return nil } @@ -1537,10 +1595,10 @@ func (bnc *BaseNetworkController) shutdownHandlers(np *networkPolicy) { bnc.watchFactory.RemovePodHandler(np.localPodHandler) np.localPodHandler = nil } - for _, handler := range np.nsHandlerList { - bnc.watchFactory.RemoveNamespaceHandler(handler) + for _, retry := range np.reconcilePeerNamespaces { + bnc.watchFactory.RemoveNamespaceHandler(retry.handler) } - np.nsHandlerList = make([]*factory.Handler, 0) + np.reconcilePeerNamespaces = make([]*peerNamespacesRetry, 0) } // The following 2 functions should return the same key for network policy based on k8s on internal networkPolicy object diff --git a/go-controller/pkg/ovn/base_network_controller_secondary.go b/go-controller/pkg/ovn/base_network_controller_secondary.go index cef46aaa6e..f9c6d0b18f 100644 --- a/go-controller/pkg/ovn/base_network_controller_secondary.go +++ b/go-controller/pkg/ovn/base_network_controller_secondary.go @@ -18,8 +18,8 @@ import ( utilnet "k8s.io/utils/net" "k8s.io/utils/ptr" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" @@ -679,7 +679,15 @@ func (bsnc *BaseSecondaryNetworkController) AddNamespaceForSecondaryNetwork(ns * if err != nil { return fmt.Errorf("failed to ensure namespace locked: %v", err) } - defer nsUnlock() + nsUnlock() + // Enqueue the UDN namespace into network policy controller if it needs to be + // processed by network policy peer namespace handlers. + if bsnc.IsPrimaryNetwork() { + err = bsnc.requeuePeerNamespace(ns) + if err != nil { + return fmt.Errorf("failed to requeue peer namespace %s: %v", ns.Name, err) + } + } return nil } diff --git a/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy.go b/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy.go index 1433544a0b..b1d345bcf4 100644 --- a/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy.go +++ b/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy.go @@ -16,8 +16,8 @@ import ( "k8s.io/klog/v2" anpapi "sigs.k8s.io/network-policy-api/apis/v1alpha1" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" libovsdbutil "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/util" diff --git a/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy_controller.go b/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy_controller.go index 1d230a6a45..080dd22d19 100644 --- a/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy_controller.go +++ b/go-controller/pkg/ovn/controller/admin_network_policy/admin_network_policy_controller.go @@ -21,7 +21,7 @@ import ( anpinformer "sigs.k8s.io/network-policy-api/pkg/client/informers/externalversions/apis/v1alpha1" anplister "sigs.k8s.io/network-policy-api/pkg/client/listers/apis/v1alpha1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/controller/admin_network_policy/repair.go b/go-controller/pkg/ovn/controller/admin_network_policy/repair.go index 55bf85e71f..84c0cf2a50 100644 --- a/go-controller/pkg/ovn/controller/admin_network_policy/repair.go +++ b/go-controller/pkg/ovn/controller/admin_network_policy/repair.go @@ -9,7 +9,7 @@ import ( "k8s.io/klog/v2" anpapi "sigs.k8s.io/network-policy-api/apis/v1alpha1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/controller/admin_network_policy/status_test.go b/go-controller/pkg/ovn/controller/admin_network_policy/status_test.go index ac63e873e6..6a28fa60d3 100644 --- a/go-controller/pkg/ovn/controller/admin_network_policy/status_test.go +++ b/go-controller/pkg/ovn/controller/admin_network_policy/status_test.go @@ -13,7 +13,7 @@ import ( anpapi "sigs.k8s.io/network-policy-api/apis/v1alpha1" anpfake "sigs.k8s.io/network-policy-api/pkg/client/clientset/versioned/fake" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/controller/apbroute/external_controller_policy_test.go b/go-controller/pkg/ovn/controller/apbroute/external_controller_policy_test.go index 802f31e7bb..2605fad7bc 100644 --- a/go-controller/pkg/ovn/controller/apbroute/external_controller_policy_test.go +++ b/go-controller/pkg/ovn/controller/apbroute/external_controller_policy_test.go @@ -15,7 +15,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" adminpolicybasedrouteapi "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/adminpolicybasedroute/v1" diff --git a/go-controller/pkg/ovn/controller/apbroute/master_controller.go b/go-controller/pkg/ovn/controller/apbroute/master_controller.go index 324da524bd..82549c35dd 100644 --- a/go-controller/pkg/ovn/controller/apbroute/master_controller.go +++ b/go-controller/pkg/ovn/controller/apbroute/master_controller.go @@ -14,7 +14,7 @@ import ( corev1listers "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" adminpolicybasedrouteapi "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/adminpolicybasedroute/v1" adminpolicybasedrouteapply "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/adminpolicybasedroute/v1/apis/applyconfiguration/adminpolicybasedroute/v1" diff --git a/go-controller/pkg/ovn/controller/apbroute/network_client.go b/go-controller/pkg/ovn/controller/apbroute/network_client.go index 2f3de1da3a..5faca37f55 100644 --- a/go-controller/pkg/ovn/controller/apbroute/network_client.go +++ b/go-controller/pkg/ovn/controller/apbroute/network_client.go @@ -14,8 +14,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" adminpolicybasedroutelisters "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/adminpolicybasedroute/v1/apis/listers/adminpolicybasedroute/v1" diff --git a/go-controller/pkg/ovn/controller/egressservice/egressservice_zone.go b/go-controller/pkg/ovn/controller/egressservice/egressservice_zone.go index 23f9f8f665..b9c68eb594 100644 --- a/go-controller/pkg/ovn/controller/egressservice/egressservice_zone.go +++ b/go-controller/pkg/ovn/controller/egressservice/egressservice_zone.go @@ -23,8 +23,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" egressserviceapi "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressservice/v1" diff --git a/go-controller/pkg/ovn/controller/egressservice/egressservice_zone_service.go b/go-controller/pkg/ovn/controller/egressservice/egressservice_zone_service.go index e19a3cd77f..192204171b 100644 --- a/go-controller/pkg/ovn/controller/egressservice/egressservice_zone_service.go +++ b/go-controller/pkg/ovn/controller/egressservice/egressservice_zone_service.go @@ -13,7 +13,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/controller/network_qos/network_qos_controller.go b/go-controller/pkg/ovn/controller/network_qos/network_qos_controller.go index 15511e35d8..3a75fc0f30 100644 --- a/go-controller/pkg/ovn/controller/network_qos/network_qos_controller.go +++ b/go-controller/pkg/ovn/controller/network_qos/network_qos_controller.go @@ -21,7 +21,7 @@ import ( "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" networkqosapi "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/networkqos/v1alpha1" networkqosclientset "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/networkqos/v1alpha1/apis/clientset/versioned" diff --git a/go-controller/pkg/ovn/controller/network_qos/network_qos_ovnnb.go b/go-controller/pkg/ovn/controller/network_qos/network_qos_ovnnb.go index 82eed9b07e..febc4d1953 100644 --- a/go-controller/pkg/ovn/controller/network_qos/network_qos_ovnnb.go +++ b/go-controller/pkg/ovn/controller/network_qos/network_qos_ovnnb.go @@ -6,8 +6,8 @@ import ( "slices" "strconv" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/controller/network_qos/network_qos_test.go b/go-controller/pkg/ovn/controller/network_qos/network_qos_test.go index fd92922479..4d771825ed 100644 --- a/go-controller/pkg/ovn/controller/network_qos/network_qos_test.go +++ b/go-controller/pkg/ovn/controller/network_qos/network_qos_test.go @@ -15,7 +15,7 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" nqostype "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/networkqos/v1alpha1" diff --git a/go-controller/pkg/ovn/controller/services/loadbalancer.go b/go-controller/pkg/ovn/controller/services/loadbalancer.go index 8c3d1c9114..025bb80d95 100644 --- a/go-controller/pkg/ovn/controller/services/loadbalancer.go +++ b/go-controller/pkg/ovn/controller/services/loadbalancer.go @@ -10,7 +10,7 @@ import ( "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/apis/core" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/controller/services/repair.go b/go-controller/pkg/ovn/controller/services/repair.go index a9d37389fa..169bc64069 100644 --- a/go-controller/pkg/ovn/controller/services/repair.go +++ b/go-controller/pkg/ovn/controller/services/repair.go @@ -11,8 +11,8 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/controller/services/services_controller.go b/go-controller/pkg/ovn/controller/services/services_controller.go index e03ad40b5c..664af03536 100644 --- a/go-controller/pkg/ovn/controller/services/services_controller.go +++ b/go-controller/pkg/ovn/controller/services/services_controller.go @@ -28,8 +28,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" globalconfig "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/controller/services/services_controller_test.go b/go-controller/pkg/ovn/controller/services/services_controller_test.go index 6937f6beca..777d175628 100644 --- a/go-controller/pkg/ovn/controller/services/services_controller_test.go +++ b/go-controller/pkg/ovn/controller/services/services_controller_test.go @@ -21,7 +21,7 @@ import ( utilnet "k8s.io/utils/net" "k8s.io/utils/ptr" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/ovn/controller/services/svc_template_var.go b/go-controller/pkg/ovn/controller/services/svc_template_var.go index 2ffcd03cc7..8cf4ee640b 100644 --- a/go-controller/pkg/ovn/controller/services/svc_template_var.go +++ b/go-controller/pkg/ovn/controller/services/svc_template_var.go @@ -8,8 +8,8 @@ import ( corev1 "k8s.io/api/core/v1" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc.go b/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc.go index 59ac681e07..c96bc3a36d 100644 --- a/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc.go +++ b/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc.go @@ -17,7 +17,7 @@ import ( "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc_test.go b/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc_test.go index fd0e09545e..7d3cd9e72f 100644 --- a/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc_test.go +++ b/go-controller/pkg/ovn/controller/udnenabledsvc/udn_enabled_svc_test.go @@ -15,7 +15,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/controller/unidling/unidle.go b/go-controller/pkg/ovn/controller/unidling/unidle.go index bcad0edf4c..d3c65e10fa 100644 --- a/go-controller/pkg/ovn/controller/unidling/unidle.go +++ b/go-controller/pkg/ovn/controller/unidling/unidle.go @@ -12,10 +12,10 @@ import ( "k8s.io/client-go/tools/record" "k8s.io/klog/v2" - libovsdbcache "github.com/ovn-org/libovsdb/cache" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbcache "github.com/ovn-kubernetes/libovsdb/cache" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" diff --git a/go-controller/pkg/ovn/controller/unidling/unidle_test.go b/go-controller/pkg/ovn/controller/unidling/unidle_test.go index 039968d696..3317b65c00 100644 --- a/go-controller/pkg/ovn/controller/unidling/unidle_test.go +++ b/go-controller/pkg/ovn/controller/unidling/unidle_test.go @@ -13,7 +13,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/kube" diff --git a/go-controller/pkg/ovn/copp.go b/go-controller/pkg/ovn/copp.go index 4afc0bba76..39f2f092d4 100644 --- a/go-controller/pkg/ovn/copp.go +++ b/go-controller/pkg/ovn/copp.go @@ -3,7 +3,7 @@ package ovn import ( "fmt" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/default_network_controller.go b/go-controller/pkg/ovn/default_network_controller.go index d6a0231ea6..ed79067e8e 100644 --- a/go-controller/pkg/ovn/default_network_controller.go +++ b/go-controller/pkg/ovn/default_network_controller.go @@ -366,7 +366,7 @@ func (oc *DefaultNetworkController) init() error { } klog.V(5).Infof("Existing number of nodes: %d", len(existingNodes)) - // FIXME: When https://github.com/ovn-org/libovsdb/issues/235 is fixed, + // FIXME: When https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed, // use IsTableSupported(nbdb.LoadBalancerGroup). if _, _, err := util.RunOVNNbctl("--columns=_uuid", "list", "Load_Balancer_Group"); err != nil { klog.Warningf("Load Balancer Group support enabled, however version of OVN in use does not support Load Balancer Groups.") diff --git a/go-controller/pkg/ovn/dns_name_resolver/dns.go b/go-controller/pkg/ovn/dns_name_resolver/dns.go index f2ae3ddc2e..17b6b76471 100644 --- a/go-controller/pkg/ovn/dns_name_resolver/dns.go +++ b/go-controller/pkg/ovn/dns_name_resolver/dns.go @@ -9,7 +9,7 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/dns_name_resolver/dns_name_resolver.go b/go-controller/pkg/ovn/dns_name_resolver/dns_name_resolver.go index 0b8ad32f11..b0d29f0d3d 100644 --- a/go-controller/pkg/ovn/dns_name_resolver/dns_name_resolver.go +++ b/go-controller/pkg/ovn/dns_name_resolver/dns_name_resolver.go @@ -1,7 +1,7 @@ package dnsnameresolver import ( - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" addressset "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/address_set" ) diff --git a/go-controller/pkg/ovn/dns_name_resolver/external_dns.go b/go-controller/pkg/ovn/dns_name_resolver/external_dns.go index 57bff7dec2..cd542c48e1 100644 --- a/go-controller/pkg/ovn/dns_name_resolver/external_dns.go +++ b/go-controller/pkg/ovn/dns_name_resolver/external_dns.go @@ -14,7 +14,7 @@ import ( "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/controller" egressfirewalllister "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressfirewall/v1/apis/listers/egressfirewall/v1" diff --git a/go-controller/pkg/ovn/dns_name_resolver/external_dns_test.go b/go-controller/pkg/ovn/dns_name_resolver/external_dns_test.go index 26e4107244..72661bd4ed 100644 --- a/go-controller/pkg/ovn/dns_name_resolver/external_dns_test.go +++ b/go-controller/pkg/ovn/dns_name_resolver/external_dns_test.go @@ -13,7 +13,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/dns_name_resolver/external_dns_tracker.go b/go-controller/pkg/ovn/dns_name_resolver/external_dns_tracker.go index 8ace7203e2..730bd026af 100644 --- a/go-controller/pkg/ovn/dns_name_resolver/external_dns_tracker.go +++ b/go-controller/pkg/ovn/dns_name_resolver/external_dns_tracker.go @@ -8,7 +8,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/egressfirewall.go b/go-controller/pkg/ovn/egressfirewall.go index 4e49505d04..20e444b3a7 100644 --- a/go-controller/pkg/ovn/egressfirewall.go +++ b/go-controller/pkg/ovn/egressfirewall.go @@ -20,7 +20,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/controller" diff --git a/go-controller/pkg/ovn/egressgw.go b/go-controller/pkg/ovn/egressgw.go index 27f9e2b970..1f28955295 100644 --- a/go-controller/pkg/ovn/egressgw.go +++ b/go-controller/pkg/ovn/egressgw.go @@ -17,8 +17,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/egressip.go b/go-controller/pkg/ovn/egressip.go index d53ba5e633..fff34928c6 100644 --- a/go-controller/pkg/ovn/egressip.go +++ b/go-controller/pkg/ovn/egressip.go @@ -26,8 +26,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" @@ -1138,6 +1138,8 @@ func (e *EgressIPController) isLocalZoneNode(node *corev1.Node) bool { type egressIPCache struct { // egressIP name -> network name -> cache egressIPNameToPods map[string]map[string]selectedPods + // egressIP name -> to assigned Node names + egressIPNameToAssignedNodes map[string][]string // egressLocalNodes will contain all nodes that are local // to this zone which are serving this egressIP object.. // This will help sync SNATs @@ -1154,7 +1156,7 @@ type egressIPCache struct { } type nodeNetworkRedirects struct { - // node name -> network name -> redirect IPs + // network name -> node name -> redirect IPs cache map[string]map[string]redirectIPs } @@ -1444,7 +1446,7 @@ func (e *EgressIPController) syncStaleGWMarkRules(egressIPCache egressIPCache) e continue } for networkName, podCache := range networkPodCache { - for eIP, nodeName := range egressIPCache.egressIPIPToNodeCache { + for eIPIP, nodeName := range egressIPCache.egressIPIPToNodeCache { if !egressIPCache.egressLocalNodesCache.Has(nodeName) { continue } @@ -1458,7 +1460,7 @@ func (e *EgressIPController) syncStaleGWMarkRules(egressIPCache egressIPCache) e return fmt.Errorf("failed to create new network %s: %v", networkName, err) } routerName := ni.GetNetworkScopedGWRouterName(nodeName) - isEIPIPv6 := utilnet.IsIPv6String(eIP) + isEIPIPv6 := utilnet.IsIPv6String(eIPIP) for podKey, podIPs := range podCache.egressLocalPods { ops, err = processPodFn(ops, eIPName, podKey, egressIPCache.markCache[eIPName], routerName, networkName, podIPs, isEIPIPv6) if err != nil { @@ -1600,21 +1602,36 @@ func (e *EgressIPController) syncPodAssignmentCache(egressIPCache egressIPCache) // It also removes stale nexthops from router policies used by EgressIPs. // Upon failure, it may be invoked multiple times in order to avoid a pod restart. func (e *EgressIPController) syncStaleEgressReroutePolicy(cache egressIPCache) error { - for _, networkCache := range cache.egressIPNameToPods { + for eipName, networkCache := range cache.egressIPNameToPods { for networkName, data := range networkCache { logicalRouterPolicyStaleNexthops := []*nbdb.LogicalRouterPolicy{} + // select LRPs scoped to the correct LRP priority, network and EIP name p := func(item *nbdb.LogicalRouterPolicy) bool { if item.Priority != types.EgressIPReroutePriority || item.ExternalIDs[libovsdbops.NetworkKey.String()] != networkName { return false } - egressIPName, _ := getEIPLRPObjK8MetaData(item.ExternalIDs) - if egressIPName == "" { + networkNodeRedirectCache, ok := cache.egressNodeRedirectsCache.cache[networkName] + if !ok || len(networkNodeRedirectCache) == 0 { + klog.Infof("syncStaleEgressReroutePolicy found invalid logical router policy (UUID: %s) because no assigned Nodes for EgressIP %s", item.UUID, eipName) + return true + } + extractedEgressIPName, _ := getEIPLRPObjK8MetaData(item.ExternalIDs) + if extractedEgressIPName == "" { klog.Errorf("syncStaleEgressReroutePolicy found logical router policy (UUID: %s) with invalid meta data associated with network %s", item.UUID, networkName) - return false + return true + } + if extractedEgressIPName != eipName { + // remove if there's no reference to this EIP name + _, ok := cache.egressIPNameToPods[extractedEgressIPName] + return !ok } splitMatch := strings.Split(item.Match, " ") - logicalIP := splitMatch[len(splitMatch)-1] - parsedLogicalIP := net.ParseIP(logicalIP) + podIPStr := splitMatch[len(splitMatch)-1] + podIP := net.ParseIP(podIPStr) + if podIP == nil { + klog.Infof("syncStaleEgressReroutePolicy found invalid LRP with broken match with UID %q", item.UUID) + return true + } egressPodIPs := sets.NewString() // Since LRPs are created only for pods local to this zone // we need to care about only those pods. Nexthop for them will @@ -1624,31 +1641,24 @@ func (e *EgressIPController) syncStaleEgressReroutePolicy(cache egressIPCache) e for _, podIPs := range data.egressLocalPods { egressPodIPs.Insert(podIPs.UnsortedList()...) } - if !egressPodIPs.Has(parsedLogicalIP.String()) { - klog.Infof("syncStaleEgressReroutePolicy will delete %s due to no nexthop or stale logical ip: %v", egressIPName, item) + if !egressPodIPs.Has(podIP.String()) { + klog.Infof("syncStaleEgressReroutePolicy will delete %s due to no nexthop or stale logical ip: %v", extractedEgressIPName, item) return true } // Check for stale nexthops that may exist in the logical router policy and store that in logicalRouterPolicyStaleNexthops. // Note: adding missing nexthop(s) to the logical router policy is done outside the scope of this function. staleNextHops := []string{} for _, nexthop := range item.Nexthops { - nodeName, ok := cache.egressIPIPToNodeCache[parsedLogicalIP.String()] - if ok { - klog.Infof("syncStaleEgressReroutePolicy will delete %s due to no node assigned to logical ip: %v", egressIPName, item) - return true - } - networksRedirects, ok := cache.egressNodeRedirectsCache.cache[nodeName] - if ok { - klog.Infof("syncStaleEgressReroutePolicy will delete %s due to no network in cache: %v", egressIPName, item) - return true - } - redirects, ok := networksRedirects[networkName] - if !ok { - klog.Infof("syncStaleEgressReroutePolicy will delete %s due to no redirects for network in cache: %v", egressIPName, item) - return true + // ensure valid next hop by iterating through the node config + var isFound bool // isFound is true, if the next hop IP is found within the set of assigned nodes + for _, nodeRedirect := range networkNodeRedirectCache { + if nodeRedirect.containsIP(nexthop) { + isFound = true + break + } } - //FIXME: be more specific about which is the valid next hop instead of relying on verifying if the IP is within a valid set of IPs. - if !redirects.containsIP(nexthop) { + if !isFound { + //FIXME: be more specific about which is the valid next hop instead of relying on verifying if the IP is within a valid set of IPs. staleNextHops = append(staleNextHops, nexthop) } } @@ -1669,7 +1679,14 @@ func (e *EgressIPController) syncStaleEgressReroutePolicy(cache egressIPCache) e // Update Logical Router Policies that have stale nexthops. Notice that we must do this separately // because logicalRouterPolicyStaleNexthops must be populated first - klog.Infof("syncStaleEgressReroutePolicy will remove stale nexthops for network %s: %+v", networkName, logicalRouterPolicyStaleNexthops) + for _, staleNextHopLogicalRouterPolicy := range logicalRouterPolicyStaleNexthops { + if staleNextHopLogicalRouterPolicy.Nexthop == nil { + continue + } + klog.Infof("syncStaleEgressReroutePolicy will remove stale nexthops for LRP %q for network %s: %s", + staleNextHopLogicalRouterPolicy.UUID, networkName, *staleNextHopLogicalRouterPolicy.Nexthop) + } + err = libovsdbops.DeleteNextHopsFromLogicalRouterPolicies(e.nbClient, cache.networkToRouter[networkName], logicalRouterPolicyStaleNexthops...) if err != nil { return fmt.Errorf("unable to remove stale next hops from logical router policies for network %s: %v", networkName, err) @@ -1699,7 +1716,13 @@ func (e *EgressIPController) syncStaleSNATRules(egressIPCache egressIPCache) err return false } egressIPName := egressIPMeta[0] - parsedLogicalIP := net.ParseIP(item.LogicalIP).String() + // check logical IP maps to a valid pod + parsedPodIP := net.ParseIP(item.LogicalIP) + if parsedPodIP == nil { + klog.Errorf("syncStaleSNATRules found invalid logical IP for NAT with UID %q", item.UUID) + return true + } + parsedPodIPStr := parsedPodIP.String() cacheEntry, exists := egressIPCache.egressIPNameToPods[egressIPName][types.DefaultNetworkName] egressPodIPs := sets.NewString() if exists { @@ -1712,7 +1735,7 @@ func (e *EgressIPController) syncStaleSNATRules(egressIPCache egressIPCache) err egressPodIPs.Insert(podIPs.UnsortedList()...) } } - if !exists || !egressPodIPs.Has(parsedLogicalIP) { + if !exists || !egressPodIPs.Has(parsedPodIPStr) { klog.Infof("syncStaleSNATRules will delete %s due to logical ip: %v", egressIPName, item) return true } @@ -1721,9 +1744,15 @@ func (e *EgressIPController) syncStaleSNATRules(egressIPCache egressIPCache) err klog.Errorf("syncStaleSNATRules failed to find default network in networks cache") return false } - if node, ok := egressIPCache.egressIPIPToNodeCache[item.ExternalIP]; !ok || !cacheEntry.egressLocalPods[types.DefaultNetworkName].Has(node) || - item.LogicalPort == nil || *item.LogicalPort != ni.GetNetworkScopedK8sMgmtIntfName(node) { - klog.Infof("syncStaleSNATRules will delete %s due to external ip or stale logical port: %v", egressIPName, item) + // check external IP maps to a valid EgressIP IP and its assigned to a Node + node, ok := egressIPCache.egressIPIPToNodeCache[item.ExternalIP] + if !ok { + klog.Infof("syncStaleSNATRules found NAT %q without EIP assigned to a Node", item.UUID) + return true + } + // check logical port is set and correspondes to the correct egress node + if item.LogicalPort == nil || *item.LogicalPort != ni.GetNetworkScopedK8sMgmtIntfName(node) { + klog.Infof("syncStaleSNATRules found NAT %q with invalid logical port", item.UUID) return true } return false @@ -1907,9 +1936,12 @@ func (e *EgressIPController) generateCacheForEgressIP() (egressIPCache, error) { // This will help sync SNATs egressLocalNodesCache := sets.New[string]() cache.egressLocalNodesCache = egressLocalNodesCache - // egressIP name -> node name - egressNodesCache := make(map[string]string, 0) - cache.egressIPIPToNodeCache = egressNodesCache + // egressIP name -> nodes where the IPs are assigned + egressIPNameNodesCache := make(map[string][]string, 0) + cache.egressIPNameToAssignedNodes = egressIPNameNodesCache + // egressIP IP -> node name. Assigned node for EIP. + egressIPIPNodeCache := make(map[string]string, 0) + cache.egressIPIPToNodeCache = egressIPIPNodeCache cache.markCache = make(map[string]string) egressIPs, err := e.watchFactory.GetEgressIPs() if err != nil { @@ -1922,11 +1954,18 @@ func (e *EgressIPController) generateCacheForEgressIP() (egressIPCache, error) { } cache.markCache[egressIP.Name] = mark.String() egressIPsCache[egressIP.Name] = make(map[string]selectedPods, 0) + egressIPNameNodesCache[egressIP.Name] = make([]string, 0, len(egressIP.Status.Items)) for _, status := range egressIP.Status.Items { + eipIP := net.ParseIP(status.EgressIP) + if eipIP == nil { + klog.Errorf("Failed to parse EgressIP %s IP %q from status", egressIP.Name, status.EgressIP) + continue + } + egressIPIPNodeCache[eipIP.String()] = status.Node if localZoneNodes.Has(status.Node) { egressLocalNodesCache.Insert(status.Node) } - egressNodesCache[status.EgressIP] = status.Node + egressIPNameNodesCache[egressIP.Name] = append(egressIPNameNodesCache[egressIP.Name], status.Node) } namespaces, err = e.watchFactory.GetNamespacesBySelector(egressIP.Spec.NamespaceSelector) if err != nil { diff --git a/go-controller/pkg/ovn/egressip_test.go b/go-controller/pkg/ovn/egressip_test.go index 43ec170acb..b05422bf65 100644 --- a/go-controller/pkg/ovn/egressip_test.go +++ b/go-controller/pkg/ovn/egressip_test.go @@ -52,6 +52,8 @@ const ( podV4IP3 = "10.128.1.3" podV4IP4 = "10.128.1.4" podV6IP = "ae70::66" + podV6IP2 = "be70::66" + podV6IP3 = "be70::67" v6GatewayIP = "ae70::1" v6Node1Subnet = "ae70::66/64" v6Node2Subnet = "be70::66/64" @@ -12901,6 +12903,553 @@ var _ = ginkgo.Describe("OVN master EgressIP Operations cluster default network" }) }) + + ginkgo.Context("Sync", func() { + ginkgo.It("removes config for previously selected pods on a deleted Node", func() { + // node 1 is local zone and egress Node. + // pod was on node 2 but it is deleted. Node 2 previously was also an egress Node. + app.Action = func(*cli.Context) error { + config.OVNKubernetesFeature.EnableInterconnect = true + // dual stack cluster + config.IPv4Mode = true + config.IPv6Mode = true + egressNamespace := newNamespace(eipNamespace) + egressPod := corev1.Pod{ + ObjectMeta: newPodMeta(eipNamespace, podName, egressPodLabel), + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + { + Name: "containerName", + Image: "containerImage", + }, + }, + NodeName: node1Name, + }, + Status: corev1.PodStatus{ + Phase: corev1.PodRunning, + PodIP: podV4IP, + PodIPs: []corev1.PodIP{{IP: podV4IP}, {IP: podV6IP}}, + }, + } + // node 1 (local zone) + node1IPv4 := "192.168.126.210" + Node1IPv4CIDR := node1IPv4 + "/24" + node1IPv6 := "fc00:f853:ccd:e793::30" + node1IPv6CIDR := node1IPv6 + "/64" + node1TranSwitchIPv4CIDR := "100.88.0.2/16" + node1TranSwitchIPv6CIDR := "fd97::2/64" + _, node1IPV4Net, _ := net.ParseCIDR(v4Node1Subnet) + _, node1IPV6Net, _ := net.ParseCIDR(v6Node1Subnet) + nodeAnnotations := map[string]string{ + "k8s.ovn.org/l3-gateway-config": `{"default":{"mode":"local","mac-address":"7e:57:f8:f0:3c:49", "ip-address":"192.168.126.12/24", "next-hop":"192.168.126.1"}}`, + "k8s.ovn.org/node-gateway-router-lrp-ifaddrs": fmt.Sprintf("{\"default\":{\"ipv4\":\"%s\",\"ipv6\":\"%s\"}}", nodeLogicalRouterIfAddrV4, nodeLogicalRouterIfAddrV6), + "k8s.ovn.org/node-primary-ifaddr": fmt.Sprintf("{\"ipv4\": \"%s\", \"ipv6\": \"%s\"}", Node1IPv4CIDR, node1IPv6CIDR), + "k8s.ovn.org/node-subnets": fmt.Sprintf("{\"default\":[\"%s\", \"%s\"]}", v4Node1Subnet, v6Node1Subnet), + "k8s.ovn.org/node-transit-switch-port-ifaddr": fmt.Sprintf("{\"ipv4\":\"%s\", \"ipv6\": \"%s\"}", node1TranSwitchIPv4CIDR, node1TranSwitchIPv6CIDR), + "k8s.ovn.org/zone-name": node1Name, + util.OVNNodeHostCIDRs: fmt.Sprintf("[\"%s\",\"%s\"]", Node1IPv4CIDR, node1IPv6CIDR), + } + node1 := getNodeObj(node1Name, nodeAnnotations, map[string]string{}) // add node to avoid error-ing out on transit switch IP fetch + // node 2 - deleted (remote zone) + node2TranSwitchIPv6 := "fd97::3" + eipIPv4 := "192.168.126.200" + eipIPv6 := "0:0:0:0:0:feff:c0a8:8e0d" + deletedPodIPv4 := podV4IP2 + // dual IP family EIP selecting one pod in local zone + eIP := egressipv1.EgressIP{ + ObjectMeta: newEgressIPMeta(egressIPName), + Spec: egressipv1.EgressIPSpec{ + EgressIPs: []string{ + eipIPv4, + eipIPv6, + }, + PodSelector: metav1.LabelSelector{ + MatchLabels: egressPodLabel, + }, + NamespaceSelector: metav1.LabelSelector{ + MatchLabels: map[string]string{ + "name": egressNamespace.Name, + }, + }, + }, + Status: egressipv1.EgressIPStatus{ + Items: []egressipv1.EgressIPStatusItem{ + { + Node: node1Name, + EgressIP: eipIPv4, + }, + // Previous was set to node 2 and Node was deleted while local zone EIP controller was down. + //{ + // Node: node2Name, + // EgressIP: eipIPv6, + //}, + }, + }, + } + ginkgo.By("start OVN DBs with valid and invalid (pod doesn't exist..) OVN config") + node1NatLogicalPortName := "k8s-" + node1Name + fakeOvn.startWithDBSetup( + libovsdbtest.TestSetup{ + NBData: []libovsdbtest.TestData{ + // LRPs to support EIP assigned to a remote node node thats deleted while the controller was down + // Valid LRP for IPv4 egress node. IPv4 egress Node is local. IPv6 egress node is remote and deleted but ovn config remains + getReRoutePolicy(podV4IP, "4", "valid-reroute-ipv4-UUID", + nodeLogicalRouterIPv4, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV4, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + // invalid LRP for IPv6 because remove node is deleted + getReRoutePolicy(podV6IP, "6", "invalid-reroute-ipv6-UUID", + []string{node2TranSwitchIPv6}, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV6, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + // NATs to support EIP assigned to the local node + // valid NAT + &nbdb.NAT{ + UUID: "valid-nat-ipv4-UUID", + LogicalIP: podV4IP, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, egressPod.Namespace, egressPod.Name, IPFamilyValueV4, DefaultNetworkControllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + // invalid NAT for a deleted pod on remote node + &nbdb.NAT{ + UUID: "invalid-nat-ipv4-UUID", + LogicalIP: deletedPodIPv4, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, egressNamespace.Namespace, "deletedpod", IPFamilyValueV4, DefaultNetworkControllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + &nbdb.LogicalRouterPort{ + UUID: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID", + Name: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name, + Networks: []string{nodeLogicalRouterIfAddrV6, nodeLogicalRouterIfAddrV4}, + }, + &nbdb.LogicalRouter{ + Name: types.OVNClusterRouter, + UUID: types.OVNClusterRouter + "-UUID", + Policies: []string{"valid-reroute-ipv4-UUID", "invalid-reroute-ipv6-UUID"}, + }, + &nbdb.LogicalRouter{ + Name: types.GWRouterPrefix + node1Name, + UUID: types.GWRouterPrefix + node1Name + "-UUID", + Ports: []string{types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID"}, + Options: map[string]string{"dynamic_neigh_routers": "false"}, + Nat: []string{"valid-nat-ipv4-UUID", "invalid-nat-ipv4-UUID"}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node1.Name + "-UUID", + Name: "k8s-" + node1.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitch{ + UUID: node1.Name + "-UUID", + Name: node1.Name, + Ports: []string{"k8s-" + node1.Name + "-UUID"}, + }, + }, + }, + &corev1.NamespaceList{ + Items: []corev1.Namespace{*egressNamespace}, + }, + &corev1.PodList{ + Items: []corev1.Pod{egressPod}, + }, + &corev1.NodeList{ + Items: []corev1.Node{node1}, + }, + &egressipv1.EgressIPList{ + Items: []egressipv1.EgressIP{eIP}, + }, + ) + i, podIPv4Net, _ := net.ParseCIDR(podV4IP + "/23") + podIPv4Net.IP = i + i, podIPv6Net, _ := net.ParseCIDR(podV6IP + "/23") + podIPv6Net.IP = i + fakeOvn.controller.logicalPortCache.add(&egressPod, "", types.DefaultNetworkName, "", nil, []*net.IPNet{podIPv4Net, podIPv6Net}) + + // hack pod to be in the provided zone + fakeOvn.controller.eIPC.nodeZoneState.Store(node1Name, true) + fakeOvn.controller.eIPC.nodeZoneState.Store(node2Name, false) + fakeOvn.controller.localZoneNodes.Store(node1Name, true) + fakeOvn.controller.localZoneNodes.Store(node2Name, false) + + err := fakeOvn.controller.WatchEgressIPNamespaces() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + err = fakeOvn.controller.WatchEgressIPPods() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + err = fakeOvn.controller.WatchEgressIP() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + ginkgo.By("ensuring cleanup of invalid LRP and NAT") + egressIPServedPodsASv4, egressIPServedPodsASv6 := buildEgressIPServedPodsAddressSets([]string{podV4IP, podV6IP}, types.DefaultNetworkName, fakeOvn.controller.eIPC.controllerName) + expectedDatabaseState := []libovsdbtest.TestData{ + getReRoutePolicy(podV4IP, "4", "valid-reroute-ipv4-UUID", + nodeLogicalRouterIPv4, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV4, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + &nbdb.NAT{ + UUID: "valid-egressip-nat-UUID", + LogicalIP: podV4IP, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, egressPod.Namespace, egressPod.Name, IPFamilyValueV4, fakeOvn.controller.controllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + &nbdb.LogicalRouter{ + Name: types.OVNClusterRouter, + UUID: types.OVNClusterRouter + "-UUID", + Policies: []string{"valid-reroute-ipv4-UUID"}, + }, + &nbdb.LogicalRouterPort{ + UUID: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID", + Name: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name, + Networks: []string{nodeLogicalRouterIfAddrV6, nodeLogicalRouterIfAddrV4}, + }, + &nbdb.LogicalRouter{ + Name: types.GWRouterPrefix + node1Name, + UUID: types.GWRouterPrefix + node1Name + "-UUID", + Ports: []string{types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID"}, + Nat: []string{"valid-egressip-nat-UUID"}, + Options: map[string]string{"dynamic_neigh_routers": "false"}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node1.Name + "-UUID", + Name: "k8s-" + node1.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitch{ + UUID: node1.Name + "-UUID", + Name: node1.Name, + Ports: []string{"k8s-" + node1.Name + "-UUID"}, + }, + egressIPServedPodsASv4, + egressIPServedPodsASv6, + } + gomega.Eventually(fakeOvn.nbClient).Should(libovsdbtest.HaveData(expectedDatabaseState)) + ginkgo.By("ensure config is consistent") + gomega.Consistently(fakeOvn.nbClient).Should(libovsdbtest.HaveData(expectedDatabaseState)) + return nil + } + + err := app.Run([]string{app.Name}) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + }) + + ginkgo.It("remove invalid OVN config for deleted pod", func() { + // removes invalid SNAT/NAT for a pod that was selected by an EIP but was removed while controller was not running and therefore OVN config should be removed + // does not modify valid SNAT/NAT + // further references to "local" or "remote" imply local or remote OVN zone for IC. + // one EIP object with two assigned IPs of different IP families (v4 and v6) which select one pod that's local + app.Action = func(*cli.Context) error { + config.OVNKubernetesFeature.EnableInterconnect = true + // dual stack cluster + config.IPv4Mode = true + config.IPv6Mode = true + egressPod := corev1.Pod{ + ObjectMeta: newPodMeta(eipNamespace, podName, egressPodLabel), + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + { + Name: "containerName", + Image: "containerImage", + }, + }, + NodeName: node1Name, + }, + Status: corev1.PodStatus{ + Phase: corev1.PodRunning, + PodIP: podV4IP, + PodIPs: []corev1.PodIP{{IP: podV4IP}, {IP: podV6IP}}, + }, + } + // deletedPodIP is a pod IP of a Pod that was deleted while eip controller was not running therefore config will exist in OVN DBs to support EIP + deletedPodIPv4, deletedPod2IPv4, deletedPodIPv6, deletedPod2IPv6 := podV4IP2, "10.128.0.20", podV6IP2, podV6IP3 + egressNamespace := newNamespace(eipNamespace) + // node 1 (local zone) + node1IPv4 := "192.168.126.210" + Node1IPv4CIDR := node1IPv4 + "/24" + node1IPv6 := "fc00:f853:ccd:e793::30" + node1IPv6CIDR := node1IPv6 + "/64" + node1TranSwitchIPv4CIDR := "100.88.0.2/16" + node1TranSwitchIPv6CIDR := "fd97::2/64" + _, node1IPV4Net, _ := net.ParseCIDR(v4Node1Subnet) + _, node1IPV6Net, _ := net.ParseCIDR(v6Node1Subnet) + nodeAnnotations := map[string]string{ + "k8s.ovn.org/l3-gateway-config": `{"default":{"mode":"local","mac-address":"7e:57:f8:f0:3c:49", "ip-address":"192.168.126.12/24", "next-hop":"192.168.126.1"}}`, + "k8s.ovn.org/node-gateway-router-lrp-ifaddrs": fmt.Sprintf("{\"default\":{\"ipv4\":\"%s\",\"ipv6\":\"%s\"}}", nodeLogicalRouterIfAddrV4, nodeLogicalRouterIfAddrV6), + "k8s.ovn.org/node-primary-ifaddr": fmt.Sprintf("{\"ipv4\": \"%s\", \"ipv6\": \"%s\"}", Node1IPv4CIDR, node1IPv6CIDR), + "k8s.ovn.org/node-subnets": fmt.Sprintf("{\"default\":[\"%s\", \"%s\"]}", v4Node1Subnet, v6Node1Subnet), + "k8s.ovn.org/node-transit-switch-port-ifaddr": fmt.Sprintf("{\"ipv4\":\"%s\", \"ipv6\": \"%s\"}", node1TranSwitchIPv4CIDR, node1TranSwitchIPv6CIDR), + "k8s.ovn.org/zone-name": node1Name, + util.OVNNodeHostCIDRs: fmt.Sprintf("[\"%s\",\"%s\"]", Node1IPv4CIDR, node1IPv6CIDR), + } + node1 := getNodeObj(node1Name, nodeAnnotations, map[string]string{}) // add node to avoid error-ing out on transit switch IP fetch + // node 2 (remote zone) + node2IPv4 := "192.168.126.202" + node2IPv4CIDR := node2IPv4 + "/24" + node2IPv6 := "fc00:f853:cce:e793::20" + node2IPv6CIDR := node2IPv6 + "/64" + node2TranSwitchIPv4 := "100.88.0.3" + node2TranSwitchIPv4CIDR := node2TranSwitchIPv4 + "/16" + node2TranSwitchIPv6 := "fd97::3" + node2TranSwitchIPv6CIDR := node2TranSwitchIPv6 + "/64" + _, node2IPV4Net, _ := net.ParseCIDR(v4Node2Subnet) + _, node2IPV6Net, _ := net.ParseCIDR(v6Node2Subnet) + nodeAnnotations = map[string]string{ + "k8s.ovn.org/node-gateway-router-lrp-ifaddrs": fmt.Sprintf("{\"default\":{\"ipv4\":\"%s\",\"ipv6\":\"%s\"}}", node2LogicalRouterIfAddrV4, node2LogicalRouterIfAddrV6), + "k8s.ovn.org/node-primary-ifaddr": fmt.Sprintf("{\"ipv4\": \"%s\", \"ipv6\": \"%s\"}", node2IPv4CIDR, node2IPv6CIDR), + "k8s.ovn.org/node-subnets": fmt.Sprintf("{\"default\":[\"%s\", \"%s\"]}", v4Node2Subnet, v6Node2Subnet), + "k8s.ovn.org/node-transit-switch-port-ifaddr": fmt.Sprintf("{\"ipv4\":\"%s\", \"ipv6\": \"%s\"}", node2TranSwitchIPv4CIDR, node2TranSwitchIPv6CIDR), + "k8s.ovn.org/zone-name": node2Name, + util.OVNNodeHostCIDRs: fmt.Sprintf("[\"%s\",\"%s\"]", node2IPv4CIDR, node2IPv6CIDR), + } + node2 := getNodeObj(node2Name, nodeAnnotations, map[string]string{}) + eipIPv4 := "192.168.126.200" + eipIPv6 := "0:0:0:0:0:feff:c0a8:8e0d" + // dual IP family EIP selecting one pod in local zone + eIP := egressipv1.EgressIP{ + ObjectMeta: newEgressIPMeta(egressIPName), + Spec: egressipv1.EgressIPSpec{ + EgressIPs: []string{ + eipIPv4, + eipIPv6, + }, + PodSelector: metav1.LabelSelector{ + MatchLabels: egressPodLabel, + }, + NamespaceSelector: metav1.LabelSelector{ + MatchLabels: map[string]string{ + "name": egressNamespace.Name, + }, + }, + }, + Status: egressipv1.EgressIPStatus{ + Items: []egressipv1.EgressIPStatusItem{ + { + Node: node1Name, + EgressIP: eipIPv4, + }, + { + Node: node2Name, + EgressIP: eipIPv6, + }, + }, + }, + } + ginkgo.By("start OVN DBs with valid and invalid ( 2 pods don't exist..) OVN config") + node1NatLogicalPortName := "k8s-" + node1Name + fakeOvn.startWithDBSetup( + libovsdbtest.TestSetup{ + NBData: []libovsdbtest.TestData{ + // LRPs to support EIP assigned to a remote node + // valid LRP for IPv4/IPv6. IPv4 Egress Node is local, IPv6 is remote + getReRoutePolicy(podV4IP, "4", "valid-reroute-ipv4-UUID", + nodeLogicalRouterIPv4, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV4, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + getReRoutePolicy(podV6IP, "6", "valid-reroute-ipv6-UUID", + []string{node2TranSwitchIPv6}, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV6, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + // invalid lrps to redirect to the remote egress node for deleted pods + getReRoutePolicy(deletedPodIPv6, "6", "invalid-reroute-ipv6-UUID", + []string{node2TranSwitchIPv6}, getEgressIPLRPReRouteDbIDs(eIP.Name, "UNKNOWN", "UNKNOWN", + IPFamilyValueV6, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + getReRoutePolicy(deletedPod2IPv6, "6", "invalid-reroute2-ipv6-UUID", + []string{node2TranSwitchIPv6}, getEgressIPLRPReRouteDbIDs(eIP.Name, "UNKNOWN", "UNKNOWN", + IPFamilyValueV6, types.DefaultNetworkName, DefaultNetworkControllerName).GetExternalIDs()), + // NATs to support EIP assigned to the local node + // valid NAT + &nbdb.NAT{ + UUID: "valid-nat-ipv4-UUID", + LogicalIP: podV4IP, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, egressPod.Namespace, egressPod.Name, IPFamilyValueV4, DefaultNetworkControllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + // invalid NATs + &nbdb.NAT{ + UUID: "invalid-nat-ipv4-UUID", + LogicalIP: deletedPodIPv4, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, "UNKNOWN", "UNKNOWN", IPFamilyValueV4, DefaultNetworkControllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + &nbdb.NAT{ + UUID: "invalid-nat2-ipv4-UUID", + LogicalIP: deletedPod2IPv4, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, "UNKNOWN", "UNKNOWN", IPFamilyValueV4, DefaultNetworkControllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + &nbdb.LogicalRouterPort{ + UUID: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID", + Name: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name, + Networks: []string{nodeLogicalRouterIfAddrV6, nodeLogicalRouterIfAddrV4}, + }, + &nbdb.LogicalRouter{ + Name: types.OVNClusterRouter, + UUID: types.OVNClusterRouter + "-UUID", + Policies: []string{"valid-reroute-ipv4-UUID", "valid-reroute-ipv6-UUID", "invalid-reroute-ipv6-UUID", "invalid-reroute2-ipv6-UUID"}, + }, + &nbdb.LogicalRouter{ + Name: types.GWRouterPrefix + node1Name, + UUID: types.GWRouterPrefix + node1Name + "-UUID", + Ports: []string{types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID"}, + Options: map[string]string{"dynamic_neigh_routers": "false"}, + Nat: []string{"valid-nat-ipv4-UUID", "invalid-nat-ipv4-UUID"}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node1.Name + "-UUID", + Name: "k8s-" + node1.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node2.Name + "-UUID", + Name: "k8s-" + node2.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fd " + util.GetNodeManagementIfAddr(node2IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fd " + util.GetNodeManagementIfAddr(node2IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitch{ + UUID: node1.Name + "-UUID", + Name: node1.Name, + Ports: []string{"k8s-" + node1.Name + "-UUID"}, + }, + &nbdb.LogicalSwitch{ + UUID: node2.Name + "-UUID", + Name: node2.Name, + Ports: []string{"k8s-" + node2.Name + "-UUID"}, + }, + }, + }, + &corev1.NamespaceList{ + Items: []corev1.Namespace{*egressNamespace}, + }, + &corev1.PodList{ + Items: []corev1.Pod{egressPod}, + }, + &corev1.NodeList{ + Items: []corev1.Node{node1, node2}, + }, + &egressipv1.EgressIPList{ + Items: []egressipv1.EgressIP{eIP}, + }, + ) + i, podIPv4Net, _ := net.ParseCIDR(podV4IP + "/23") + podIPv4Net.IP = i + i, podIPv6Net, _ := net.ParseCIDR(podV6IP + "/23") + podIPv6Net.IP = i + fakeOvn.controller.logicalPortCache.add(&egressPod, "", types.DefaultNetworkName, "", nil, []*net.IPNet{podIPv4Net, podIPv6Net}) + + // hack pod to be in the provided zone + fakeOvn.controller.eIPC.nodeZoneState.Store(node1Name, true) + fakeOvn.controller.eIPC.nodeZoneState.Store(node2Name, false) + fakeOvn.controller.localZoneNodes.Store(node1Name, true) + fakeOvn.controller.localZoneNodes.Store(node2Name, false) + + err := fakeOvn.controller.WatchEgressIPNamespaces() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + err = fakeOvn.controller.WatchEgressIPPods() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + err = fakeOvn.controller.WatchEgressIP() + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + + ginkgo.By("ensuring cleanup of invalid LRP and NAT") + egressIPServedPodsASv4, egressIPServedPodsASv6 := buildEgressIPServedPodsAddressSets([]string{podV4IP, podV6IP}, types.DefaultNetworkName, fakeOvn.controller.eIPC.controllerName) + expectedDatabaseState := []libovsdbtest.TestData{ + // LRPs to support EIP assigned to a remote node + // valid LRP for IPv4/IPv6. IPv4 Egress Node is local, IPv6 is remote + getReRoutePolicy(podV4IP, "4", "valid-reroute-ipv4-UUID", + nodeLogicalRouterIPv4, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV4, types.DefaultNetworkName, fakeOvn.controller.eIPC.controllerName).GetExternalIDs()), + getReRoutePolicy(podV6IP, "6", "valid-reroute-ipv6-UUID", + []string{node2TranSwitchIPv6}, getEgressIPLRPReRouteDbIDs(eIP.Name, egressPod.Namespace, egressPod.Name, + IPFamilyValueV6, types.DefaultNetworkName, fakeOvn.controller.eIPC.controllerName).GetExternalIDs()), + // valid NAT + &nbdb.NAT{ + UUID: "valid-egressip-nat-UUID", + LogicalIP: podV4IP, + ExternalIP: eipIPv4, + ExternalIDs: getEgressIPNATDbIDs(egressIPName, egressPod.Namespace, egressPod.Name, IPFamilyValueV4, fakeOvn.controller.controllerName).GetExternalIDs(), + Type: nbdb.NATTypeSNAT, + LogicalPort: &node1NatLogicalPortName, + Options: map[string]string{ + "stateless": "false", + }, + }, + &nbdb.LogicalRouter{ + Name: types.OVNClusterRouter, + UUID: types.OVNClusterRouter + "-UUID", + Policies: []string{"valid-reroute-ipv4-UUID", "valid-reroute-ipv6-UUID"}, + }, + &nbdb.LogicalRouterPort{ + UUID: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID", + Name: types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name, + Networks: []string{nodeLogicalRouterIfAddrV6, nodeLogicalRouterIfAddrV4}, + }, + &nbdb.LogicalRouter{ + Name: types.GWRouterPrefix + node1Name, + UUID: types.GWRouterPrefix + node1Name + "-UUID", + Ports: []string{types.GWRouterToJoinSwitchPrefix + types.GWRouterPrefix + node1Name + "-UUID"}, + Nat: []string{"valid-egressip-nat-UUID"}, + Options: map[string]string{"dynamic_neigh_routers": "false"}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node1.Name + "-UUID", + Name: "k8s-" + node1.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fb " + util.GetNodeManagementIfAddr(node1IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitchPort{ + UUID: "k8s-" + node2.Name + "-UUID", + Name: "k8s-" + node2.Name, + Addresses: []string{"fe:1a:b2:3f:0e:fd " + util.GetNodeManagementIfAddr(node2IPV4Net).IP.String(), + "fe:1a:b2:3f:0e:fd " + util.GetNodeManagementIfAddr(node2IPV6Net).IP.String()}, + }, + &nbdb.LogicalSwitch{ + UUID: node1.Name + "-UUID", + Name: node1.Name, + Ports: []string{"k8s-" + node1.Name + "-UUID"}, + }, + &nbdb.LogicalSwitch{ + UUID: node2.Name + "-UUID", + Name: node2.Name, + Ports: []string{"k8s-" + node2.Name + "-UUID"}, + }, + egressIPServedPodsASv4, + egressIPServedPodsASv6, + } + gomega.Eventually(fakeOvn.nbClient).Should(libovsdbtest.HaveData(expectedDatabaseState)) + ginkgo.By("ensure config is consistent") + gomega.Consistently(fakeOvn.nbClient).Should(libovsdbtest.HaveData(expectedDatabaseState)) + return nil + } + + err := app.Run([]string{app.Name}) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + }) + }) + }) // TEST UTILITY FUNCTIONS; diff --git a/go-controller/pkg/ovn/egressqos.go b/go-controller/pkg/ovn/egressqos.go index fc6258408e..605b127d03 100644 --- a/go-controller/pkg/ovn/egressqos.go +++ b/go-controller/pkg/ovn/egressqos.go @@ -24,7 +24,7 @@ import ( utilnet "k8s.io/utils/net" "k8s.io/utils/ptr" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" egressqosapi "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressqos/v1" diff --git a/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync.go b/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync.go index 01cbd40512..01808d3927 100644 --- a/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync.go +++ b/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync.go @@ -9,8 +9,8 @@ import ( "k8s.io/klog/v2" utilsnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" @@ -101,7 +101,8 @@ func (syncer *LRPSyncer) syncEgressIPReRoutes() error { podInfo, err := cache.getPod(podIP) if err != nil { klog.Infof("Failed to find Logical Switch Port cache entry for pod IP %s: %v", podIP.String(), err) - continue + // pod not found, add dummy metadata that will be cleaned up by EIP controller sync. + podInfo = podNetInfo{namespace: "UNKNOWN", name: "UNKNOWN"} } ipFamily := getIPFamily(isIPv6) lrp.ExternalIDs = getEgressIPLRPReRouteDbIDs(eipName, podInfo.namespace, podInfo.name, ipFamily, defaultNetworkName, syncer.controllerName).GetExternalIDs() diff --git a/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync_test.go b/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync_test.go index efebfb9c31..da0b0d2ff9 100644 --- a/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync_test.go +++ b/go-controller/pkg/ovn/external_ids_syncer/logical_router_policy/logical_router_policy_sync_test.go @@ -122,7 +122,7 @@ var _ = ginkgo.Describe("OVN Logical Router Syncer", func() { map[string]string{"name": egressIPName}, defaultNetworkControllerName)}, finalLRPs: []*nbdb.LogicalRouterPolicy{getReRouteLRP(podNamespace, podName, v4PodIPStr, 0, v4IPFamilyValue, v4PodNextHops, - map[string]string{"name": egressIPName}, + getEgressIPLRPReRouteDbIDs(egressIPName, "UNKNOWN", "UNKNOWN", v4IPFamilyValue, defaultNetworkName, defaultNetworkControllerName).GetExternalIDs(), defaultNetworkControllerName)}, v4ClusterSubnets: []*net.IPNet{v4PodClusterSubnet}, v4JoinSubnet: v4JoinSubnet, diff --git a/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync.go b/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync.go index 617bddd411..ba81787817 100644 --- a/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync.go +++ b/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync.go @@ -7,9 +7,10 @@ import ( "k8s.io/klog/v2" utilsnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" + "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" ovntypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" @@ -86,10 +87,10 @@ func (n *NATSyncer) syncEgressIPNATs() error { klog.Errorf("Expected NAT %s to contain 'name' as a key within its external IDs", nat.UUID) continue } - podIP, _, err := net.ParseCIDR(nat.LogicalIP) - if err != nil { - klog.Errorf("Failed to process logical IP %q of NAT %s", nat.LogicalIP, nat.UUID) - continue + // for egress IP, the logicalIP does not contain a mask. + podIP := net.ParseIP(nat.LogicalIP) + if podIP == nil { + return fmt.Errorf("failed to process logical IP %q of NAT %s", nat.LogicalIP, nat.UUID) } isV6 := utilsnet.IsIPv6(podIP) var ipFamily egressIPFamilyValue @@ -103,15 +104,15 @@ func (n *NATSyncer) syncEgressIPNATs() error { pod, found = v4PodCache.getPodByIP(podIP) } if !found { - klog.Errorf("Failed to find logical switch port that contains IP address %s", podIP.String()) - continue + // set it to unknown and the egress IP controller syncer will take care of removing it. + pod = podNetInfo{namespace: "UNKNOWN", name: "UNKNOWN"} + ipFamily = getFirstSupportIPFamily() } nat.ExternalIDs = getEgressIPNATDbIDs(eIPName, pod.namespace, pod.name, ipFamily, n.controllerName).GetExternalIDs() ops, err = libovsdbops.UpdateNATOps(n.nbClient, ops, nat) if err != nil { klog.Errorf("Failed to generate NAT ops for NAT %s: %v", nat.UUID, err) } - klog.Infof("## martin found %d nats", len(ops)) } _, err = libovsdbops.TransactAndCheck(n.nbClient, ops) @@ -176,3 +177,10 @@ func getEgressIPNATDbIDs(eIPName, podNamespace, podName string, ipFamily egressI libovsdbops.IPFamilyKey: string(ipFamily), }) } + +func getFirstSupportIPFamily() egressIPFamilyValue { + if config.IPv4Mode { + return ipFamilyValueV4 + } + return ipFamilyValueV6 +} diff --git a/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync_test.go b/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync_test.go index 9c0c9fa18d..58d8b54045 100644 --- a/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync_test.go +++ b/go-controller/pkg/ovn/external_ids_syncer/nat/nat_sync_test.go @@ -26,22 +26,22 @@ const ( egressIP = "10.10.10.10" nat1UUID = "nat-1-UUID" nat2UUID = "nat-2-UUID" - pod1V4CIDRStr = "10.128.0.5/32" - pod1V6CIDRStr = "2001:0000:130F:0000:0000:09C0:876A:130B/128" + pod1V4Str = "10.128.0.5" + pod1V6Str = "2001:0000:130F:0000:0000:09C0:876A:130B" pod1Namespace = "ns1" pod1Name = "pod1" - pod2V4CIDRStr = "10.128.0.6/32" - pod2V6CIDRStr = "2001:0000:130F:0000:0000:09C0:876A:130A/128" + pod2V4Str = "10.128.0.6" + pod2V6Str = "2001:0000:130F:0000:0000:09C0:876A:130A" pod2Namespace = "ns1" pod2Name = "pod2" defaultNetworkControllerName = "default-network-controller" ) var ( - pod1V4IPNet = testing.MustParseIPNet(pod1V4CIDRStr) - pod1V6IPNet = testing.MustParseIPNet(pod1V6CIDRStr) - pod2V4IPNet = testing.MustParseIPNet(pod2V4CIDRStr) - pod2V6IPNet = testing.MustParseIPNet(pod2V6CIDRStr) + pod1V4IP = testing.MustParseIP(pod1V4Str) + pod1V6IP = testing.MustParseIP(pod1V6Str) + pod2V4IP = testing.MustParseIP(pod2V4Str) + pod2V6IP = testing.MustParseIP(pod2V6Str) legacyExtIDs = map[string]string{legacyEIPNameExtIDKey: egressIPName} pod1V4ExtIDs = getEgressIPNATDbIDs(egressIPName, pod1Namespace, pod1Name, ipFamilyValueV4, defaultNetworkControllerName).GetExternalIDs() pod1V6ExtIDs = getEgressIPNATDbIDs(egressIPName, pod1Namespace, pod1Name, ipFamilyValueV6, defaultNetworkControllerName).GetExternalIDs() @@ -54,64 +54,64 @@ var _ = ginkgo.Describe("NAT Syncer", func() { ginkgo.DescribeTable("egress NATs", func(sync natSync) { performTest(defaultNetworkControllerName, sync.initialNATs, sync.finalNATs, sync.pods) }, ginkgo.Entry("converts legacy IPv4 NATs", natSync{ - initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4CIDRStr, egressIP, legacyExtIDs)}, - finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4CIDRStr, egressIP, pod1V4ExtIDs)}, + initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4Str, egressIP, legacyExtIDs)}, + finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4Str, egressIP, pod1V4ExtIDs)}, pods: podsNetInfo{ { - []net.IP{pod1V4IPNet.IP}, + []net.IP{pod1V4IP}, pod1Namespace, pod1Name, }, { - []net.IP{pod2V4IPNet.IP}, + []net.IP{pod2V4IP}, pod2Namespace, pod2Name, }, }, }), ginkgo.Entry("converts legacy IPv6 NATs", natSync{ - initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6CIDRStr, egressIP, legacyExtIDs)}, - finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6CIDRStr, egressIP, pod1V6ExtIDs)}, + initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6Str, egressIP, legacyExtIDs)}, + finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6Str, egressIP, pod1V6ExtIDs)}, pods: podsNetInfo{ { - []net.IP{pod1V6IPNet.IP}, + []net.IP{pod1V6IP}, pod1Namespace, pod1Name, }, { - []net.IP{pod2V6IPNet.IP}, + []net.IP{pod2V6IP}, pod2Namespace, pod2Name, }, }, }), ginkgo.Entry("converts legacy dual stack NATs", natSync{ - initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4CIDRStr, egressIP, legacyExtIDs), getSNAT(nat2UUID, pod1V6CIDRStr, egressIP, legacyExtIDs)}, - finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4CIDRStr, egressIP, pod1V4ExtIDs), getSNAT(nat2UUID, pod1V6CIDRStr, egressIP, pod1V6ExtIDs)}, + initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4Str, egressIP, legacyExtIDs), getSNAT(nat2UUID, pod1V6Str, egressIP, legacyExtIDs)}, + finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V4Str, egressIP, pod1V4ExtIDs), getSNAT(nat2UUID, pod1V6Str, egressIP, pod1V6ExtIDs)}, pods: podsNetInfo{ { - []net.IP{pod1V4IPNet.IP, pod1V6IPNet.IP}, + []net.IP{pod1V4IP, pod1V6IP}, pod1Namespace, pod1Name, }, { - []net.IP{pod2V4IPNet.IP, pod2V6IPNet.IP}, + []net.IP{pod2V4IP, pod2V6IP}, pod2Namespace, pod2Name, }, }, }), ginkgo.Entry("doesn't alter NAT with correct external IDs", natSync{ - initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6CIDRStr, egressIP, pod1V6ExtIDs)}, - finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6CIDRStr, egressIP, pod1V6ExtIDs)}, + initialNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6Str, egressIP, pod1V6ExtIDs)}, + finalNATs: []*nbdb.NAT{getSNAT(nat1UUID, pod1V6Str, egressIP, pod1V6ExtIDs)}, pods: podsNetInfo{ { - []net.IP{pod1V4IPNet.IP, pod1V6IPNet.IP}, + []net.IP{pod1V4IP, pod1V6IP}, pod1Namespace, pod1Name, }, { - []net.IP{pod2V4IPNet.IP, pod2V6IPNet.IP}, + []net.IP{pod2V4IP, pod2V6IP}, pod2Namespace, pod2Name, }, diff --git a/go-controller/pkg/ovn/gateway.go b/go-controller/pkg/ovn/gateway.go index 7c38289737..54005e4301 100644 --- a/go-controller/pkg/ovn/gateway.go +++ b/go-controller/pkg/ovn/gateway.go @@ -15,7 +15,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/gateway/gateway.go b/go-controller/pkg/ovn/gateway/gateway.go index c6e10ab4a9..f716528810 100644 --- a/go-controller/pkg/ovn/gateway/gateway.go +++ b/go-controller/pkg/ovn/gateway/gateway.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/gatewayrouter/policybasedroutes.go b/go-controller/pkg/ovn/gatewayrouter/policybasedroutes.go index e2866ba946..4f61101282 100644 --- a/go-controller/pkg/ovn/gatewayrouter/policybasedroutes.go +++ b/go-controller/pkg/ovn/gatewayrouter/policybasedroutes.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" utilnet "k8s.io/utils/net" - "github.com/ovn-org/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/gress_policy.go b/go-controller/pkg/ovn/gress_policy.go index c8445e6ed5..bc55cfb689 100644 --- a/go-controller/pkg/ovn/gress_policy.go +++ b/go-controller/pkg/ovn/gress_policy.go @@ -209,6 +209,10 @@ func (gp *gressPolicy) addNamespaceAddressSet(name string, asf addressset.Addres return false, fmt.Errorf("cannot add peer namespace %s: failed to get address set: %v", name, err) } v4HashName, v6HashName := as.GetASHashNames() + if v4HashName == "" && v6HashName == "" { + // This would happen when a namespace is not yet reconciled with UDN network. + return false, fmt.Errorf("cannot add peer namespace %s: address set has empty hashed name", name) + } v4HashName = "$" + v4HashName v6HashName = "$" + v6HashName @@ -234,6 +238,9 @@ func (gp *gressPolicy) addNamespaceAddressSet(name string, asf addressset.Addres func (gp *gressPolicy) delNamespaceAddressSet(name string) bool { dbIDs := getNamespaceAddrSetDbIDs(name, gp.controllerName) v4HashName, v6HashName := addressset.GetHashNamesForAS(dbIDs) + if v4HashName == "" && v6HashName == "" { + return false + } v4HashName = "$" + v4HashName v6HashName = "$" + v6HashName diff --git a/go-controller/pkg/ovn/hybrid.go b/go-controller/pkg/ovn/hybrid.go index 7c84dea2aa..41f98075f1 100644 --- a/go-controller/pkg/ovn/hybrid.go +++ b/go-controller/pkg/ovn/hybrid.go @@ -12,7 +12,7 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" hotypes "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/types" houtil "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/util" diff --git a/go-controller/pkg/ovn/hybrid_test.go b/go-controller/pkg/ovn/hybrid_test.go index 1663e5a8f8..fab60e2c3b 100644 --- a/go-controller/pkg/ovn/hybrid_test.go +++ b/go-controller/pkg/ovn/hybrid_test.go @@ -20,7 +20,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/tools/record" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" hotypes "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/types" cm "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/clustermanager" diff --git a/go-controller/pkg/ovn/master.go b/go-controller/pkg/ovn/master.go index c2ca98a59e..f85cdb75c3 100644 --- a/go-controller/pkg/ovn/master.go +++ b/go-controller/pkg/ovn/master.go @@ -11,7 +11,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" hotypes "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/types" houtil "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/util" diff --git a/go-controller/pkg/ovn/master_test.go b/go-controller/pkg/ovn/master_test.go index d4c65637b7..bdab2f381e 100644 --- a/go-controller/pkg/ovn/master_test.go +++ b/go-controller/pkg/ovn/master_test.go @@ -23,7 +23,7 @@ import ( clienttesting "k8s.io/client-go/testing" "k8s.io/client-go/tools/record" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" egressfirewallfake "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressfirewall/v1/apis/clientset/versioned/fake" diff --git a/go-controller/pkg/ovn/multihoming_test.go b/go-controller/pkg/ovn/multihoming_test.go index ab3d12425a..a7b69c3fb9 100644 --- a/go-controller/pkg/ovn/multihoming_test.go +++ b/go-controller/pkg/ovn/multihoming_test.go @@ -11,7 +11,7 @@ import ( corev1 "k8s.io/api/core/v1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" diff --git a/go-controller/pkg/ovn/namespace.go b/go-controller/pkg/ovn/namespace.go index 127c034735..01f189228b 100644 --- a/go-controller/pkg/ovn/namespace.go +++ b/go-controller/pkg/ovn/namespace.go @@ -9,7 +9,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/types" diff --git a/go-controller/pkg/ovn/ovn.go b/go-controller/pkg/ovn/ovn.go index 692c768d95..c6a53ee34e 100644 --- a/go-controller/pkg/ovn/ovn.go +++ b/go-controller/pkg/ovn/ovn.go @@ -17,7 +17,7 @@ import ( ref "k8s.io/client-go/tools/reference" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/kubevirt" diff --git a/go-controller/pkg/ovn/ovn_test.go b/go-controller/pkg/ovn/ovn_test.go index 801777854a..0a1b9e3c8f 100644 --- a/go-controller/pkg/ovn/ovn_test.go +++ b/go-controller/pkg/ovn/ovn_test.go @@ -25,7 +25,7 @@ import ( anpapi "sigs.k8s.io/network-policy-api/apis/v1alpha1" anpfake "sigs.k8s.io/network-policy-api/pkg/client/clientset/versioned/fake" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/ovn/pods.go b/go-controller/pkg/ovn/pods.go index 949d48da55..9f39376d9e 100644 --- a/go-controller/pkg/ovn/pods.go +++ b/go-controller/pkg/ovn/pods.go @@ -13,7 +13,7 @@ import ( ktypes "k8s.io/apimachinery/pkg/types" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" hotypes "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/ovn/policy_test.go b/go-controller/pkg/ovn/policy_test.go index 657f3d074a..bcfb4898a3 100644 --- a/go-controller/pkg/ovn/policy_test.go +++ b/go-controller/pkg/ovn/policy_test.go @@ -20,7 +20,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/routeimport/route_import.go b/go-controller/pkg/ovn/routeimport/route_import.go index 94da3d34fe..18c372c276 100644 --- a/go-controller/pkg/ovn/routeimport/route_import.go +++ b/go-controller/pkg/ovn/routeimport/route_import.go @@ -15,8 +15,8 @@ import ( "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" controllerutil "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/controller" nbdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/secondary_layer3_network_controller.go b/go-controller/pkg/ovn/secondary_layer3_network_controller.go index a6c2d500bd..15fdb98aa7 100644 --- a/go-controller/pkg/ovn/secondary_layer3_network_controller.go +++ b/go-controller/pkg/ovn/secondary_layer3_network_controller.go @@ -12,7 +12,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/allocator/pod" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" @@ -684,7 +684,7 @@ func (oc *SecondaryLayer3NetworkController) init() error { } } - // FIXME: When https://github.com/ovn-org/libovsdb/issues/235 is fixed, + // FIXME: When https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed, // use IsTableSupported(nbdb.LoadBalancerGroup). if _, _, err := util.RunOVNNbctl("--columns=_uuid", "list", "Load_Balancer_Group"); err != nil { klog.Warningf("Load Balancer Group support enabled, however version of OVN in use does not support Load Balancer Groups.") diff --git a/go-controller/pkg/ovn/topology/topologyfactory.go b/go-controller/pkg/ovn/topology/topologyfactory.go index 8781612242..d9a1980cbc 100644 --- a/go-controller/pkg/ovn/topology/topologyfactory.go +++ b/go-controller/pkg/ovn/topology/topologyfactory.go @@ -4,7 +4,7 @@ import ( "fmt" "net" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/nbdb" diff --git a/go-controller/pkg/ovn/topology/topologyfactory_test.go b/go-controller/pkg/ovn/topology/topologyfactory_test.go index 01b113c97e..af8a036d6f 100644 --- a/go-controller/pkg/ovn/topology/topologyfactory_test.go +++ b/go-controller/pkg/ovn/topology/topologyfactory_test.go @@ -5,7 +5,7 @@ import ( cnitypes "github.com/containernetworking/cni/pkg/types" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/ovn/udn_isolation.go b/go-controller/pkg/ovn/udn_isolation.go index 6c44489f9c..d9f6ddfde1 100644 --- a/go-controller/pkg/ovn/udn_isolation.go +++ b/go-controller/pkg/ovn/udn_isolation.go @@ -10,8 +10,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" libovsdbutil "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/util" diff --git a/go-controller/pkg/ovn/zone_interconnect/chassis_handler.go b/go-controller/pkg/ovn/zone_interconnect/chassis_handler.go index 172cac5e33..b838221892 100644 --- a/go-controller/pkg/ovn/zone_interconnect/chassis_handler.go +++ b/go-controller/pkg/ovn/zone_interconnect/chassis_handler.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog/v2" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/zone_interconnect/chassis_handler_test.go b/go-controller/pkg/ovn/zone_interconnect/chassis_handler_test.go index 05b9fb6b9c..df74e807d1 100644 --- a/go-controller/pkg/ovn/zone_interconnect/chassis_handler_test.go +++ b/go-controller/pkg/ovn/zone_interconnect/chassis_handler_test.go @@ -10,7 +10,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler.go b/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler.go index f484bc1528..9d088e6659 100644 --- a/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler.go +++ b/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler.go @@ -12,8 +12,8 @@ import ( "k8s.io/klog/v2" utilnet "k8s.io/utils/net" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/ovsdb" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/factory" libovsdbops "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/libovsdb/ops" diff --git a/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler_test.go b/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler_test.go index 8af1215714..c0a54a1d61 100644 --- a/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler_test.go +++ b/go-controller/pkg/ovn/zone_interconnect/zone_ic_handler_test.go @@ -13,7 +13,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ovncnitypes "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cni/types" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" diff --git a/go-controller/pkg/sbdb/address_set.go b/go-controller/pkg/sbdb/address_set.go index b3b1c3c2d8..88b221dedf 100644 --- a/go-controller/pkg/sbdb/address_set.go +++ b/go-controller/pkg/sbdb/address_set.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const AddressSetTable = "Address_Set" diff --git a/go-controller/pkg/sbdb/bfd.go b/go-controller/pkg/sbdb/bfd.go index cf27814b51..eb3822e902 100644 --- a/go-controller/pkg/sbdb/bfd.go +++ b/go-controller/pkg/sbdb/bfd.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const BFDTable = "BFD" diff --git a/go-controller/pkg/sbdb/chassis.go b/go-controller/pkg/sbdb/chassis.go index 3526f096f2..3cbffee206 100644 --- a/go-controller/pkg/sbdb/chassis.go +++ b/go-controller/pkg/sbdb/chassis.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ChassisTable = "Chassis" diff --git a/go-controller/pkg/sbdb/chassis_private.go b/go-controller/pkg/sbdb/chassis_private.go index 1e8c3764bd..dc848a1569 100644 --- a/go-controller/pkg/sbdb/chassis_private.go +++ b/go-controller/pkg/sbdb/chassis_private.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ChassisPrivateTable = "Chassis_Private" diff --git a/go-controller/pkg/sbdb/chassis_template_var.go b/go-controller/pkg/sbdb/chassis_template_var.go index 212e772be6..2e8213ade8 100644 --- a/go-controller/pkg/sbdb/chassis_template_var.go +++ b/go-controller/pkg/sbdb/chassis_template_var.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ChassisTemplateVarTable = "Chassis_Template_Var" diff --git a/go-controller/pkg/sbdb/connection.go b/go-controller/pkg/sbdb/connection.go index 8f96f54226..2deb8bd30a 100644 --- a/go-controller/pkg/sbdb/connection.go +++ b/go-controller/pkg/sbdb/connection.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ConnectionTable = "Connection" diff --git a/go-controller/pkg/sbdb/controller_event.go b/go-controller/pkg/sbdb/controller_event.go index 741ffd028a..0233181ca6 100644 --- a/go-controller/pkg/sbdb/controller_event.go +++ b/go-controller/pkg/sbdb/controller_event.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ControllerEventTable = "Controller_Event" diff --git a/go-controller/pkg/sbdb/datapath_binding.go b/go-controller/pkg/sbdb/datapath_binding.go index 10247286f7..295660e9c3 100644 --- a/go-controller/pkg/sbdb/datapath_binding.go +++ b/go-controller/pkg/sbdb/datapath_binding.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DatapathBindingTable = "Datapath_Binding" diff --git a/go-controller/pkg/sbdb/dhcp_options.go b/go-controller/pkg/sbdb/dhcp_options.go index e9ec44ce29..e0bb7627f1 100644 --- a/go-controller/pkg/sbdb/dhcp_options.go +++ b/go-controller/pkg/sbdb/dhcp_options.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DHCPOptionsTable = "DHCP_Options" diff --git a/go-controller/pkg/sbdb/dhcpv6_options.go b/go-controller/pkg/sbdb/dhcpv6_options.go index 908d1e0ad0..95a2a8d8f4 100644 --- a/go-controller/pkg/sbdb/dhcpv6_options.go +++ b/go-controller/pkg/sbdb/dhcpv6_options.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DHCPv6OptionsTable = "DHCPv6_Options" diff --git a/go-controller/pkg/sbdb/dns.go b/go-controller/pkg/sbdb/dns.go index 95c0a52d1e..c044f990b0 100644 --- a/go-controller/pkg/sbdb/dns.go +++ b/go-controller/pkg/sbdb/dns.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DNSTable = "DNS" diff --git a/go-controller/pkg/sbdb/encap.go b/go-controller/pkg/sbdb/encap.go index 9a2f17fba2..4c524a52ca 100644 --- a/go-controller/pkg/sbdb/encap.go +++ b/go-controller/pkg/sbdb/encap.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const EncapTable = "Encap" diff --git a/go-controller/pkg/sbdb/fdb.go b/go-controller/pkg/sbdb/fdb.go index 8253e7059b..346593ac6f 100644 --- a/go-controller/pkg/sbdb/fdb.go +++ b/go-controller/pkg/sbdb/fdb.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const FDBTable = "FDB" diff --git a/go-controller/pkg/sbdb/gateway_chassis.go b/go-controller/pkg/sbdb/gateway_chassis.go index a84ad7fc47..f08883222d 100644 --- a/go-controller/pkg/sbdb/gateway_chassis.go +++ b/go-controller/pkg/sbdb/gateway_chassis.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const GatewayChassisTable = "Gateway_Chassis" diff --git a/go-controller/pkg/sbdb/ha_chassis.go b/go-controller/pkg/sbdb/ha_chassis.go index b0b3cebbba..b40d7999e3 100644 --- a/go-controller/pkg/sbdb/ha_chassis.go +++ b/go-controller/pkg/sbdb/ha_chassis.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const HAChassisTable = "HA_Chassis" diff --git a/go-controller/pkg/sbdb/ha_chassis_group.go b/go-controller/pkg/sbdb/ha_chassis_group.go index 1cc013c705..72a5622f5b 100644 --- a/go-controller/pkg/sbdb/ha_chassis_group.go +++ b/go-controller/pkg/sbdb/ha_chassis_group.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const HAChassisGroupTable = "HA_Chassis_Group" diff --git a/go-controller/pkg/sbdb/igmp_group.go b/go-controller/pkg/sbdb/igmp_group.go index 73a0bb9437..19381eb855 100644 --- a/go-controller/pkg/sbdb/igmp_group.go +++ b/go-controller/pkg/sbdb/igmp_group.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const IGMPGroupTable = "IGMP_Group" diff --git a/go-controller/pkg/sbdb/ip_multicast.go b/go-controller/pkg/sbdb/ip_multicast.go index 493cd342d2..902b7204f1 100644 --- a/go-controller/pkg/sbdb/ip_multicast.go +++ b/go-controller/pkg/sbdb/ip_multicast.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const IPMulticastTable = "IP_Multicast" diff --git a/go-controller/pkg/sbdb/load_balancer.go b/go-controller/pkg/sbdb/load_balancer.go index bc341807e7..7bf4da265a 100644 --- a/go-controller/pkg/sbdb/load_balancer.go +++ b/go-controller/pkg/sbdb/load_balancer.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LoadBalancerTable = "Load_Balancer" diff --git a/go-controller/pkg/sbdb/logical_dp_group.go b/go-controller/pkg/sbdb/logical_dp_group.go index 911de2eed0..86727f4486 100644 --- a/go-controller/pkg/sbdb/logical_dp_group.go +++ b/go-controller/pkg/sbdb/logical_dp_group.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalDPGroupTable = "Logical_DP_Group" diff --git a/go-controller/pkg/sbdb/logical_flow.go b/go-controller/pkg/sbdb/logical_flow.go index 42af1cdf54..da2341990d 100644 --- a/go-controller/pkg/sbdb/logical_flow.go +++ b/go-controller/pkg/sbdb/logical_flow.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const LogicalFlowTable = "Logical_Flow" diff --git a/go-controller/pkg/sbdb/mac_binding.go b/go-controller/pkg/sbdb/mac_binding.go index 705431f1d0..9764c6dc35 100644 --- a/go-controller/pkg/sbdb/mac_binding.go +++ b/go-controller/pkg/sbdb/mac_binding.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MACBindingTable = "MAC_Binding" diff --git a/go-controller/pkg/sbdb/meter.go b/go-controller/pkg/sbdb/meter.go index 95c4daec2f..9d86874c0b 100644 --- a/go-controller/pkg/sbdb/meter.go +++ b/go-controller/pkg/sbdb/meter.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MeterTable = "Meter" diff --git a/go-controller/pkg/sbdb/meter_band.go b/go-controller/pkg/sbdb/meter_band.go index addb01b645..10d3d740f8 100644 --- a/go-controller/pkg/sbdb/meter_band.go +++ b/go-controller/pkg/sbdb/meter_band.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MeterBandTable = "Meter_Band" diff --git a/go-controller/pkg/sbdb/mirror.go b/go-controller/pkg/sbdb/mirror.go index 69444ea735..b9139214ca 100644 --- a/go-controller/pkg/sbdb/mirror.go +++ b/go-controller/pkg/sbdb/mirror.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MirrorTable = "Mirror" diff --git a/go-controller/pkg/sbdb/model.go b/go-controller/pkg/sbdb/model.go index bc838fe497..c5420638e5 100644 --- a/go-controller/pkg/sbdb/model.go +++ b/go-controller/pkg/sbdb/model.go @@ -6,8 +6,8 @@ package sbdb import ( "encoding/json" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // FullDatabaseModel returns the DatabaseModel object to be used in libovsdb diff --git a/go-controller/pkg/sbdb/multicast_group.go b/go-controller/pkg/sbdb/multicast_group.go index 1af933ea6c..b8e2a828d9 100644 --- a/go-controller/pkg/sbdb/multicast_group.go +++ b/go-controller/pkg/sbdb/multicast_group.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MulticastGroupTable = "Multicast_Group" diff --git a/go-controller/pkg/sbdb/port_binding.go b/go-controller/pkg/sbdb/port_binding.go index b3d30f843a..48668023fc 100644 --- a/go-controller/pkg/sbdb/port_binding.go +++ b/go-controller/pkg/sbdb/port_binding.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const PortBindingTable = "Port_Binding" diff --git a/go-controller/pkg/sbdb/port_group.go b/go-controller/pkg/sbdb/port_group.go index 358e26b33d..e197ae6e4d 100644 --- a/go-controller/pkg/sbdb/port_group.go +++ b/go-controller/pkg/sbdb/port_group.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const PortGroupTable = "Port_Group" diff --git a/go-controller/pkg/sbdb/rbac_permission.go b/go-controller/pkg/sbdb/rbac_permission.go index 9d760527e9..228c56bfe8 100644 --- a/go-controller/pkg/sbdb/rbac_permission.go +++ b/go-controller/pkg/sbdb/rbac_permission.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const RBACPermissionTable = "RBAC_Permission" diff --git a/go-controller/pkg/sbdb/rbac_role.go b/go-controller/pkg/sbdb/rbac_role.go index ce8798645c..427582d3b8 100644 --- a/go-controller/pkg/sbdb/rbac_role.go +++ b/go-controller/pkg/sbdb/rbac_role.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const RBACRoleTable = "RBAC_Role" diff --git a/go-controller/pkg/sbdb/sb_global.go b/go-controller/pkg/sbdb/sb_global.go index 2374478db7..667fdae3e0 100644 --- a/go-controller/pkg/sbdb/sb_global.go +++ b/go-controller/pkg/sbdb/sb_global.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SBGlobalTable = "SB_Global" diff --git a/go-controller/pkg/sbdb/service_monitor.go b/go-controller/pkg/sbdb/service_monitor.go index d3e1188680..189f09f659 100644 --- a/go-controller/pkg/sbdb/service_monitor.go +++ b/go-controller/pkg/sbdb/service_monitor.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ServiceMonitorTable = "Service_Monitor" diff --git a/go-controller/pkg/sbdb/ssl.go b/go-controller/pkg/sbdb/ssl.go index 3fab5fd1e9..08c8e641cf 100644 --- a/go-controller/pkg/sbdb/ssl.go +++ b/go-controller/pkg/sbdb/ssl.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SSLTable = "SSL" diff --git a/go-controller/pkg/sbdb/static_mac_binding.go b/go-controller/pkg/sbdb/static_mac_binding.go index 370968f604..8a3c590e31 100644 --- a/go-controller/pkg/sbdb/static_mac_binding.go +++ b/go-controller/pkg/sbdb/static_mac_binding.go @@ -3,7 +3,7 @@ package sbdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const StaticMACBindingTable = "Static_MAC_Binding" diff --git a/go-controller/pkg/testing/libovsdb/libovsdb.go b/go-controller/pkg/testing/libovsdb/libovsdb.go index 8f10bab356..a6836811d1 100644 --- a/go-controller/pkg/testing/libovsdb/libovsdb.go +++ b/go-controller/pkg/testing/libovsdb/libovsdb.go @@ -21,14 +21,14 @@ import ( "k8s.io/apimachinery/pkg/util/wait" - libovsdbclient "github.com/ovn-org/libovsdb/client" - "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/database/inmemory" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" - "github.com/ovn-org/libovsdb/ovsdb/serverdb" - "github.com/ovn-org/libovsdb/server" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" + "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/database/inmemory" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb" + "github.com/ovn-kubernetes/libovsdb/server" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/cryptorand" diff --git a/go-controller/pkg/testing/libovsdb/matchers.go b/go-controller/pkg/testing/libovsdb/matchers.go index 102d8fbc63..1ff3977065 100644 --- a/go-controller/pkg/testing/libovsdb/matchers.go +++ b/go-controller/pkg/testing/libovsdb/matchers.go @@ -9,7 +9,7 @@ import ( gomegaformat "github.com/onsi/gomega/format" gomegatypes "github.com/onsi/gomega/types" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" ) // isSetEqual compares a slice as an unordered set diff --git a/go-controller/pkg/testing/libovsdb/ops.go b/go-controller/pkg/testing/libovsdb/ops.go index 1926bbc3f5..de73c1d154 100644 --- a/go-controller/pkg/testing/libovsdb/ops.go +++ b/go-controller/pkg/testing/libovsdb/ops.go @@ -6,7 +6,7 @@ import ( "fmt" "hash/fnv" - libovsdbclient "github.com/ovn-org/libovsdb/client" + libovsdbclient "github.com/ovn-kubernetes/libovsdb/client" "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/sbdb" ) diff --git a/go-controller/pkg/util/ovs.go b/go-controller/pkg/util/ovs.go index ff21e828db..f6e3ca0ad0 100644 --- a/go-controller/pkg/util/ovs.go +++ b/go-controller/pkg/util/ovs.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/json" "fmt" + "net" "regexp" "runtime" "strings" @@ -377,7 +378,7 @@ func RunOVNAppctlWithTimeout(timeout int, args ...string) (string, string, error // Run the ovn-ctl command and retry if "Connection refused" // poll waitng for service to become available -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func runOVNretry(cmdPath string, envVars []string, args ...string) (*bytes.Buffer, *bytes.Buffer, error) { retriesLeft := ovnCmdRetryCount @@ -434,14 +435,14 @@ func getNbOVSDBArgs(command string, args ...string) []string { } // RunOVNNbctlWithTimeout runs command via ovn-nbctl with a specific timeout -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func RunOVNNbctlWithTimeout(timeout int, args ...string) (string, string, error) { stdout, stderr, err := RunOVNNbctlRawOutput(timeout, args...) return strings.Trim(strings.TrimSpace(stdout), "\""), stderr, err } // RunOVNNbctlRawOutput returns the output with no trimming or other string manipulation -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func RunOVNNbctlRawOutput(timeout int, args ...string) (string, string, error) { cmdArgs, envVars := getNbctlArgsAndEnv(timeout, args...) stdout, stderr, err := runOVNretry(runner.nbctlPath, envVars, cmdArgs...) @@ -449,13 +450,13 @@ func RunOVNNbctlRawOutput(timeout int, args ...string) (string, string, error) { } // RunOVNNbctl runs a command via ovn-nbctl. -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func RunOVNNbctl(args ...string) (string, string, error) { return RunOVNNbctlWithTimeout(ovsCommandTimeout, args...) } // RunOVNSbctlWithTimeout runs command via ovn-sbctl with a specific timeout -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func RunOVNSbctlWithTimeout(timeout int, args ...string) (string, string, error) { var cmdArgs []string @@ -499,7 +500,7 @@ func RunOVSDBClientOVNNB(command string, args ...string) (string, string, error) } // RunOVNSbctl runs a command via ovn-sbctl. -// FIXME: Remove when https://github.com/ovn-org/libovsdb/issues/235 is fixed +// FIXME: Remove when https://github.com/ovn-kubernetes/libovsdb/issues/235 is fixed func RunOVNSbctl(args ...string) (string, string, error) { return RunOVNSbctlWithTimeout(ovsCommandTimeout, args...) } @@ -819,6 +820,18 @@ func DetectCheckPktLengthSupport(bridge string) (bool, error) { return false, nil } +// SetStaticFDBEntry programs a static MAC entry into the OVS FIB and disables MAC learning for this entry +func SetStaticFDBEntry(bridge, port string, mac net.HardwareAddr) error { + // Assume default VLAN for local port + vlan := "0" + stdout, stderr, err := RunOVSAppctl("fdb/add", bridge, port, vlan, mac.String()) + if err != nil { + return fmt.Errorf("failed to add FDB entry to OVS for LOCAL port, "+ + "stdout: %q, stderr: %q, error: %v", stdout, stderr, err) + } + return nil +} + // IsOvsHwOffloadEnabled checks if OvS Hardware Offload is enabled. func IsOvsHwOffloadEnabled() (bool, error) { stdout, stderr, err := RunOVSVsctl("--if-exists", "get", diff --git a/go-controller/pkg/vswitchd/autoattach.go b/go-controller/pkg/vswitchd/autoattach.go index b9655736aa..e54dbba3ae 100644 --- a/go-controller/pkg/vswitchd/autoattach.go +++ b/go-controller/pkg/vswitchd/autoattach.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const AutoAttachTable = "AutoAttach" diff --git a/go-controller/pkg/vswitchd/bridge.go b/go-controller/pkg/vswitchd/bridge.go index 8953faa3f2..14997f995b 100644 --- a/go-controller/pkg/vswitchd/bridge.go +++ b/go-controller/pkg/vswitchd/bridge.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const BridgeTable = "Bridge" diff --git a/go-controller/pkg/vswitchd/controller.go b/go-controller/pkg/vswitchd/controller.go index 1b38c989bf..ff02062eaa 100644 --- a/go-controller/pkg/vswitchd/controller.go +++ b/go-controller/pkg/vswitchd/controller.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ControllerTable = "Controller" diff --git a/go-controller/pkg/vswitchd/ct_timeout_policy.go b/go-controller/pkg/vswitchd/ct_timeout_policy.go index 98bf690498..150db9b2f7 100644 --- a/go-controller/pkg/vswitchd/ct_timeout_policy.go +++ b/go-controller/pkg/vswitchd/ct_timeout_policy.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const CTTimeoutPolicyTable = "CT_Timeout_Policy" diff --git a/go-controller/pkg/vswitchd/ct_zone.go b/go-controller/pkg/vswitchd/ct_zone.go index 4eaba845c4..6868191974 100644 --- a/go-controller/pkg/vswitchd/ct_zone.go +++ b/go-controller/pkg/vswitchd/ct_zone.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const CTZoneTable = "CT_Zone" diff --git a/go-controller/pkg/vswitchd/datapath.go b/go-controller/pkg/vswitchd/datapath.go index 71a995f93e..899f5d3531 100644 --- a/go-controller/pkg/vswitchd/datapath.go +++ b/go-controller/pkg/vswitchd/datapath.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DatapathTable = "Datapath" diff --git a/go-controller/pkg/vswitchd/flow_sample_collector_set.go b/go-controller/pkg/vswitchd/flow_sample_collector_set.go index 2c90f5d438..8c975711a5 100644 --- a/go-controller/pkg/vswitchd/flow_sample_collector_set.go +++ b/go-controller/pkg/vswitchd/flow_sample_collector_set.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const FlowSampleCollectorSetTable = "Flow_Sample_Collector_Set" diff --git a/go-controller/pkg/vswitchd/flow_table.go b/go-controller/pkg/vswitchd/flow_table.go index 42d49d2f58..911b6fbb1d 100644 --- a/go-controller/pkg/vswitchd/flow_table.go +++ b/go-controller/pkg/vswitchd/flow_table.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const FlowTableTable = "Flow_Table" diff --git a/go-controller/pkg/vswitchd/interface.go b/go-controller/pkg/vswitchd/interface.go index e6f67ba9c7..6f89cc5d1a 100644 --- a/go-controller/pkg/vswitchd/interface.go +++ b/go-controller/pkg/vswitchd/interface.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const InterfaceTable = "Interface" diff --git a/go-controller/pkg/vswitchd/ipfix.go b/go-controller/pkg/vswitchd/ipfix.go index 72b5d3915c..8ea91c8fd1 100644 --- a/go-controller/pkg/vswitchd/ipfix.go +++ b/go-controller/pkg/vswitchd/ipfix.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const IPFIXTable = "IPFIX" diff --git a/go-controller/pkg/vswitchd/manager.go b/go-controller/pkg/vswitchd/manager.go index ff1df96caa..45a9dcb609 100644 --- a/go-controller/pkg/vswitchd/manager.go +++ b/go-controller/pkg/vswitchd/manager.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const ManagerTable = "Manager" diff --git a/go-controller/pkg/vswitchd/mirror.go b/go-controller/pkg/vswitchd/mirror.go index 044455d253..2bab171097 100644 --- a/go-controller/pkg/vswitchd/mirror.go +++ b/go-controller/pkg/vswitchd/mirror.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const MirrorTable = "Mirror" diff --git a/go-controller/pkg/vswitchd/model.go b/go-controller/pkg/vswitchd/model.go index c862f04277..20b8d0cc94 100644 --- a/go-controller/pkg/vswitchd/model.go +++ b/go-controller/pkg/vswitchd/model.go @@ -6,8 +6,8 @@ package vswitchd import ( "encoding/json" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // FullDatabaseModel returns the DatabaseModel object to be used in libovsdb diff --git a/go-controller/pkg/vswitchd/netflow.go b/go-controller/pkg/vswitchd/netflow.go index f958587044..d1f05029fd 100644 --- a/go-controller/pkg/vswitchd/netflow.go +++ b/go-controller/pkg/vswitchd/netflow.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const NetFlowTable = "NetFlow" diff --git a/go-controller/pkg/vswitchd/open_vswitch.go b/go-controller/pkg/vswitchd/open_vswitch.go index e8ea481d5b..e8a1456fe9 100644 --- a/go-controller/pkg/vswitchd/open_vswitch.go +++ b/go-controller/pkg/vswitchd/open_vswitch.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const OpenvSwitchTable = "Open_vSwitch" diff --git a/go-controller/pkg/vswitchd/port.go b/go-controller/pkg/vswitchd/port.go index cf0ba96153..6aa3350c93 100644 --- a/go-controller/pkg/vswitchd/port.go +++ b/go-controller/pkg/vswitchd/port.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const PortTable = "Port" diff --git a/go-controller/pkg/vswitchd/qos.go b/go-controller/pkg/vswitchd/qos.go index aa1c9dd004..0ac14541d9 100644 --- a/go-controller/pkg/vswitchd/qos.go +++ b/go-controller/pkg/vswitchd/qos.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const QoSTable = "QoS" diff --git a/go-controller/pkg/vswitchd/queue.go b/go-controller/pkg/vswitchd/queue.go index e8615e9cf7..60094eb8c2 100644 --- a/go-controller/pkg/vswitchd/queue.go +++ b/go-controller/pkg/vswitchd/queue.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const QueueTable = "Queue" diff --git a/go-controller/pkg/vswitchd/sflow.go b/go-controller/pkg/vswitchd/sflow.go index fcbcc8569e..58841d7877 100644 --- a/go-controller/pkg/vswitchd/sflow.go +++ b/go-controller/pkg/vswitchd/sflow.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SFlowTable = "sFlow" diff --git a/go-controller/pkg/vswitchd/ssl.go b/go-controller/pkg/vswitchd/ssl.go index 79c4b1bad4..84dfbd1f33 100644 --- a/go-controller/pkg/vswitchd/ssl.go +++ b/go-controller/pkg/vswitchd/ssl.go @@ -3,7 +3,7 @@ package vswitchd -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const SSLTable = "SSL" diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/LICENSE b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/LICENSE similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/LICENSE rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/LICENSE diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/NOTICE b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/NOTICE similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/NOTICE rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/NOTICE diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/cache/cache.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/cache.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/cache/cache.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/cache.go index 0b1e09e721..ffe871fd3e 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/cache/cache.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/cache.go @@ -15,10 +15,10 @@ import ( "github.com/go-logr/logr" "github.com/go-logr/stdr" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" - "github.com/ovn-org/libovsdb/updates" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/updates" ) const ( diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/cache/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/cache/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/cache/uuidset.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/uuidset.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/cache/uuidset.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/cache/uuidset.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/api.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/api.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api.go index 4977589442..f6a8d6fb34 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/client/api.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api.go @@ -7,9 +7,9 @@ import ( "reflect" "github.com/go-logr/logr" - "github.com/ovn-org/libovsdb/cache" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // API defines basic operations to interact with the database diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/api_test_model.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api_test_model.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/api_test_model.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api_test_model.go index 36ea476e08..7a97b6d08c 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/client/api_test_model.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/api_test_model.go @@ -4,9 +4,9 @@ import ( "encoding/json" "testing" - "github.com/ovn-org/libovsdb/cache" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" "github.com/stretchr/testify/assert" ) diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/client.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/client.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/client.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/client.go index 10ea757ec7..3926ad6ddf 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/client/client.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/client.go @@ -20,11 +20,11 @@ import ( "github.com/cenkalti/rpc2/jsonrpc" "github.com/go-logr/logr" "github.com/go-logr/stdr" - "github.com/ovn-org/libovsdb/cache" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" - "github.com/ovn-org/libovsdb/ovsdb/serverdb" + "github.com/ovn-kubernetes/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb" ) // Constants defined for libovsdb diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/condition.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/condition.go similarity index 97% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/condition.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/condition.go index 1dfabda02e..1269339cea 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/client/condition.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/condition.go @@ -4,10 +4,10 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/cache" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // Conditional is the interface used by the ConditionalAPI to match on cache objects diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/config.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/config.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/config.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/config.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/metrics.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/metrics.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/metrics.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/metrics.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/monitor.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/monitor.go similarity index 97% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/monitor.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/monitor.go index 4a0270a87a..767a4cf3d6 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/client/monitor.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/monitor.go @@ -5,8 +5,8 @@ import ( "reflect" "github.com/google/uuid" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) const emptyUUID = "00000000-0000-0000-0000-000000000000" diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/client/options.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/options.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/client/options.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/client/options.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/database.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/database.go similarity index 93% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/database.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/database.go index 12f1222f19..9bdb69568b 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/database/database.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/database.go @@ -2,8 +2,8 @@ package database import ( "github.com/google/uuid" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // Database abstracts a database that a server can use to store and transact data diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/inmemory/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/inmemory/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/inmemory/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/inmemory/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/inmemory/inmemory.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/inmemory/inmemory.go similarity index 93% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/inmemory/inmemory.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/inmemory/inmemory.go index 6c1dce9e79..763dcd7fd0 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/database/inmemory/inmemory.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/inmemory/inmemory.go @@ -9,11 +9,11 @@ import ( "github.com/go-logr/logr" "github.com/go-logr/stdr" "github.com/google/uuid" - "github.com/ovn-org/libovsdb/cache" - dbase "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/database/transaction" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/cache" + dbase "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/database/transaction" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) type inMemoryDatabase struct { diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/references.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/references.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/references.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/references.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/errors.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/errors.go similarity index 91% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/errors.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/errors.go index 35e47c7294..204a7f544a 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/errors.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/errors.go @@ -3,7 +3,7 @@ package transaction import ( "fmt" - "github.com/ovn-org/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/cache" ) func newIndexExistsDetails(err cache.ErrIndexExists) string { diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/transaction.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/transaction.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/transaction.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/transaction.go index 69736d0048..77b8e920c0 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/database/transaction/transaction.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/database/transaction/transaction.go @@ -7,11 +7,11 @@ import ( "github.com/go-logr/logr" "github.com/google/uuid" - "github.com/ovn-org/libovsdb/cache" - "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" - "github.com/ovn-org/libovsdb/updates" + "github.com/ovn-kubernetes/libovsdb/cache" + "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/updates" ) type Transaction struct { diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/mapper/info.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/info.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/mapper/info.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/info.go index 8ac436c790..0e24ef25ec 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/mapper/info.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/info.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // ErrColumnNotFound is an error that can occur when the column does not exist for a table diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/mapper/mapper.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/mapper.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/mapper/mapper.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/mapper.go index 5ca7a412bb..24ce7b3b8c 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/mapper/mapper.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/mapper/mapper.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // Mapper offers functions to interact with libovsdb through user-provided native structs. diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/model/client.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/client.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/model/client.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/client.go index 5eb686244a..e8a39260e9 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/model/client.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/client.go @@ -4,8 +4,8 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // ColumnKey addresses a column and optionally a key within a column diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/model/database.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/database.go similarity index 97% rename from go-controller/vendor/github.com/ovn-org/libovsdb/model/database.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/database.go index 0857d903f3..30ccff67b1 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/model/database.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/database.go @@ -4,8 +4,8 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // A DatabaseModel represents libovsdb's metadata about the database. diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/model/model.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/model.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/model/model.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/model.go index c8575f5bf3..249db69921 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/model/model.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/model/model.go @@ -5,7 +5,7 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // A Model is the base interface used to build Database Models. It is used diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/bindings.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/bindings.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/bindings.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/bindings.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/condition.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/condition.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/condition.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/condition.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/error.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/error.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/error.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/error.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/map.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/map.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/map.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/map.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/monitor_select.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/monitor_select.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/monitor_select.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/monitor_select.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/mutation.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/mutation.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/mutation.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/mutation.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/named_uuid.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/named_uuid.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/named_uuid.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/named_uuid.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/notation.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/notation.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/notation.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/notation.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/row.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/row.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/row.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/row.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/rpc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/rpc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/rpc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/rpc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/schema.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/schema.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/schema.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/schema.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/.gitignore b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/.gitignore similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/.gitignore rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/.gitignore diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/database.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/database.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/database.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/database.go index 274a7164fe..a93ca0d86f 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/database.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/database.go @@ -3,7 +3,7 @@ package serverdb -import "github.com/ovn-org/libovsdb/model" +import "github.com/ovn-kubernetes/libovsdb/model" const DatabaseTable = "Database" diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/gen.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/gen.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/gen.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/gen.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/model.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/model.go similarity index 95% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/model.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/model.go index 3c117faa26..c0aeeb74c3 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/serverdb/model.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb/model.go @@ -6,8 +6,8 @@ package serverdb import ( "encoding/json" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // FullDatabaseModel returns the DatabaseModel object to be used in libovsdb diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/set.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/set.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/set.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/set.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/update3.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/update3.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/update3.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/update3.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/updates.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/updates.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/updates.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/updates.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/updates2.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/updates2.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/updates2.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/updates2.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/uuid.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/uuid.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/ovsdb/uuid.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/ovsdb/uuid.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/server/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/server/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/server/monitor.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/monitor.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/server/monitor.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/monitor.go index 2dedf992b0..305769a212 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/server/monitor.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/monitor.go @@ -7,8 +7,8 @@ import ( "github.com/cenkalti/rpc2" "github.com/google/uuid" - "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // connectionMonitors maps a connection to a map or monitors diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/server/server.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/server.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/server/server.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/server.go index ec60ea5d20..830560fc36 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/server/server.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/server/server.go @@ -14,9 +14,9 @@ import ( "github.com/go-logr/logr" "github.com/go-logr/stdr" "github.com/google/uuid" - "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // OvsdbServer is an ovsdb server diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/difference.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/difference.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/difference.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/difference.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/doc.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/doc.go similarity index 100% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/doc.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/doc.go diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/merge.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/merge.go similarity index 98% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/merge.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/merge.go index 562f226232..82d78239f6 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/merge.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/merge.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) func merge(ts *ovsdb.TableSchema, a, b modelUpdate) (modelUpdate, error) { diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/mutate.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/mutate.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/mutate.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/mutate.go index 1d87737fcd..b91ef85341 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/mutate.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/mutate.go @@ -3,7 +3,7 @@ package updates import ( "reflect" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) func removeFromSlice(a, b reflect.Value) (reflect.Value, bool) { diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/references.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/references.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/references.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/references.go index 938d02aae9..4d998e0511 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/references.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/references.go @@ -3,9 +3,9 @@ package updates import ( "fmt" - "github.com/ovn-org/libovsdb/database" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/database" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) // ReferenceProvider should be implemented by a database that tracks references diff --git a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/updates.go b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/updates.go similarity index 99% rename from go-controller/vendor/github.com/ovn-org/libovsdb/updates/updates.go rename to go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/updates.go index 4ff2363a05..00fbcccffa 100644 --- a/go-controller/vendor/github.com/ovn-org/libovsdb/updates/updates.go +++ b/go-controller/vendor/github.com/ovn-kubernetes/libovsdb/updates/updates.go @@ -4,9 +4,9 @@ import ( "fmt" "reflect" - "github.com/ovn-org/libovsdb/mapper" - "github.com/ovn-org/libovsdb/model" - "github.com/ovn-org/libovsdb/ovsdb" + "github.com/ovn-kubernetes/libovsdb/mapper" + "github.com/ovn-kubernetes/libovsdb/model" + "github.com/ovn-kubernetes/libovsdb/ovsdb" ) type rowUpdate2 = ovsdb.RowUpdate2 diff --git a/go-controller/vendor/modules.txt b/go-controller/vendor/modules.txt index a0ecf2cb4a..5732a53975 100644 --- a/go-controller/vendor/modules.txt +++ b/go-controller/vendor/modules.txt @@ -385,19 +385,19 @@ github.com/openshift/client-go/network/listers/network/v1alpha1 # github.com/openshift/custom-resource-status v1.1.2 ## explicit; go 1.12 github.com/openshift/custom-resource-status/conditions/v1 -# github.com/ovn-org/libovsdb v0.7.1-0.20240820095311-ce1951614a20 +# github.com/ovn-kubernetes/libovsdb v0.8.0 ## explicit; go 1.18 -github.com/ovn-org/libovsdb/cache -github.com/ovn-org/libovsdb/client -github.com/ovn-org/libovsdb/database -github.com/ovn-org/libovsdb/database/inmemory -github.com/ovn-org/libovsdb/database/transaction -github.com/ovn-org/libovsdb/mapper -github.com/ovn-org/libovsdb/model -github.com/ovn-org/libovsdb/ovsdb -github.com/ovn-org/libovsdb/ovsdb/serverdb -github.com/ovn-org/libovsdb/server -github.com/ovn-org/libovsdb/updates +github.com/ovn-kubernetes/libovsdb/cache +github.com/ovn-kubernetes/libovsdb/client +github.com/ovn-kubernetes/libovsdb/database +github.com/ovn-kubernetes/libovsdb/database/inmemory +github.com/ovn-kubernetes/libovsdb/database/transaction +github.com/ovn-kubernetes/libovsdb/mapper +github.com/ovn-kubernetes/libovsdb/model +github.com/ovn-kubernetes/libovsdb/ovsdb +github.com/ovn-kubernetes/libovsdb/ovsdb/serverdb +github.com/ovn-kubernetes/libovsdb/server +github.com/ovn-kubernetes/libovsdb/updates # github.com/pborman/uuid v1.2.0 ## explicit github.com/pborman/uuid diff --git a/test/e2e/network_segmentation_policy.go b/test/e2e/network_segmentation_policy.go index 30bc1dc0a5..f00dd63bec 100644 --- a/test/e2e/network_segmentation_policy.go +++ b/test/e2e/network_segmentation_policy.go @@ -35,6 +35,8 @@ var _ = ginkgo.Describe("Network Segmentation: Network Policies", feature.Networ randomStringLength = 5 nameSpaceYellowSuffix = "yellow" namespaceBlueSuffix = "blue" + namespaceRedSuffix = "red" + namespaceOrangeSuffix = "orange" ) var ( @@ -57,7 +59,10 @@ var _ = ginkgo.Describe("Network Segmentation: Network Policies", feature.Networ namespaceYellow := getNamespaceName(f, nameSpaceYellowSuffix) namespaceBlue := getNamespaceName(f, namespaceBlueSuffix) - for _, namespace := range []string{namespaceYellow, namespaceBlue} { + namespaceRed := getNamespaceName(f, namespaceRedSuffix) + namespaceOrange := getNamespaceName(f, namespaceOrangeSuffix) + for _, namespace := range []string{namespaceYellow, namespaceBlue, + namespaceRed, namespaceOrange} { ginkgo.By("Creating namespace " + namespace) ns, err := cs.CoreV1().Namespaces().Create(context.Background(), &v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -180,11 +185,13 @@ var _ = ginkgo.Describe("Network Segmentation: Network Policies", feature.Networ namespaceYellow := getNamespaceName(f, nameSpaceYellowSuffix) namespaceBlue := getNamespaceName(f, namespaceBlueSuffix) + namespaceRed := getNamespaceName(f, namespaceRedSuffix) + namespaceOrange := getNamespaceName(f, namespaceOrangeSuffix) nad := networkAttachmentConfigParams{ topology: topology, cidr: correctCIDRFamily(userDefinedNetworkIPv4Subnet, userDefinedNetworkIPv6Subnet), - // Both yellow and blue namespaces are going to served by green network. + // The yellow, blue and red namespaces are going to served by green network. // Use random suffix for the network name to avoid race between tests. networkName: fmt.Sprintf("%s-%s", "green", rand.String(randomStringLength)), role: "primary", @@ -258,8 +265,8 @@ var _ = ginkgo.Describe("Network Segmentation: Network Policies", feature.Networ return reachServerPodFromClient(cs, denyServerPodConfig, clientPodConfig, denyServerPodIP, port) }, 1*time.Minute, 6*time.Second).ShouldNot(gomega.Succeed()) - ginkgo.By("creating a \"allow-traffic-to-pod\" network policy") - _, err = allowTrafficToPodFromNamespacePolicy(f, namespaceYellow, namespaceBlue, "allow-traffic-to-pod", allowServerPodLabel) + ginkgo.By("creating a \"allow-traffic-to-pod\" network policy for blue and red namespace") + _, err = allowTrafficToPodFromNamespacePolicy(f, namespaceYellow, namespaceBlue, namespaceRed, "allow-traffic-to-pod", allowServerPodLabel) gomega.Expect(err).NotTo(gomega.HaveOccurred()) ginkgo.By("asserting the *client* pod can contact the allow server pod exposed endpoint") @@ -272,6 +279,74 @@ var _ = ginkgo.Describe("Network Segmentation: Network Policies", feature.Networ return reachServerPodFromClient(cs, denyServerPodConfig, clientPodConfig, denyServerPodIP, port) }, 1*time.Minute, 6*time.Second).ShouldNot(gomega.Succeed()) + // Create client pod in red namespace and check network policy is working. + ginkgo.By("creating client pod in red namespace and check if it is in pending state until NAD is created") + clientPodConfig.namespace = namespaceRed + podSpec := generatePodSpec(clientPodConfig) + _, err = cs.CoreV1().Pods(clientPodConfig.namespace).Create( + context.Background(), + podSpec, + metav1.CreateOptions{}, + ) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + gomega.Consistently(func() v1.PodPhase { + updatedPod, err := cs.CoreV1().Pods(clientPodConfig.namespace).Get(context.Background(), + clientPodConfig.name, metav1.GetOptions{}) + if err != nil { + return v1.PodFailed + } + return updatedPod.Status.Phase + }, 1*time.Minute, 6*time.Second).Should(gomega.Equal(v1.PodPending)) + + // The pod won't run and the namespace address set won't be created until the NAD for the network is added + // to the namespace and we test here that once that happens the policy is reconciled to account for it. + ginkgo.By("creating NAD for red and orange namespaces and check pod moves into running state") + for _, namespace := range []string{namespaceRed, namespaceOrange} { + ginkgo.By("creating the attachment configuration for " + netConfName + " in namespace " + namespace) + netConfig := newNetworkAttachmentConfig(nad) + netConfig.namespace = namespace + netConfig.name = netConfName + + _, err := nadClient.NetworkAttachmentDefinitions(namespace).Create( + context.Background(), + generateNAD(netConfig), + metav1.CreateOptions{}, + ) + gomega.Expect(err).NotTo(gomega.HaveOccurred()) + } + gomega.Eventually(func() v1.PodPhase { + updatedPod, err := cs.CoreV1().Pods(clientPodConfig.namespace).Get(context.Background(), + clientPodConfig.name, metav1.GetOptions{}) + if err != nil { + return v1.PodFailed + } + return updatedPod.Status.Phase + }, 1*time.Minute, 6*time.Second).Should(gomega.Equal(v1.PodRunning)) + + ginkgo.By("asserting the *red client* pod can contact the allow server pod exposed endpoint") + gomega.Eventually(func() error { + return reachServerPodFromClient(cs, allowServerPodConfig, clientPodConfig, allowServerPodIP, port) + }, 1*time.Minute, 6*time.Second).Should(gomega.Succeed()) + + ginkgo.By("asserting the *red client* pod can not contact deny server pod exposed endpoint") + gomega.Eventually(func() error { + return reachServerPodFromClient(cs, denyServerPodConfig, clientPodConfig, denyServerPodIP, port) + }, 1*time.Minute, 6*time.Second).ShouldNot(gomega.Succeed()) + + // Create client pod in orange namespace now and check network policy is working. + ginkgo.By("creating client pod in orange namespace") + clientPodConfig.namespace = namespaceOrange + runUDNPod(cs, namespaceOrange, clientPodConfig, nil) + + ginkgo.By("asserting the *orange client* pod can not contact the allow server pod exposed endpoint") + gomega.Eventually(func() error { + return reachServerPodFromClient(cs, allowServerPodConfig, clientPodConfig, allowServerPodIP, port) + }, 1*time.Minute, 6*time.Second).ShouldNot(gomega.Succeed()) + + ginkgo.By("asserting the *orange client* pod can not contact deny server pod exposed endpoint") + gomega.Eventually(func() error { + return reachServerPodFromClient(cs, denyServerPodConfig, clientPodConfig, denyServerPodIP, port) + }, 1*time.Minute, 6*time.Second).ShouldNot(gomega.Succeed()) }, ginkgo.Entry( "in L2 primary UDN", @@ -328,7 +403,7 @@ func getNamespaceName(f *framework.Framework, nsSuffix string) string { return fmt.Sprintf("%s-%s", f.Namespace.Name, nsSuffix) } -func allowTrafficToPodFromNamespacePolicy(f *framework.Framework, namespace, fromNamespace, policyName string, podLabel map[string]string) (*knet.NetworkPolicy, error) { +func allowTrafficToPodFromNamespacePolicy(f *framework.Framework, namespace, fromNamespace1, fromNamespace2, policyName string, podLabel map[string]string) (*knet.NetworkPolicy, error) { policy := &knet.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: policyName, @@ -337,7 +412,8 @@ func allowTrafficToPodFromNamespacePolicy(f *framework.Framework, namespace, fro PodSelector: metav1.LabelSelector{MatchLabels: podLabel}, PolicyTypes: []knet.PolicyType{knet.PolicyTypeIngress}, Ingress: []knet.NetworkPolicyIngressRule{{From: []knet.NetworkPolicyPeer{ - {NamespaceSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"kubernetes.io/metadata.name": fromNamespace}}}}}}, + {NamespaceSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"kubernetes.io/metadata.name": fromNamespace1}}}, + {NamespaceSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"kubernetes.io/metadata.name": fromNamespace2}}}}}}, }, } return f.ClientSet.NetworkingV1().NetworkPolicies(namespace).Create(context.TODO(), policy, metav1.CreateOptions{})