mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +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
|
# then after merge and successful postsubmit image push / promotion, bump this
|
||||||
- name: "agnhost: dependents"
|
- name: "agnhost: dependents"
|
||||||
version: "2.28"
|
version: "2.29"
|
||||||
refPaths:
|
refPaths:
|
||||||
- path: test/utils/image/manifest.go
|
- path: test/utils/image/manifest.go
|
||||||
match: configs\[Agnhost\] = Config{promoterE2eRegistry, "agnhost", "\d+\.\d+"}
|
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 {
|
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{
|
probe := &v1.Probe{
|
||||||
InitialDelaySeconds: 10,
|
InitialDelaySeconds: 10,
|
||||||
TimeoutSeconds: 30,
|
TimeoutSeconds: 30,
|
||||||
@ -568,11 +580,7 @@ func (config *NetworkingTestConfig) createNetShellPodSpec(podName, hostname stri
|
|||||||
Name: "webserver",
|
Name: "webserver",
|
||||||
Image: NetexecImageName,
|
Image: NetexecImageName,
|
||||||
ImagePullPolicy: v1.PullIfNotPresent,
|
ImagePullPolicy: v1.PullIfNotPresent,
|
||||||
Args: []string{
|
Args: netexecArgs,
|
||||||
"netexec",
|
|
||||||
fmt.Sprintf("--http-port=%d", EndpointHTTPPort),
|
|
||||||
fmt.Sprintf("--udp-port=%d", EndpointUDPPort),
|
|
||||||
},
|
|
||||||
Ports: []v1.ContainerPort{
|
Ports: []v1.ContainerPort{
|
||||||
{
|
{
|
||||||
Name: "http",
|
Name: "http",
|
||||||
@ -602,6 +610,27 @@ func (config *NetworkingTestConfig) createNetShellPodSpec(podName, hostname stri
|
|||||||
Protocol: v1.ProtocolSCTP,
|
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
|
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() {
|
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)
|
config := e2enetwork.NewNetworkingTestConfig(f, e2enetwork.EndpointsUseHostNetwork)
|
||||||
ginkgo.By(fmt.Sprintf("dialing(udp) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, e2enetwork.ClusterUDPPort))
|
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())
|
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) {
|
func initImageConfigs() (map[int]Config, map[int]Config) {
|
||||||
configs := 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[AgnhostPrivate] = Config{PrivateRegistry, "agnhost", "2.6"}
|
||||||
configs[AuthenticatedAlpine] = Config{gcAuthenticatedRegistry, "alpine", "3.7"}
|
configs[AuthenticatedAlpine] = Config{gcAuthenticatedRegistry, "alpine", "3.7"}
|
||||||
configs[AuthenticatedWindowsNanoServer] = Config{gcAuthenticatedRegistry, "windows-nanoserver", "v1"}
|
configs[AuthenticatedWindowsNanoServer] = Config{gcAuthenticatedRegistry, "windows-nanoserver", "v1"}
|
||||||
|
Loading…
Reference in New Issue
Block a user