Skip to content

Commit 62815d7

Browse files
authored
add context timeout to prevent node_controller for hanging if apiserver doesn't respond (#361)
1 parent 6d72edb commit 62815d7

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

cloud/linode/node_controller.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const (
2727
informerResyncPeriod = 1 * time.Minute
2828
defaultMetadataTTL = 300 * time.Second
2929
defaultK8sNodeCacheTTL = 300 * time.Second
30+
listNodeContextTimeout = 30 * time.Second
3031
)
3132

3233
var registeredK8sNodeCache *k8sNodeCache = newK8sNodeCache()
@@ -68,7 +69,10 @@ func (c *k8sNodeCache) updateCache(kubeclient kubernetes.Interface) {
6869
return
6970
}
7071

71-
nodeList, err := kubeclient.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
72+
ctx, cancel := context.WithTimeout(context.Background(), listNodeContextTimeout)
73+
defer cancel()
74+
75+
nodeList, err := kubeclient.CoreV1().Nodes().List(ctx, metav1.ListOptions{})
7276
if err != nil {
7377
klog.Errorf("failed to list nodes, cannot create/update k8s node cache: %s", err)
7478
return

0 commit comments

Comments
 (0)