feat: use different env variable to control server side K8s API call timeout (#25271)

Signed-off-by: Patroklos Papapetrou <ppapapetrou76@gmail.com>
Signed-off-by: Papapetrou Patroklos <1743100+ppapapetrou76@users.noreply.github.com>
Co-authored-by: Nitish Kumar <justnitish06@gmail.com>
Co-authored-by: Dan Garfield <dan.garfield@octopus.com>
This commit is contained in:
Papapetrou Patroklos
2025-12-02 11:34:50 +02:00
committed by GitHub
parent 706e469809
commit 1301eaa9e7
2 changed files with 12 additions and 2 deletions

View File

@@ -18,3 +18,10 @@ If any existing manifests become corrupted, please follow the[release notes](htt
The Settings API now returns less information when accessed anonymously.
It no longer returns the `resourceOverrides` field which is considered sensitive information.
### New ENV Variable to control K8s Server Side Timeout of API Requests
The new environment variable `ARGOCD_K8S_SERVER_SIDE_TIMEOUT` can be used to control the K8s server side timeout of API requests.
In 3.2 and before this change, the K8s server side timeout was controlled by `ARGOCD_K8S_TCP_TIMEOUT`
which is also used to control the TCP timeout when communicating with the K8s API server.
From now onwards, the Kubernetes server-side timeout is controlled by a separate environment variable.

View File

@@ -25,7 +25,7 @@ const (
// EnvK8sTCPTimeout is the duration for TCP timeouts when communicating with K8s API servers
EnvK8sTCPTimeout = "ARGOCD_K8S_TCP_TIMEOUT"
// EnvK8sTCPKeepalive is the interval for TCP keep alive probes to be sent when communicating with K8s API servers
// EnvK8sTCPKeepAlive is the interval for TCP keep alive probes to be sent when communicating with K8s API servers
EnvK8sTCPKeepAlive = "ARGOCD_K8S_TCP_KEEPALIVE"
// EnvK8sTLSHandshakeTimeout is the duration for TLS handshake timeouts when establishing connections to K8s API servers
@@ -33,6 +33,9 @@ const (
// EnvK8sTCPIdleConnTimeout is the duration when idle TCP connection to the K8s API servers should timeout
EnvK8sTCPIdleConnTimeout = "ARGOCD_K8S_TCP_IDLE_TIMEOUT"
// EnvK8sServerSideTimeout is the duration for the server side timeout for each API request
EnvK8sServerSideTimeout = "ARGOCD_K8S_SERVER_SIDE_TIMEOUT"
)
// Configuration variables associated with the Cluster API
@@ -60,5 +63,5 @@ var (
K8sTCPIdleConnTimeout = env.ParseDurationFromEnv(EnvK8sTCPIdleConnTimeout, 5*time.Minute, 0, math.MaxInt32*time.Second)
// K8sServerSideTimeout defines which server side timeout to send with each API request
K8sServerSideTimeout = env.ParseDurationFromEnv(EnvK8sTCPTimeout, 0, 0, math.MaxInt32*time.Second)
K8sServerSideTimeout = env.ParseDurationFromEnv(EnvK8sServerSideTimeout, 0, 0, math.MaxInt32*time.Second)
)