KCM: specifies the upper-bound timeout limit for outgoing requests

Previously no timeout was set.
Requests without explicit timeout might potentially hang forever and lead to starvation of the application.
This commit is contained in:
Lukasz Szaszkiewicz 2021-02-23 13:08:19 +01:00
parent 54691ed806
commit 662cc70c70

View File

@ -21,6 +21,7 @@ package options
import (
"fmt"
"net"
"time"
v1 "k8s.io/api/core/v1"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
@ -434,6 +435,7 @@ func (s KubeControllerManagerOptions) Config(allControllers []string, disabledBy
kubeconfig.ContentConfig.ContentType = s.Generic.ClientConnection.ContentType
kubeconfig.QPS = s.Generic.ClientConnection.QPS
kubeconfig.Burst = int(s.Generic.ClientConnection.Burst)
kubeconfig.Timeout = 70 * time.Second // slightly bigger than the default server timeout which is 60 seconds
client, err := clientset.NewForConfig(restclient.AddUserAgent(kubeconfig, KubeControllerManagerUserAgent))
if err != nil {