mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-11 14:11:14 +00:00
e2e tests need a ping6 test for IPv6-only clusters
e2e tests provide only an (IPv4) ping test for external connectivity. We need a way to conditionally run a ping6 external connectivity check, and disable the (IPv4) ping-based external connectivity check, for end-to-end testing on IPv6-only clusters. This feature will be needed for creating gating IPv6 CI tests. fixes #53383
This commit is contained in:
@@ -4503,15 +4503,22 @@ func LaunchWebserverPod(f *Framework, podName, nodeName string) (ip string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type PingCommand string
|
||||||
|
|
||||||
|
const (
|
||||||
|
IPv4PingCommand PingCommand = "ping"
|
||||||
|
IPv6PingCommand PingCommand = "ping6"
|
||||||
|
)
|
||||||
|
|
||||||
// CheckConnectivityToHost launches a pod to test connectivity to the specified
|
// 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.
|
// 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.
|
// 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 {
|
func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, pingCmd PingCommand, timeout int) error {
|
||||||
contName := fmt.Sprintf("%s-container", podName)
|
contName := fmt.Sprintf("%s-container", podName)
|
||||||
|
|
||||||
command := []string{
|
command := []string{
|
||||||
"ping",
|
string(pingCmd),
|
||||||
"-c", "3", // send 3 pings
|
"-c", "3", // send 3 pings
|
||||||
"-W", "2", // wait at most 2 seconds for a reply
|
"-W", "2", // wait at most 2 seconds for a reply
|
||||||
"-w", strconv.Itoa(timeout),
|
"-w", strconv.Itoa(timeout),
|
||||||
|
@@ -45,10 +45,16 @@ var _ = SIGDescribe("Networking", func() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should provide Internet connection for containers", func() {
|
It("should provide Internet connection for containers [Feature:Networking-IPv4]", func() {
|
||||||
By("Running container which tries to ping 8.8.8.8")
|
By("Running container which tries to ping 8.8.8.8")
|
||||||
framework.ExpectNoError(
|
framework.ExpectNoError(
|
||||||
framework.CheckConnectivityToHost(f, "", "ping-test", "8.8.8.8", 30))
|
framework.CheckConnectivityToHost(f, "", "ping-test", "8.8.8.8", framework.IPv4PingCommand, 30))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("should provide Internet connection for containers [Feature:Networking-IPv6][Experimental]", func() {
|
||||||
|
By("Running container which tries to ping google.com")
|
||||||
|
framework.ExpectNoError(
|
||||||
|
framework.CheckConnectivityToHost(f, "", "ping-test", "google.com", framework.IPv6PingCommand, 30))
|
||||||
})
|
})
|
||||||
|
|
||||||
// First test because it has no dependencies on variables created later on.
|
// First test because it has no dependencies on variables created later on.
|
||||||
|
Reference in New Issue
Block a user