From b9fe1539f076198588e13efbccc71192b998d072 Mon Sep 17 00:00:00 2001 From: danfengl Date: Tue, 21 Jun 2022 07:02:08 +0000 Subject: [PATCH] Wait for pod running status before timeout despite errors of accessing API server Signed-off-by: danfengl --- Dockerfile | 4 ++-- hack/build-image/Dockerfile | 2 +- test/e2e/util/k8s/common.go | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8e3b99fd8..8ffe8abff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -FROM --platform=$BUILDPLATFORM golang:1.17.11 as builder-env +FROM --platform=$BUILDPLATFORM golang:1.17 as builder-env ARG GOPROXY ARG PKG @@ -50,7 +50,7 @@ RUN mkdir -p /output/usr/bin && \ go build -o /output/${BIN} \ -ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN} -FROM gcr.io/distroless/base-debian11@sha256:e672eb713e56feb13e349773973b81b1b9284f70b15cf18d1a09ad31a03abe59 +FROM gcr.io/distroless/base-debian11:nonroot LABEL maintainer="Nolan Brubaker " diff --git a/hack/build-image/Dockerfile b/hack/build-image/Dockerfile index 8948080d0..5f3564631 100644 --- a/hack/build-image/Dockerfile +++ b/hack/build-image/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.17.11 +FROM golang:1.17 ARG GOPROXY diff --git a/test/e2e/util/k8s/common.go b/test/e2e/util/k8s/common.go index 43812a74a..d562c75b3 100644 --- a/test/e2e/util/k8s/common.go +++ b/test/e2e/util/k8s/common.go @@ -62,7 +62,9 @@ func WaitForPods(ctx context.Context, client TestClient, namespace string, pods for _, podName := range pods { checkPod, err := client.ClientGo.CoreV1().Pods(namespace).Get(ctx, podName, metav1.GetOptions{}) if err != nil { - return false, errors.WithMessage(err, fmt.Sprintf("Failed to verify pod %s/%s is %s", namespace, podName, corev1api.PodRunning)) + //Should ignore "etcdserver: request timed out" kind of errors, try to get pod status again before timeout. + fmt.Println(errors.Wrap(err, fmt.Sprintf("Failed to verify pod %s/%s is %s, try again...", namespace, podName, corev1api.PodRunning))) + return false, nil } // If any pod is still waiting we don't need to check any more so return and wait for next poll interval if checkPod.Status.Phase != corev1api.PodRunning {