From c2cf99c165a03314ca69c2aaf0fc398005749923 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 24 Aug 2016 10:38:23 -0700 Subject: [PATCH] test/e2e: fix flake in kubelet expose should create services for rc Add a loop to retry the request to account for the TLS Timeout and API credential error responses outlined by the flakes in #29227. Fixes #29227 Signed-off-by: Jess Frazelle --- test/e2e/kubectl.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/e2e/kubectl.go b/test/e2e/kubectl.go index 0f8488e275..2964b46898 100644 --- a/test/e2e/kubectl.go +++ b/test/e2e/kubectl.go @@ -652,10 +652,15 @@ var _ = framework.KubeDescribe("Kubectl client", func() { err := wait.Poll(framework.Poll, timeout, func() (bool, error) { endpoints, err := c.Endpoints(ns).Get(name) if err != nil { - if apierrs.IsNotFound(err) { + // log the real error + framework.Logf("Get endpoints failed (interval %v): %v", framework.Poll, err) + + // if the error is API not found or could not find default credentials or TLS handshake timeout, try again + if apierrs.IsNotFound(err) || + apierrs.IsUnauthorized(err) || + apierrs.IsServerTimeout(err) { err = nil } - framework.Logf("Get endpoints failed (interval %v): %v", framework.Poll, err) return false, err }