Skip to content

Commit ad9a20a

Browse files
committed
add retries
1 parent dba2b0d commit ad9a20a

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pkg/cache/cache.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ import (
2828
"github.com/aws/amazon-eks-pod-identity-webhook/pkg"
2929
"github.com/prometheus/client_golang/prometheus"
3030
v1 "k8s.io/api/core/v1"
31+
"k8s.io/apimachinery/pkg/api/errors"
3132
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3233
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3334
coreinformers "k8s.io/client-go/informers/core/v1"
3435
"k8s.io/client-go/kubernetes"
3536
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
3637
"k8s.io/client-go/tools/cache"
38+
"k8s.io/client-go/util/retry"
3739
"k8s.io/klog/v2"
3840
)
3941

@@ -370,7 +372,19 @@ func fetchFromAPI(getter corev1.ServiceAccountsGetter, req *Request) (*v1.Servic
370372

371373
klog.V(5).Infof("fetching SA: %s", req.CacheKey())
372374

373-
return getter.ServiceAccounts(req.Namespace).Get(ctx, req.Name, metav1.GetOptions{})
375+
var sa *v1.ServiceAccount
376+
err := retry.OnError(retry.DefaultBackoff, func(err error) bool {
377+
return errors.IsServerTimeout(err)
378+
}, func() error {
379+
res, err := getter.ServiceAccounts(req.Namespace).Get(ctx, req.Name, metav1.GetOptions{})
380+
if err != nil {
381+
return err
382+
}
383+
sa = res
384+
return nil
385+
})
386+
387+
return sa, err
374388
}
375389

376390
func (c *serviceAccountCache) populateCacheFromCM(oldCM, newCM *v1.ConfigMap) error {

vendor/modules.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,7 @@ k8s.io/client-go/util/consistencydetector
678678
k8s.io/client-go/util/flowcontrol
679679
k8s.io/client-go/util/homedir
680680
k8s.io/client-go/util/keyutil
681+
k8s.io/client-go/util/retry
681682
k8s.io/client-go/util/watchlist
682683
k8s.io/client-go/util/workqueue
683684
# k8s.io/klog/v2 v2.130.1

0 commit comments

Comments
 (0)