diff --git a/pkg/ovs/ovn-nb-suite_test.go b/pkg/ovs/ovn-nb-suite_test.go index e8f1442e2b3..b44322ef9f3 100644 --- a/pkg/ovs/ovn-nb-suite_test.go +++ b/pkg/ovs/ovn-nb-suite_test.go @@ -780,8 +780,13 @@ func newNbClient(addr string, timeout int) (client.Client, error) { WithValues("database", dbModel.Name()) stdr.SetVerbosity(1) + bo := &backoff.ExponentialBackOff{ + InitialInterval: time.Second, + Multiplier: 2, + MaxInterval: time.Minute, + } options := []client.Option{ - client.WithReconnect(time.Duration(timeout)*time.Second, &backoff.ZeroBackOff{}), + client.WithReconnect(time.Duration(timeout)*time.Second, bo), client.WithLeaderOnly(false), client.WithLogger(&logger), } diff --git a/pkg/ovsdb/client/client.go b/pkg/ovsdb/client/client.go index bd493ab1e94..b01a47074d5 100644 --- a/pkg/ovsdb/client/client.go +++ b/pkg/ovsdb/client/client.go @@ -52,12 +52,17 @@ func NewOvsDbClient( logger := klog.NewKlogr().WithName("libovsdb").WithValues("db", db) connectTimeout := time.Duration(ovsDbConTimeout) * time.Second inactivityTimeout := time.Duration(ovsDbInactivityTimeout) * time.Second + bo := &backoff.ExponentialBackOff{ + InitialInterval: time.Second, + Multiplier: 2, + MaxInterval: time.Minute, + } options := []client.Option{ // Reading and parsing the DB after reconnect at scale can (unsurprisingly) // take longer than a normal ovsdb operation. Give it a bit more time so // we don't time out and enter a reconnect loop. In addition it also enables // inactivity check on the ovsdb connection. - client.WithInactivityCheck(inactivityTimeout, connectTimeout, &backoff.ZeroBackOff{}), + client.WithInactivityCheck(inactivityTimeout, connectTimeout, bo), client.WithLeaderOnly(true), client.WithLogger(&logger),