mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +00:00
Merge pull request #99146 from JornShen/cleanup_validateEndpointsPorts
merge error check to validateEndpointsPorts
This commit is contained in:
commit
0d8373ace2
@ -160,9 +160,7 @@ var _ = SIGDescribe("Conntrack", func() {
|
|||||||
serverPod1.Spec.NodeName = serverNodeInfo.name
|
serverPod1.Spec.NodeName = serverNodeInfo.name
|
||||||
fr.PodClient().CreateSync(serverPod1)
|
fr.PodClient().CreateSync(serverPod1)
|
||||||
|
|
||||||
// Waiting for service to expose endpoint.
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podBackend1: {80}})
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podBackend1: {80}})
|
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
// Note that the fact that Endpoints object already exists, does NOT mean
|
// Note that the fact that Endpoints object already exists, does NOT mean
|
||||||
// that iptables (or whatever else is used) was already programmed.
|
// that iptables (or whatever else is used) was already programmed.
|
||||||
@ -188,9 +186,7 @@ var _ = SIGDescribe("Conntrack", func() {
|
|||||||
framework.Logf("Cleaning up %s pod", podBackend1)
|
framework.Logf("Cleaning up %s pod", podBackend1)
|
||||||
fr.PodClient().DeleteSync(podBackend1, metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout)
|
fr.PodClient().DeleteSync(podBackend1, metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout)
|
||||||
|
|
||||||
// Waiting for service to expose endpoint.
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podBackend2: {80}})
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podBackend2: {80}})
|
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
// Check that the second pod keeps receiving traffic
|
// Check that the second pod keeps receiving traffic
|
||||||
// UDP conntrack entries timeout is 30 sec by default
|
// UDP conntrack entries timeout is 30 sec by default
|
||||||
@ -237,9 +233,7 @@ var _ = SIGDescribe("Conntrack", func() {
|
|||||||
serverPod1.Spec.NodeName = serverNodeInfo.name
|
serverPod1.Spec.NodeName = serverNodeInfo.name
|
||||||
fr.PodClient().CreateSync(serverPod1)
|
fr.PodClient().CreateSync(serverPod1)
|
||||||
|
|
||||||
// Waiting for service to expose endpoint.
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podBackend1: {80}})
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podBackend1: {80}})
|
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
// Note that the fact that Endpoints object already exists, does NOT mean
|
// Note that the fact that Endpoints object already exists, does NOT mean
|
||||||
// that iptables (or whatever else is used) was already programmed.
|
// that iptables (or whatever else is used) was already programmed.
|
||||||
@ -265,9 +259,7 @@ var _ = SIGDescribe("Conntrack", func() {
|
|||||||
framework.Logf("Cleaning up %s pod", podBackend1)
|
framework.Logf("Cleaning up %s pod", podBackend1)
|
||||||
fr.PodClient().DeleteSync(podBackend1, metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout)
|
fr.PodClient().DeleteSync(podBackend1, metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout)
|
||||||
|
|
||||||
// Waiting for service to expose endpoint.
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podBackend2: {80}})
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podBackend2: {80}})
|
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
// Check that the second pod keeps receiving traffic
|
// Check that the second pod keeps receiving traffic
|
||||||
// UDP conntrack entries timeout is 30 sec by default
|
// UDP conntrack entries timeout is 30 sec by default
|
||||||
|
@ -783,8 +783,7 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
_, err := jig.CreateTCPServiceWithPort(nil, 80)
|
_, err := jig.CreateTCPServiceWithPort(nil, 80)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
names := map[string]bool{}
|
names := map[string]bool{}
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -799,23 +798,19 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
|
|
||||||
createPodOrFail(cs, ns, name1, jig.Labels, []v1.ContainerPort{{ContainerPort: 80}})
|
createPodOrFail(cs, ns, name1, jig.Labels, []v1.ContainerPort{{ContainerPort: 80}})
|
||||||
names[name1] = true
|
names[name1] = true
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{name1: {80}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{name1: {80}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
createPodOrFail(cs, ns, name2, jig.Labels, []v1.ContainerPort{{ContainerPort: 80}})
|
createPodOrFail(cs, ns, name2, jig.Labels, []v1.ContainerPort{{ContainerPort: 80}})
|
||||||
names[name2] = true
|
names[name2] = true
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{name1: {80}, name2: {80}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{name1: {80}, name2: {80}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
e2epod.DeletePodOrFail(cs, ns, name1)
|
e2epod.DeletePodOrFail(cs, ns, name1)
|
||||||
delete(names, name1)
|
delete(names, name1)
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{name2: {80}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{name2: {80}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
e2epod.DeletePodOrFail(cs, ns, name2)
|
e2epod.DeletePodOrFail(cs, ns, name2)
|
||||||
delete(names, name2)
|
delete(names, name2)
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -856,8 +851,7 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
|
|
||||||
port1 := 100
|
port1 := 100
|
||||||
port2 := 101
|
port2 := 101
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
names := map[string]bool{}
|
names := map[string]bool{}
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -885,23 +879,19 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
|
|
||||||
createPodOrFail(cs, ns, podname1, jig.Labels, containerPorts1)
|
createPodOrFail(cs, ns, podname1, jig.Labels, containerPorts1)
|
||||||
names[podname1] = true
|
names[podname1] = true
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podname1: {port1}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podname1: {port1}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
createPodOrFail(cs, ns, podname2, jig.Labels, containerPorts2)
|
createPodOrFail(cs, ns, podname2, jig.Labels, containerPorts2)
|
||||||
names[podname2] = true
|
names[podname2] = true
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podname1: {port1}, podname2: {port2}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podname1: {port1}, podname2: {port2}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
e2epod.DeletePodOrFail(cs, ns, podname1)
|
e2epod.DeletePodOrFail(cs, ns, podname1)
|
||||||
delete(names, podname1)
|
delete(names, podname1)
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{podname2: {port2}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{podname2: {port2}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
e2epod.DeletePodOrFail(cs, ns, podname2)
|
e2epod.DeletePodOrFail(cs, ns, podname2)
|
||||||
delete(names, podname2)
|
delete(names, podname2)
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.It("should preserve source pod IP for traffic thru service cluster IP [LinuxOnly]", func() {
|
ginkgo.It("should preserve source pod IP for traffic thru service cluster IP [LinuxOnly]", func() {
|
||||||
@ -955,9 +945,7 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
framework.ExpectNoError(err, "failed to delete pod: %s on node", serverPodName)
|
framework.ExpectNoError(err, "failed to delete pod: %s on node", serverPodName)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// Waiting for service to expose endpoint.
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{serverPodName: {servicePort}})
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{serverPodName: {servicePort}})
|
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
ginkgo.By("Creating pause pod deployment")
|
ginkgo.By("Creating pause pod deployment")
|
||||||
deployment := createPausePodDeployment(cs, "pause-pod", ns, nodeCounts)
|
deployment := createPausePodDeployment(cs, "pause-pod", ns, nodeCounts)
|
||||||
@ -1009,8 +997,7 @@ var _ = SIGDescribe("Services", func() {
|
|||||||
framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout))
|
framework.ExpectNoError(e2epod.WaitTimeoutForPodReadyInNamespace(f.ClientSet, pod.Name, f.Namespace.Name, framework.PodStartTimeout))
|
||||||
|
|
||||||
ginkgo.By("waiting for the service to expose an endpoint")
|
ginkgo.By("waiting for the service to expose an endpoint")
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{serverPodName: {servicePort}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{serverPodName: {servicePort}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
ginkgo.By("Checking if the pod can reach itself")
|
ginkgo.By("Checking if the pod can reach itself")
|
||||||
err = jig.CheckServiceReachability(svc, pod)
|
err = jig.CheckServiceReachability(svc, pod)
|
||||||
@ -2544,16 +2531,17 @@ func translatePodNameToUID(c clientset.Interface, ns string, expectedEndpoints p
|
|||||||
return portsByUID, nil
|
return portsByUID, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// validateEndpointsPorts validates that the given service exists and is served by the given expectedEndpoints.
|
// validateEndpointsPortsOrFail validates that the given service exists and is served by the given expectedEndpoints.
|
||||||
func validateEndpointsPorts(c clientset.Interface, namespace, serviceName string, expectedEndpoints portsByPodName) error {
|
func validateEndpointsPortsOrFail(c clientset.Interface, namespace, serviceName string, expectedEndpoints portsByPodName) {
|
||||||
ginkgo.By(fmt.Sprintf("waiting up to %v for service %s in namespace %s to expose endpoints %v", framework.ServiceStartTimeout, serviceName, namespace, expectedEndpoints))
|
ginkgo.By(fmt.Sprintf("waiting up to %v for service %s in namespace %s to expose endpoints %v", framework.ServiceStartTimeout, serviceName, namespace, expectedEndpoints))
|
||||||
expectedPortsByPodUID, err := translatePodNameToUID(c, namespace, expectedEndpoints)
|
expectedPortsByPodUID, err := translatePodNameToUID(c, namespace, expectedEndpoints)
|
||||||
if err != nil {
|
framework.ExpectNoError(err, "failed to translate pod name to UID, ns:%s, expectedEndpoints:%v", namespace, expectedEndpoints)
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
i := 0
|
var (
|
||||||
if pollErr := wait.PollImmediate(time.Second, framework.ServiceStartTimeout, func() (bool, error) {
|
pollErr error
|
||||||
|
i = 0
|
||||||
|
)
|
||||||
|
if pollErr = wait.PollImmediate(time.Second, framework.ServiceStartTimeout, func() (bool, error) {
|
||||||
i++
|
i++
|
||||||
|
|
||||||
ep, err := c.CoreV1().Endpoints(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
|
ep, err := c.CoreV1().Endpoints(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
|
||||||
@ -2601,9 +2589,8 @@ func validateEndpointsPorts(c clientset.Interface, namespace, serviceName string
|
|||||||
} else {
|
} else {
|
||||||
framework.Logf("Can't list pod debug info: %v", err)
|
framework.Logf("Can't list pod debug info: %v", err)
|
||||||
}
|
}
|
||||||
return fmt.Errorf("error waithing for service %s in namespace %s to expose endpoints %v: %v", serviceName, namespace, expectedEndpoints, pollErr)
|
|
||||||
}
|
}
|
||||||
return nil
|
framework.ExpectNoError(pollErr, "error waithing for service %s in namespace %s to expose endpoints %v: %v", serviceName, namespace, expectedEndpoints)
|
||||||
}
|
}
|
||||||
|
|
||||||
func restartApiserver(namespace string, cs clientset.Interface) error {
|
func restartApiserver(namespace string, cs clientset.Interface) error {
|
||||||
@ -2668,8 +2655,7 @@ var _ = SIGDescribe("SCTP [Feature:SCTP] [LinuxOnly]", func() {
|
|||||||
framework.ExpectNoError(err, fmt.Sprintf("error while waiting for service:%s err: %v", serviceName, err))
|
framework.ExpectNoError(err, fmt.Sprintf("error while waiting for service:%s err: %v", serviceName, err))
|
||||||
|
|
||||||
ginkgo.By("validating endpoints do not exist yet")
|
ginkgo.By("validating endpoints do not exist yet")
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
ginkgo.By("creating a pod for the service")
|
ginkgo.By("creating a pod for the service")
|
||||||
names := map[string]bool{}
|
names := map[string]bool{}
|
||||||
@ -2686,15 +2672,13 @@ var _ = SIGDescribe("SCTP [Feature:SCTP] [LinuxOnly]", func() {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
ginkgo.By("validating endpoints exists")
|
ginkgo.By("validating endpoints exists")
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{name1: {5060}})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{name1: {5060}})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
ginkgo.By("deleting the pod")
|
ginkgo.By("deleting the pod")
|
||||||
e2epod.DeletePodOrFail(cs, ns, name1)
|
e2epod.DeletePodOrFail(cs, ns, name1)
|
||||||
delete(names, name1)
|
delete(names, name1)
|
||||||
ginkgo.By("validating endpoints do not exist anymore")
|
ginkgo.By("validating endpoints do not exist anymore")
|
||||||
err = validateEndpointsPorts(cs, ns, serviceName, portsByPodName{})
|
validateEndpointsPortsOrFail(cs, ns, serviceName, portsByPodName{})
|
||||||
framework.ExpectNoError(err, "failed to validate endpoints for service %s in namespace: %s", serviceName, ns)
|
|
||||||
|
|
||||||
ginkgo.By("validating sctp module is still not loaded")
|
ginkgo.By("validating sctp module is still not loaded")
|
||||||
sctpLoadedAtEnd := CheckSCTPModuleLoadedOnNodes(f, nodes)
|
sctpLoadedAtEnd := CheckSCTPModuleLoadedOnNodes(f, nodes)
|
||||||
|
Loading…
Reference in New Issue
Block a user