mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 22:17:14 +00:00
allow configuring ReadIdelTimeout and PingTimeout via env var
This commit is contained in:
parent
ba7b1f7a89
commit
15648f1a7b
@ -140,6 +140,36 @@ func SetTransportDefaults(t *http.Transport) *http.Transport {
|
|||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func readIdleTimeoutSeconds() int {
|
||||||
|
ret := 30
|
||||||
|
// User can set the readIdleTimeout to 0 to disable the HTTP/2
|
||||||
|
// connection health check.
|
||||||
|
if s := os.Getenv("HTTP2_READ_IDLE_TIMEOUT_SECONDS"); len(s) > 0 {
|
||||||
|
i, err := strconv.Atoi(s)
|
||||||
|
if err != nil {
|
||||||
|
klog.Warningf("Illegal HTTP2_READ_IDLE_TIMEOUT_SECONDS(%q): %v."+
|
||||||
|
" Default value %d is used", s, err, ret)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
ret = i
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func pingTimeoutSeconds() int {
|
||||||
|
ret := 15
|
||||||
|
if s := os.Getenv("HTTP2_PING_TIMEOUT_SECONDS"); len(s) > 0 {
|
||||||
|
i, err := strconv.Atoi(s)
|
||||||
|
if err != nil {
|
||||||
|
klog.Warningf("Illegal HTTP2_PING_TIMEOUT_SECONDS(%q): %v."+
|
||||||
|
" Default value %d is used", s, err, ret)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
ret = i
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
func configureHTTP2Transport(t *http.Transport) error {
|
func configureHTTP2Transport(t *http.Transport) error {
|
||||||
t2, err := http2.ConfigureTransports(t)
|
t2, err := http2.ConfigureTransports(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -153,8 +183,8 @@ func configureHTTP2Transport(t *http.Transport) error {
|
|||||||
// by default, which caused
|
// by default, which caused
|
||||||
// https://github.com/kubernetes/client-go/issues/374 and
|
// https://github.com/kubernetes/client-go/issues/374 and
|
||||||
// https://github.com/kubernetes/kubernetes/issues/87615.
|
// https://github.com/kubernetes/kubernetes/issues/87615.
|
||||||
t2.ReadIdleTimeout = 30 * time.Second
|
t2.ReadIdleTimeout = time.Duration(readIdleTimeoutSeconds()) * time.Second
|
||||||
t2.PingTimeout = 15 * time.Second
|
t2.PingTimeout = time.Duration(pingTimeoutSeconds()) * time.Second
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,3 +1071,39 @@ func TestIsProbableEOF(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setEnv(key, value string) func() {
|
||||||
|
originalValue := os.Getenv(key)
|
||||||
|
os.Setenv(key, value)
|
||||||
|
return func() {
|
||||||
|
os.Setenv(key, originalValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestReadIdleTimeoutSeconds(t *testing.T) {
|
||||||
|
reset := setEnv("HTTP2_READ_IDLE_TIMEOUT_SECONDS", "60")
|
||||||
|
if e, a := 60, readIdleTimeoutSeconds(); e != a {
|
||||||
|
t.Errorf("expected %d, got %d", e, a)
|
||||||
|
}
|
||||||
|
reset()
|
||||||
|
|
||||||
|
reset = setEnv("HTTP2_READ_IDLE_TIMEOUT_SECONDS", "illegal value")
|
||||||
|
if e, a := 30, readIdleTimeoutSeconds(); e != a {
|
||||||
|
t.Errorf("expected %d, got %d", e, a)
|
||||||
|
}
|
||||||
|
reset()
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPingTimeoutSeconds(t *testing.T) {
|
||||||
|
reset := setEnv("HTTP2_PING_TIMEOUT_SECONDS", "60")
|
||||||
|
if e, a := 60, pingTimeoutSeconds(); e != a {
|
||||||
|
t.Errorf("expected %d, got %d", e, a)
|
||||||
|
}
|
||||||
|
reset()
|
||||||
|
|
||||||
|
reset = setEnv("HTTP2_PING_TIMEOUT_SECONDS", "illegal value")
|
||||||
|
if e, a := 15, pingTimeoutSeconds(); e != a {
|
||||||
|
t.Errorf("expected %d, got %d", e, a)
|
||||||
|
}
|
||||||
|
reset()
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user