Skip to content

Commit 5f3ddf6

Browse files
committed
add retry for patch node requests and replace deprecated poll function
1 parent 95829b8 commit 5f3ddf6

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

pkg/exporters/k8sexporter/k8s_exporter.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,13 @@ func (ke *k8sExporter) startHTTPReporting(npdo *options.NodeProblemDetectorOptio
105105
}
106106

107107
func waitForAPIServerReadyWithTimeout(ctx context.Context, c problemclient.Client, npdo *options.NodeProblemDetectorOptions) error {
108-
return wait.PollImmediate(npdo.APIServerWaitInterval, npdo.APIServerWaitTimeout, func() (done bool, err error) {
108+
return wait.PollUntilContextTimeout(ctx, npdo.APIServerWaitInterval, npdo.APIServerWaitTimeout,true, func(ctx context.Context) (done bool,err error) {
109109
// If NPD can get the node object from kube-apiserver, the server is
110110
// ready and the RBAC permission is set correctly.
111111
if _, err := c.GetNode(ctx); err != nil {
112112
klog.Errorf("Can't get node object: %v", err)
113-
return false, nil
113+
return false,err
114114
}
115-
return true, nil
115+
return true,nil
116116
})
117117
}

pkg/exporters/k8sexporter/problemclient/problem_client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
clientset "k8s.io/client-go/kubernetes"
3232
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
3333
"k8s.io/client-go/tools/record"
34+
"k8s.io/client-go/util/retry"
3435
"k8s.io/klog/v2"
3536
"k8s.io/utils/clock"
3637

@@ -107,7 +108,10 @@ func (c *nodeProblemClient) SetConditions(ctx context.Context, newConditions []v
107108
if err != nil {
108109
return err
109110
}
110-
return c.client.RESTClient().Patch(types.StrategicMergePatchType).Resource("nodes").Name(c.nodeName).SubResource("status").Body(patch).Do(ctx).Error()
111+
return retry.OnError(retry.DefaultBackoff, retry.DefaultRetry, func() error {
112+
_, err := c.client.Nodes().PatchStatus(ctx, c.nodeName, patch)
113+
return err
114+
})
111115
}
112116

113117
func (c *nodeProblemClient) Eventf(eventType, source, reason, messageFmt string, args ...interface{}) {

0 commit comments

Comments
 (0)