From d61e36dfabc1d61a30099f8dd9b8f926db41cf87 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:11:37 +0200 Subject: [PATCH] kubernetes: jitter transient dial retries Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- driver/kubernetes/driver.go | 13 ++++++++-- driver/kubernetes/driver_test.go | 41 ++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 driver/kubernetes/driver_test.go diff --git a/driver/kubernetes/driver.go b/driver/kubernetes/driver.go index 2f76e0d0365b..4a59a5d372a0 100644 --- a/driver/kubernetes/driver.go +++ b/driver/kubernetes/driver.go @@ -4,6 +4,7 @@ import ( "context" stderrors "errors" "fmt" + "math/rand/v2" "net" "strings" "syscall" @@ -389,9 +390,17 @@ func isTransientConnectionError(err error) bool { return false } -// calculateBackoff calculates the delay for the given attempt with exponential backoff. +// calculateBackoff returns a randomized exponential backoff delay for attempt, +// never exceeding maxDelay. func calculateBackoff(attempt int, baseDelay, maxDelay time.Duration) time.Duration { - return min(time.Duration(1<