Add retries for dns in tcp e2e test (#5283)

This commit is contained in:
Manuel Alejandro de Brito Fontes 2020-03-23 17:05:15 -03:00 committed by GitHub
parent 5cf7018b6d
commit 760f40e45c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -22,12 +22,14 @@ import (
"net"
"net/http"
"strings"
"time"
"github.com/onsi/ginkgo"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/ingress-nginx/test/e2e/framework"
)
@ -170,7 +172,30 @@ var _ = framework.IngressNginxDescribe("[TCP] tcp-services", func() {
return d.DialContext(ctx, "tcp", fmt.Sprintf("%v:5353", ip))
},
}
ips, err := resolver.LookupHost(context.Background(), "google-public-dns-b.google.com")
// add retries to LookupHost to avoid random e2e errors
retry := wait.Backoff{
Steps: 10,
Duration: 2 * time.Second,
Factor: 0.8,
Jitter: 0.2,
}
var ips []string
var retryErr error
err = wait.ExponentialBackoff(retry, func() (bool, error) {
ips, retryErr = resolver.LookupHost(context.Background(), "google-public-dns-b.google.com")
if retryErr == nil {
return true, nil
}
return false, nil
})
if err == wait.ErrWaitTimeout {
err = retryErr
}
assert.Nil(ginkgo.GinkgoT(), err, "unexpected error from DNS resolver")
assert.Contains(ginkgo.GinkgoT(), ips, "8.8.4.4")
})