From 662cc70c70a0f2b269188b9b2192eeee0e1a2ab4 Mon Sep 17 00:00:00 2001 From: Lukasz Szaszkiewicz Date: Tue, 23 Feb 2021 13:08:19 +0100 Subject: [PATCH] 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. --- cmd/kube-controller-manager/app/options/options.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index a4a559715f0..01775d454cf 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -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 {