Merge pull request #43727 from bowei/ping-instead-of-wget

Automatic merge from submit-queue

Use ping to ip instead of wget google.com in net connectivity check

This is a flakey test and this commit reduces the number of dependent
systems involved with the flake.
This commit is contained in:
Kubernetes Submit Queue 2017-03-27 19:05:39 -07:00 committed by GitHub
commit d1bff958c2
2 changed files with 18 additions and 7 deletions

View File

@ -4982,11 +4982,21 @@ func LaunchWebserverPod(f *Framework, podName, nodeName string) (ip string) {
return
}
// CheckConnectivityToHost launches a pod running wget on the
// specified node to test connectivity to the specified host. An
// error will be returned if the host is not reachable from the pod.
// CheckConnectivityToHost launches a pod to test connectivity to the specified
// host. An error will be returned if the host is not reachable from the pod.
//
// An empty nodeName will use the schedule to choose where the pod is executed.
func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, timeout int) error {
contName := fmt.Sprintf("%s-container", podName)
command := []string{
"ping",
"-c", "3", // send 3 pings
"-W", "2", // wait at most 2 seconds for a reply
"-w", strconv.Itoa(timeout),
host,
}
pod := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: podName,
@ -4996,7 +5006,7 @@ func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, timeo
{
Name: contName,
Image: "gcr.io/google_containers/busybox:1.24",
Command: []string{"wget", fmt.Sprintf("--timeout=%d", timeout), "-s", host},
Command: command,
},
},
NodeName: nodeName,
@ -5015,7 +5025,7 @@ func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, timeo
if logErr != nil {
Logf("Warning: Failed to get logs from pod %q: %v", pod.Name, logErr)
} else {
Logf("pod %s/%s \"wget\" logs:\n%s", f.Namespace.Name, pod.Name, logs)
Logf("pod %s/%s logs:\n%s", f.Namespace.Name, pod.Name, logs)
}
}

View File

@ -44,8 +44,9 @@ var _ = framework.KubeDescribe("Networking", func() {
})
It("should provide Internet connection for containers [Conformance]", func() {
By("Running container which tries to wget google.com")
framework.ExpectNoError(framework.CheckConnectivityToHost(f, "", "wget-test", "google.com", 30))
By("Running container which tries to ping 8.8.8.8")
framework.ExpectNoError(
framework.CheckConnectivityToHost(f, "", "ping-test", "8.8.8.8", 30))
})
// First test because it has no dependencies on variables created later on.