From 7621b69698246227926dcb414207832857fded8b Mon Sep 17 00:00:00 2001 From: HsiuChuanHsu Date: Sat, 25 Apr 2026 11:37:40 +0800 Subject: [PATCH] fix(errors): treat kube-apiserver HTTP 500 as transient error Signed-off-by: HsiuChuanHsu --- util/errors/errors.go | 1 + util/errors/errors_test.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/util/errors/errors.go b/util/errors/errors.go index 72ba55aac774..b2dd3c0ebbf4 100644 --- a/util/errors/errors.go +++ b/util/errors/errors.go @@ -47,6 +47,7 @@ func isTransientErr(err error) bool { isResourceQuotaTimeoutErr(err) || isTransientNetworkErr(err) || apierr.IsServerTimeout(err) || + apierr.IsInternalError(err) || apierr.IsTimeout(err) || apierr.IsServiceUnavailable(err) || isTransientEtcdErr(err) || diff --git a/util/errors/errors_test.go b/util/errors/errors_test.go index 5654ff668ab2..b2844137cbb2 100644 --- a/util/errors/errors_test.go +++ b/util/errors/errors_test.go @@ -69,8 +69,9 @@ func TestIsTransientErr(t *testing.T) { assert.Contains(t, hook.LastEntry().Msg, "Transient error") }) t.Run("ResourceQuotaTimeoutErr", func(t *testing.T) { - assert.False(t, IsTransientErr(ctx, apierr.NewInternalError(errors.New("")))) + assert.True(t, IsTransientErr(ctx, apierr.NewInternalError(errors.New("")))) assert.True(t, IsTransientErr(ctx, apierr.NewInternalError(errors.New("resource quota evaluation timed out")))) + assert.True(t, IsTransientErr(ctx, apierr.NewInternalError(errors.New("some other transient 500")))) }) t.Run("ExceededQuotaErr", func(t *testing.T) { assert.False(t, IsTransientErr(ctx, apierr.NewForbidden(schema.GroupResource{}, "", nil)))