mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #76826 from bclau/tests/nettest-recheck
tests: Adds retry to netexec connectivity check
This commit is contained in:
commit
cc11d977b4
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Try to get the server version until <timeout>; we use a timeout because
|
||||||
|
// the pod might not have immediate network connectivity.
|
||||||
|
for start := time.Now(); time.Since(start) < timeout; time.Sleep(sleepTime) {
|
||||||
// Double check that worked by getting the server version.
|
// Double check that worked by getting the server version.
|
||||||
if v, err := client.Discovery().ServerVersion(); err != nil {
|
if versionInfo, err = client.Discovery().ServerVersion(); err != nil {
|
||||||
log.Fatalf("Unable to get server version: %v\n", err)
|
log.Printf("Unable to get server version: %v; retrying.\n", err)
|
||||||
} else {
|
} else {
|
||||||
log.Printf("Server version: %#v\n", v)
|
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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user