mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #98884 from fedepaol/hostnetworkudp
Network Tests: bind host network udp listeners to hostIPs
This commit is contained in:
commit
91a7be0c2f
@ -27,7 +27,7 @@ dependencies:
|
||||
|
||||
# then after merge and successful postsubmit image push / promotion, bump this
|
||||
- name: "agnhost: dependents"
|
||||
version: "2.28"
|
||||
version: "2.29"
|
||||
refPaths:
|
||||
- path: test/utils/image/manifest.go
|
||||
match: configs\[Agnhost\] = Config{promoterE2eRegistry, "agnhost", "\d+\.\d+"}
|
||||
|
@ -540,6 +540,18 @@ func (config *NetworkingTestConfig) executeCurlCmd(cmd string, expected string)
|
||||
}
|
||||
|
||||
func (config *NetworkingTestConfig) createNetShellPodSpec(podName, hostname string) *v1.Pod {
|
||||
netexecArgs := []string{
|
||||
"netexec",
|
||||
fmt.Sprintf("--http-port=%d", EndpointHTTPPort),
|
||||
fmt.Sprintf("--udp-port=%d", EndpointUDPPort),
|
||||
}
|
||||
// In case of hostnetwork endpoints, we want to bind the udp listener to specific ip addresses.
|
||||
// In order to cover legacy AND dualstack, we pass both the host ip and the two pod ips. Agnhost
|
||||
// removes duplicates and so this will listen on both addresses (or on the single existing one).
|
||||
if config.EndpointsHostNetwork {
|
||||
netexecArgs = append(netexecArgs, "--udp-listen-addresses=$(HOST_IP),$(POD_IPS)")
|
||||
}
|
||||
|
||||
probe := &v1.Probe{
|
||||
InitialDelaySeconds: 10,
|
||||
TimeoutSeconds: 30,
|
||||
@ -568,11 +580,7 @@ func (config *NetworkingTestConfig) createNetShellPodSpec(podName, hostname stri
|
||||
Name: "webserver",
|
||||
Image: NetexecImageName,
|
||||
ImagePullPolicy: v1.PullIfNotPresent,
|
||||
Args: []string{
|
||||
"netexec",
|
||||
fmt.Sprintf("--http-port=%d", EndpointHTTPPort),
|
||||
fmt.Sprintf("--udp-port=%d", EndpointUDPPort),
|
||||
},
|
||||
Args: netexecArgs,
|
||||
Ports: []v1.ContainerPort{
|
||||
{
|
||||
Name: "http",
|
||||
@ -602,6 +610,27 @@ func (config *NetworkingTestConfig) createNetShellPodSpec(podName, hostname stri
|
||||
Protocol: v1.ProtocolSCTP,
|
||||
})
|
||||
}
|
||||
|
||||
if config.EndpointsHostNetwork {
|
||||
pod.Spec.Containers[0].Env = []v1.EnvVar{
|
||||
{
|
||||
Name: "HOST_IP",
|
||||
ValueFrom: &v1.EnvVarSource{
|
||||
FieldRef: &v1.ObjectFieldSelector{
|
||||
FieldPath: "status.hostIP",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "POD_IPS",
|
||||
ValueFrom: &v1.EnvVarSource{
|
||||
FieldRef: &v1.ObjectFieldSelector{
|
||||
FieldPath: "status.podIPs",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
return pod
|
||||
}
|
||||
|
||||
|
@ -468,10 +468,7 @@ var _ = common.SIGDescribe("Networking", func() {
|
||||
}
|
||||
})
|
||||
|
||||
// skip because pods can not reach the endpoint in the same host if using UDP and hostNetwork
|
||||
// xref: #95565
|
||||
ginkgo.It("should function for pod-Service(hostNetwork): udp", func() {
|
||||
e2eskipper.Skipf("skip because pods can not reach the endpoint in the same host if using UDP and hostNetwork #95565")
|
||||
config := e2enetwork.NewNetworkingTestConfig(f, e2enetwork.EndpointsUseHostNetwork)
|
||||
ginkgo.By(fmt.Sprintf("dialing(udp) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, e2enetwork.ClusterUDPPort))
|
||||
err := config.DialFromTestContainer("udp", config.ClusterIP, e2enetwork.ClusterUDPPort, config.MaxTries, 0, config.EndpointHostnames())
|
||||
|
@ -216,7 +216,7 @@ const (
|
||||
|
||||
func initImageConfigs() (map[int]Config, map[int]Config) {
|
||||
configs := map[int]Config{}
|
||||
configs[Agnhost] = Config{promoterE2eRegistry, "agnhost", "2.28"}
|
||||
configs[Agnhost] = Config{promoterE2eRegistry, "agnhost", "2.29"}
|
||||
configs[AgnhostPrivate] = Config{PrivateRegistry, "agnhost", "2.6"}
|
||||
configs[AuthenticatedAlpine] = Config{gcAuthenticatedRegistry, "alpine", "3.7"}
|
||||
configs[AuthenticatedWindowsNanoServer] = Config{gcAuthenticatedRegistry, "windows-nanoserver", "v1"}
|
||||
|
Loading…
Reference in New Issue
Block a user