diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 050a813bf4f..4b1a7f224ce 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -5074,7 +5074,7 @@ func DumpDebugInfo(c clientset.Interface, ns string) { } func IsRetryableAPIError(err error) bool { - return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) || apierrs.IsInternalError(err) + return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) } // DsFromManifest reads a .json/yaml file and returns the daemonset in it. diff --git a/test/integration/framework/perf_utils.go b/test/integration/framework/perf_utils.go index e6d91e71498..2336b2a5a8a 100644 --- a/test/integration/framework/perf_utils.go +++ b/test/integration/framework/perf_utils.go @@ -73,7 +73,14 @@ func (p *IntegrationTestNodePreparer) PrepareNodes() error { }, } for i := 0; i < numNodes; i++ { - if _, err := p.client.CoreV1().Nodes().Create(baseNode); err != nil { + var err error + for retry := 0; retry < retries; retry++ { + _, err = p.client.CoreV1().Nodes().Create(baseNode) + if err == nil || !e2eframework.IsRetryableAPIError(err) { + break + } + } + if err != nil { glog.Fatalf("Error creating node: %v", err) } }