Merge pull request #76826 from bclau/tests/nettest-recheck
tests: Adds retry to netexec connectivity check
This commit is contained in:
		@@ -13,6 +13,7 @@ go_library(
 | 
				
			|||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/version:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/rest:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/rest:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,6 +46,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/version"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	restclient "k8s.io/client-go/rest"
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -217,6 +218,10 @@ func main() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Find all sibling pods in the service and post to their /write handler.
 | 
					// Find all sibling pods in the service and post to their /write handler.
 | 
				
			||||||
func contactOthers(state *State) {
 | 
					func contactOthers(state *State) {
 | 
				
			||||||
 | 
						var (
 | 
				
			||||||
 | 
							versionInfo *version.Info
 | 
				
			||||||
 | 
							err         error
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	sleepTime := 5 * time.Second
 | 
						sleepTime := 5 * time.Second
 | 
				
			||||||
	// In large cluster getting all endpoints is pretty expensive.
 | 
						// In large cluster getting all endpoints is pretty expensive.
 | 
				
			||||||
	// Thus, we will limit ourselves to send on average at most 10 such
 | 
						// Thus, we will limit ourselves to send on average at most 10 such
 | 
				
			||||||
@@ -241,11 +246,22 @@ func contactOthers(state *State) {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatalf("Unable to create client; error: %v\n", err)
 | 
							log.Fatalf("Unable to create client; error: %v\n", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// Double check that worked by getting the server version.
 | 
					
 | 
				
			||||||
	if v, err := client.Discovery().ServerVersion(); err != nil {
 | 
						// Try to get the server version until <timeout>; we use a timeout because
 | 
				
			||||||
		log.Fatalf("Unable to get server version: %v\n", err)
 | 
						// the pod might not have immediate network connectivity.
 | 
				
			||||||
	} else {
 | 
						for start := time.Now(); time.Since(start) < timeout; time.Sleep(sleepTime) {
 | 
				
			||||||
		log.Printf("Server version: %#v\n", v)
 | 
							// Double check that worked by getting the server version.
 | 
				
			||||||
 | 
							if versionInfo, err = client.Discovery().ServerVersion(); err != nil {
 | 
				
			||||||
 | 
								log.Printf("Unable to get server version: %v; retrying.\n", err)
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								log.Printf("Server version: %#v\n", versionInfo)
 | 
				
			||||||
 | 
								break
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							time.Sleep(1 * time.Second)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatalf("Unable to contact Kubernetes: %v\n", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for start := time.Now(); time.Since(start) < timeout; time.Sleep(sleepTime) {
 | 
						for start := time.Now(); time.Since(start) < timeout; time.Sleep(sleepTime) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user