mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
use framework.ExpectNoError() for e2e/network/ingress.go service.go
This commit is contained in:
parent
a1eaacd59b
commit
a8e8d4a668
@ -94,7 +94,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
Cloud: framework.TestContext.CloudConfig,
|
||||
}
|
||||
err := gceController.Init()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
// Platform specific cleanup
|
||||
@ -110,7 +110,8 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
jig.TryDeleteIngress()
|
||||
|
||||
ginkgo.By("Cleaning up cloud resources")
|
||||
gomega.Expect(gceController.CleanupIngressController()).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.CleanupIngressController()
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
ginkgo.It("should conform to Ingress spec", func() {
|
||||
@ -143,7 +144,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
for i, host := range hosts {
|
||||
err := jig.WaitForIngressWithCert(true, []string{host}, certs[i])
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
}
|
||||
|
||||
ginkgo.By("Remove all but one of the certs on the ingress.")
|
||||
@ -153,13 +154,13 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
|
||||
ginkgo.By("Test that the remaining cert is properly served.")
|
||||
err := jig.WaitForIngressWithCert(true, []string{hosts[0]}, certs[0])
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
|
||||
ginkgo.By("Add back one of the certs that was removed and check that all certs are served.")
|
||||
jig.AddHTTPS(secrets[1], hosts[1])
|
||||
for i, host := range hosts[:2] {
|
||||
err := jig.WaitForIngressWithCert(true, []string{host}, certs[i])
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
}
|
||||
})
|
||||
|
||||
@ -250,7 +251,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
Cloud: framework.TestContext.CloudConfig,
|
||||
}
|
||||
err := gceController.Init()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
// Platform specific cleanup
|
||||
@ -266,7 +267,8 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
jig.TryDeleteIngress()
|
||||
|
||||
ginkgo.By("Cleaning up cloud resources")
|
||||
gomega.Expect(gceController.CleanupIngressController()).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.CleanupIngressController()
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
ginkgo.It("should conform to Ingress spec", func() {
|
||||
@ -279,7 +281,8 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
t.Execute()
|
||||
ginkgo.By(t.ExitLog)
|
||||
jig.WaitForIngress(true)
|
||||
gomega.Expect(gceController.WaitForNegBackendService(jig.GetServicePorts(false))).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.WaitForNegBackendService(jig.GetServicePorts(false))
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
})
|
||||
|
||||
@ -288,15 +291,16 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
ginkgo.By("Create a basic HTTP ingress using NEG")
|
||||
jig.CreateIngress(filepath.Join(ingress.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{})
|
||||
jig.WaitForIngress(true)
|
||||
gomega.Expect(gceController.WaitForNegBackendService(jig.GetServicePorts(false))).NotTo(gomega.HaveOccurred())
|
||||
err = gceController.WaitForNegBackendService(jig.GetServicePorts(false))
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
ginkgo.By("Switch backend service to use IG")
|
||||
svcList, err := f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
svc.Annotations[ingress.NEGAnnotation] = `{"ingress": false}`
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
err = wait.Poll(5*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) {
|
||||
if err := gceController.BackendServiceUsingIG(jig.GetServicePorts(false)); err != nil {
|
||||
@ -305,16 +309,16 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "Expect backend service to target IG, but failed to observe")
|
||||
framework.ExpectNoError(err, "Expect backend service to target IG, but failed to observe")
|
||||
jig.WaitForIngress(true)
|
||||
|
||||
ginkgo.By("Switch backend service to use NEG")
|
||||
svcList, err = f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
svc.Annotations[ingress.NEGAnnotation] = `{"ingress": true}`
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
err = wait.Poll(5*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) {
|
||||
if err := gceController.BackendServiceUsingNEG(jig.GetServicePorts(false)); err != nil {
|
||||
@ -323,7 +327,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "Expect backend service to target NEG, but failed to observe")
|
||||
framework.ExpectNoError(err, "Expect backend service to target NEG, but failed to observe")
|
||||
jig.WaitForIngress(true)
|
||||
})
|
||||
|
||||
@ -332,7 +336,8 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
jig.CreateIngress(filepath.Join(ingress.IngressManifestPath, "neg-clusterip"), ns, map[string]string{}, map[string]string{})
|
||||
jig.WaitForIngress(true)
|
||||
svcPorts := jig.GetServicePorts(false)
|
||||
gomega.Expect(gceController.WaitForNegBackendService(svcPorts)).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.WaitForNegBackendService(svcPorts)
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
// ClusterIP ServicePorts have no NodePort
|
||||
for _, sp := range svcPorts {
|
||||
@ -344,11 +349,11 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
name := "hostname"
|
||||
scaleAndValidateNEG := func(num int) {
|
||||
scale, err := f.ClientSet.AppsV1().Deployments(ns).GetScale(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
if scale.Spec.Replicas != int32(num) {
|
||||
scale.Spec.Replicas = int32(num)
|
||||
_, err = f.ClientSet.AppsV1().Deployments(ns).UpdateScale(name, scale)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
err = wait.Poll(10*time.Second, negUpdateTimeout, func() (bool, error) {
|
||||
res, err := jig.GetDistinctResponseFromIngress()
|
||||
@ -358,14 +363,15 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
e2elog.Logf("Expecting %d backends, got %d", num, res.Len())
|
||||
return res.Len() == num, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
|
||||
ginkgo.By("Create a basic HTTP ingress using NEG")
|
||||
jig.CreateIngress(filepath.Join(ingress.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{})
|
||||
jig.WaitForIngress(true)
|
||||
jig.WaitForIngressToStable()
|
||||
gomega.Expect(gceController.WaitForNegBackendService(jig.GetServicePorts(false))).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.WaitForNegBackendService(jig.GetServicePorts(false))
|
||||
framework.ExpectNoError(err)
|
||||
// initial replicas number is 1
|
||||
scaleAndValidateNEG(1)
|
||||
|
||||
@ -389,14 +395,15 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
jig.CreateIngress(filepath.Join(ingress.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{})
|
||||
jig.WaitForIngress(true)
|
||||
jig.WaitForIngressToStable()
|
||||
gomega.Expect(gceController.WaitForNegBackendService(jig.GetServicePorts(false))).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.WaitForNegBackendService(jig.GetServicePorts(false))
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
ginkgo.By(fmt.Sprintf("Scale backend replicas to %d", replicas))
|
||||
scale, err := f.ClientSet.AppsV1().Deployments(ns).GetScale(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
scale.Spec.Replicas = int32(replicas)
|
||||
_, err = f.ClientSet.AppsV1().Deployments(ns).UpdateScale(name, scale)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
err = wait.Poll(10*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) {
|
||||
res, err := jig.GetDistinctResponseFromIngress()
|
||||
@ -405,21 +412,21 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
return res.Len() == replicas, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
ginkgo.By("Trigger rolling update and observe service disruption")
|
||||
deploy, err := f.ClientSet.AppsV1().Deployments(ns).Get(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
// trigger by changing graceful termination period to 60 seconds
|
||||
gracePeriod := int64(60)
|
||||
deploy.Spec.Template.Spec.TerminationGracePeriodSeconds = &gracePeriod
|
||||
_, err = f.ClientSet.AppsV1().Deployments(ns).Update(deploy)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
err = wait.Poll(10*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) {
|
||||
res, err := jig.GetDistinctResponseFromIngress()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
deploy, err := f.ClientSet.AppsV1().Deployments(ns).Get(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
if int(deploy.Status.UpdatedReplicas) == replicas {
|
||||
if res.Len() == replicas {
|
||||
return true, nil
|
||||
@ -431,7 +438,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
e2elog.Logf("Waiting for rolling update to finished. Keep sending traffic.")
|
||||
return false, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
ginkgo.It("should sync endpoints for both Ingress-referenced NEG and standalone NEG", func() {
|
||||
@ -440,15 +447,15 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
|
||||
scaleAndValidateExposedNEG := func(num int) {
|
||||
scale, err := f.ClientSet.AppsV1().Deployments(ns).GetScale(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
if scale.Spec.Replicas != int32(num) {
|
||||
scale.Spec.Replicas = int32(num)
|
||||
_, err = f.ClientSet.AppsV1().Deployments(ns).UpdateScale(name, scale)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
err = wait.Poll(10*time.Second, negUpdateTimeout, func() (bool, error) {
|
||||
svc, err := f.ClientSet.CoreV1().Services(ns).Get(name, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
var status ingress.NegStatus
|
||||
v, ok := svc.Annotations[ingress.NEGStatusAnnotation]
|
||||
@ -481,10 +488,10 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
|
||||
gceCloud, err := gce.GetGCECloud()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, neg := range status.NetworkEndpointGroups {
|
||||
networkEndpoints, err := gceCloud.ListNetworkEndpoints(neg, gceController.Cloud.Zone, false)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
if len(networkEndpoints) != num {
|
||||
e2elog.Logf("Expect number of endpoints to be %d, but got %d", num, len(networkEndpoints))
|
||||
return false, nil
|
||||
@ -493,13 +500,14 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
|
||||
return true, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
|
||||
ginkgo.By("Create a basic HTTP ingress using NEG")
|
||||
jig.CreateIngress(filepath.Join(ingress.IngressManifestPath, "neg-exposed"), ns, map[string]string{}, map[string]string{})
|
||||
jig.WaitForIngress(true)
|
||||
gomega.Expect(gceController.WaitForNegBackendService(jig.GetServicePorts(false))).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.WaitForNegBackendService(jig.GetServicePorts(false))
|
||||
framework.ExpectNoError(err)
|
||||
// initial replicas number is 1
|
||||
scaleAndValidateExposedNEG(1)
|
||||
|
||||
@ -527,46 +535,46 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
// Add Ingress annotation - NEGs should stay the same.
|
||||
ginkgo.By("Adding NEG Ingress annotation")
|
||||
svcList, err := f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
svc.Annotations[ingress.NEGAnnotation] = `{"ingress":true,"exposed_ports":{"80":{},"443":{}}}`
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
detectNegAnnotation(f, jig, gceController, ns, name, 2)
|
||||
|
||||
// Modify exposed NEG annotation, but keep ingress annotation
|
||||
ginkgo.By("Modifying exposed NEG annotation, but keep Ingress annotation")
|
||||
svcList, err = f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
svc.Annotations[ingress.NEGAnnotation] = `{"ingress":true,"exposed_ports":{"443":{}}}`
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
detectNegAnnotation(f, jig, gceController, ns, name, 2)
|
||||
|
||||
// Remove Ingress annotation. Expect 1 NEG
|
||||
ginkgo.By("Disabling Ingress annotation, but keeping one standalone NEG")
|
||||
svcList, err = f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
svc.Annotations[ingress.NEGAnnotation] = `{"ingress":false,"exposed_ports":{"443":{}}}`
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
detectNegAnnotation(f, jig, gceController, ns, name, 1)
|
||||
|
||||
// Remove NEG annotation entirely. Expect 0 NEGs.
|
||||
ginkgo.By("Removing NEG annotation")
|
||||
svcList, err = f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, svc := range svcList.Items {
|
||||
delete(svc.Annotations, ingress.NEGAnnotation)
|
||||
// Service cannot be ClusterIP if it's using Instance Groups.
|
||||
svc.Spec.Type = v1.ServiceTypeNodePort
|
||||
_, err = f.ClientSet.CoreV1().Services(ns).Update(&svc)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
detectNegAnnotation(f, jig, gceController, ns, name, 0)
|
||||
})
|
||||
@ -588,7 +596,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
Cloud: framework.TestContext.CloudConfig,
|
||||
}
|
||||
err := gceController.Init()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
// TODO(https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/issues/19):
|
||||
// Kubemci should reserve a static ip if user has not specified one.
|
||||
@ -611,7 +619,8 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
|
||||
}
|
||||
|
||||
ginkgo.By("Cleaning up cloud resources")
|
||||
gomega.Expect(gceController.CleanupIngressController()).NotTo(gomega.HaveOccurred())
|
||||
err := gceController.CleanupIngressController()
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
ginkgo.It("should conform to Ingress spec", func() {
|
||||
@ -768,9 +777,9 @@ func executePresharedCertTest(f *framework.Framework, jig *ingress.TestJig, stat
|
||||
ginkgo.By(fmt.Sprintf("Creating ssl certificate %q on GCE", preSharedCertName))
|
||||
testHostname := "test.ingress.com"
|
||||
cert, key, err := ingress.GenerateRSACerts(testHostname, true)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
gceCloud, err := gce.GetGCECloud()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
defer func() {
|
||||
// We would not be able to delete the cert until ingress controller
|
||||
// cleans up the target proxy that references it.
|
||||
@ -786,7 +795,7 @@ func executePresharedCertTest(f *framework.Framework, jig *ingress.TestJig, stat
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("ginkgo.Failed to delete ssl certificate %q: %v", preSharedCertName, err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("ginkgo.Failed to delete ssl certificate %q: %v", preSharedCertName, err))
|
||||
}()
|
||||
_, err = gceCloud.CreateSslCertificate(&compute.SslCertificate{
|
||||
Name: preSharedCertName,
|
||||
@ -794,7 +803,7 @@ func executePresharedCertTest(f *framework.Framework, jig *ingress.TestJig, stat
|
||||
PrivateKey: string(key),
|
||||
Description: "pre-shared cert for ingress testing",
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("ginkgo.Failed to create ssl certificate %q: %v", preSharedCertName, err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("ginkgo.Failed to create ssl certificate %q: %v", preSharedCertName, err))
|
||||
|
||||
ginkgo.By("Creating an ingress referencing the pre-shared certificate")
|
||||
// Create an ingress referencing this cert using pre-shared-cert annotation.
|
||||
@ -811,7 +820,7 @@ func executePresharedCertTest(f *framework.Framework, jig *ingress.TestJig, stat
|
||||
|
||||
ginkgo.By("Test that ingress works with the pre-shared certificate")
|
||||
err = jig.WaitForIngressWithCert(true, []string{testHostname}, cert)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
framework.ExpectNoError(err, fmt.Sprintf("Unexpected error while waiting for ingress: %v", err))
|
||||
}
|
||||
|
||||
func executeStaticIPHttpsOnlyTest(f *framework.Framework, jig *ingress.TestJig, ipName, ip string) {
|
||||
@ -837,11 +846,11 @@ func executeBacksideBacksideHTTPSTest(f *framework.Framework, jig *ingress.TestJ
|
||||
framework.Failf("ginkgo.Failed to cleanup re-encryption ingress: %v", errs)
|
||||
}
|
||||
}()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "ginkgo.Failed to create re-encryption ingress")
|
||||
framework.ExpectNoError(err, "ginkgo.Failed to create re-encryption ingress")
|
||||
|
||||
ginkgo.By(fmt.Sprintf("Waiting for ingress %s to come up", ingCreated.Name))
|
||||
ingIP, err := jig.WaitForIngressAddress(f.ClientSet, f.Namespace.Name, ingCreated.Name, framework.LoadBalancerPollTimeout)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "ginkgo.Failed to wait for ingress IP")
|
||||
framework.ExpectNoError(err, "ginkgo.Failed to wait for ingress IP")
|
||||
|
||||
ginkgo.By(fmt.Sprintf("Polling on address %s and verify the backend is serving HTTPS", ingIP))
|
||||
timeoutClient := &http.Client{Timeout: ingress.IngressReqTimeout}
|
||||
@ -857,7 +866,7 @@ func executeBacksideBacksideHTTPSTest(f *framework.Framework, jig *ingress.TestJ
|
||||
e2elog.Logf("Poll succeeded, request was served by HTTPS")
|
||||
return true, nil
|
||||
})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "ginkgo.Failed to verify backside re-encryption ingress")
|
||||
framework.ExpectNoError(err, "ginkgo.Failed to verify backside re-encryption ingress")
|
||||
}
|
||||
|
||||
func detectNegAnnotation(f *framework.Framework, jig *ingress.TestJig, gceController *gce.IngressController, ns, name string, negs int) {
|
||||
@ -897,10 +906,10 @@ func detectNegAnnotation(f *framework.Framework, jig *ingress.TestJig, gceContro
|
||||
}
|
||||
|
||||
gceCloud, err := gce.GetGCECloud()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
for _, neg := range status.NetworkEndpointGroups {
|
||||
networkEndpoints, err := gceCloud.ListNetworkEndpoints(neg, gceController.Cloud.Zone, false)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
if len(networkEndpoints) != 1 {
|
||||
e2elog.Logf("Expect NEG %s to exist, but got %d", neg, len(networkEndpoints))
|
||||
return false, nil
|
||||
@ -914,6 +923,6 @@ func detectNegAnnotation(f *framework.Framework, jig *ingress.TestJig, gceContro
|
||||
}
|
||||
return true, nil
|
||||
}); err != nil {
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
*/
|
||||
framework.ConformanceIt("should provide secure master service ", func() {
|
||||
_, err := cs.CoreV1().Services(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to fetch the service object for the service named kubernetes")
|
||||
framework.ExpectNoError(err, "failed to fetch the service object for the service named kubernetes")
|
||||
})
|
||||
|
||||
/*
|
||||
@ -128,7 +128,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
ginkgo.By("creating service " + serviceName + " in namespace " + ns)
|
||||
defer func() {
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
}()
|
||||
ports := []v1.ServicePort{{
|
||||
Port: 80,
|
||||
@ -136,7 +136,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
}}
|
||||
_, err := jig.CreateServiceWithServicePort(labels, ns, ports)
|
||||
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service with ServicePorts in namespace: %s", ns)
|
||||
framework.ExpectNoError(err, "failed to create service with ServicePorts in namespace: %s", ns)
|
||||
|
||||
framework.ValidateEndpointsOrFail(cs, ns, serviceName, framework.PortsByPodName{})
|
||||
|
||||
@ -144,7 +144,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
for name := range names {
|
||||
err := cs.CoreV1().Pods(ns).Delete(name, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s in namespace: %s", name, ns)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s in namespace: %s", name, ns)
|
||||
}
|
||||
}()
|
||||
|
||||
@ -181,7 +181,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
defer func() {
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
}()
|
||||
|
||||
labels := map[string]string{"foo": "bar"}
|
||||
@ -203,7 +203,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
},
|
||||
}
|
||||
_, err := jig.CreateServiceWithServicePort(labels, ns, ports)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service with ServicePorts in namespace: %s", ns)
|
||||
framework.ExpectNoError(err, "failed to create service with ServicePorts in namespace: %s", ns)
|
||||
port1 := 100
|
||||
port2 := 101
|
||||
framework.ValidateEndpointsOrFail(cs, ns, serviceName, framework.PortsByPodName{})
|
||||
@ -212,7 +212,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
for name := range names {
|
||||
err := cs.CoreV1().Pods(ns).Delete(name, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s in namespace: %s", name, ns)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s in namespace: %s", name, ns)
|
||||
}
|
||||
}()
|
||||
|
||||
@ -272,7 +272,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the sourceip test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
}()
|
||||
serviceIP := tcpService.Spec.ClusterIP
|
||||
e2elog.Logf("sourceip-test cluster ip: %s", serviceIP)
|
||||
@ -293,7 +293,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the echo server pod")
|
||||
err := cs.CoreV1().Pods(ns).Delete(serverPodName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s on node: %s", serverPodName, node1.Name)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s on node: %s", serverPodName, node1.Name)
|
||||
}()
|
||||
|
||||
// Waiting for service to expose endpoint.
|
||||
@ -322,13 +322,13 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("creating service1 in namespace " + ns)
|
||||
podNames1, svc1IP, err := framework.StartServeHostnameService(cs, getServeHostnameService("service1"), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
ginkgo.By("creating service2 in namespace " + ns)
|
||||
podNames2, svc2IP, err := framework.StartServeHostnameService(cs, getServeHostnameService("service2"), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
|
||||
hosts, err := e2essh.NodeSSHHosts(cs)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to find external/internal IPs for every node")
|
||||
framework.ExpectNoError(err, "failed to find external/internal IPs for every node")
|
||||
if len(hosts) == 0 {
|
||||
framework.Failf("No ssh-able nodes")
|
||||
}
|
||||
@ -352,7 +352,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
// Start another service and verify both are up.
|
||||
ginkgo.By("creating service3 in namespace " + ns)
|
||||
podNames3, svc3IP, err := framework.StartServeHostnameService(cs, getServeHostnameService("service3"), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc3IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc3IP, ns)
|
||||
|
||||
if svc2IP == svc3IP {
|
||||
framework.Failf("service IPs conflict: %v", svc2IP)
|
||||
@ -379,20 +379,20 @@ var _ = SIGDescribe("Services", func() {
|
||||
framework.ExpectNoError(framework.StopServeHostnameService(f.ClientSet, ns, svc1))
|
||||
}()
|
||||
podNames1, svc1IP, err := framework.StartServeHostnameService(cs, getServeHostnameService(svc1), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
|
||||
defer func() {
|
||||
framework.ExpectNoError(framework.StopServeHostnameService(f.ClientSet, ns, svc2))
|
||||
}()
|
||||
podNames2, svc2IP, err := framework.StartServeHostnameService(cs, getServeHostnameService(svc2), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
|
||||
if svc1IP == svc2IP {
|
||||
framework.Failf("VIPs conflict: %v", svc1IP)
|
||||
}
|
||||
|
||||
hosts, err := e2essh.NodeSSHHosts(cs)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to find external/internal IPs for every node")
|
||||
framework.ExpectNoError(err, "failed to find external/internal IPs for every node")
|
||||
if len(hosts) == 0 {
|
||||
framework.Failf("No ssh-able nodes")
|
||||
}
|
||||
@ -432,10 +432,10 @@ var _ = SIGDescribe("Services", func() {
|
||||
framework.ExpectNoError(framework.StopServeHostnameService(f.ClientSet, ns, "service1"))
|
||||
}()
|
||||
podNames1, svc1IP, err := framework.StartServeHostnameService(cs, getServeHostnameService("service1"), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc1IP, ns)
|
||||
|
||||
hosts, err := e2essh.NodeSSHHosts(cs)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to find external/internal IPs for every node")
|
||||
framework.ExpectNoError(err, "failed to find external/internal IPs for every node")
|
||||
if len(hosts) == 0 {
|
||||
framework.Failf("No ssh-able nodes")
|
||||
}
|
||||
@ -459,7 +459,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
framework.ExpectNoError(framework.StopServeHostnameService(f.ClientSet, ns, "service2"))
|
||||
}()
|
||||
podNames2, svc2IP, err := framework.StartServeHostnameService(cs, getServeHostnameService("service2"), ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svc2IP, ns)
|
||||
|
||||
if svc1IP == svc2IP {
|
||||
framework.Failf("VIPs conflict: %v", svc1IP)
|
||||
@ -527,7 +527,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("creating a second namespace")
|
||||
namespacePtr, err := f.CreateNamespace("services", nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create namespace")
|
||||
framework.ExpectNoError(err, "failed to create namespace")
|
||||
ns2 := namespacePtr.Name // LB2 in ns2 on UDP
|
||||
e2elog.Logf("namespace for UDP test: %s", ns2)
|
||||
|
||||
@ -592,7 +592,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
ginkgo.By("creating a static load balancer IP")
|
||||
staticIPName = fmt.Sprintf("e2e-external-lb-test-%s", framework.RunID)
|
||||
gceCloud, err := gce.GetGCECloud()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get GCE cloud provider")
|
||||
framework.ExpectNoError(err, "failed to get GCE cloud provider")
|
||||
|
||||
err = gceCloud.ReserveRegionAddress(&compute.Address{Name: staticIPName}, gceCloud.Region())
|
||||
defer func() {
|
||||
@ -603,9 +603,9 @@ var _ = SIGDescribe("Services", func() {
|
||||
}
|
||||
}
|
||||
}()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create region address: %s", staticIPName)
|
||||
framework.ExpectNoError(err, "failed to create region address: %s", staticIPName)
|
||||
reservedAddr, err := gceCloud.GetRegionAddress(staticIPName, gceCloud.Region())
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get region address: %s", staticIPName)
|
||||
framework.ExpectNoError(err, "failed to get region address: %s", staticIPName)
|
||||
|
||||
requestedIP = reservedAddr.Address
|
||||
e2elog.Logf("Allocated static load balancer IP: %s", requestedIP)
|
||||
@ -649,7 +649,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
ginkgo.By("demoting the static IP to ephemeral")
|
||||
if staticIPName != "" {
|
||||
gceCloud, err := gce.GetGCECloud()
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to get GCE cloud provider")
|
||||
framework.ExpectNoError(err, "failed to get GCE cloud provider")
|
||||
// Deleting it after it is attached "demotes" it to an
|
||||
// ephemeral IP, which can be auto-released.
|
||||
if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
|
||||
@ -880,7 +880,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the updating NodePorts test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
}()
|
||||
jig.SanityCheckService(tcpService, v1.ServiceTypeClusterIP)
|
||||
svcPort := int(tcpService.Spec.Ports[0].Port)
|
||||
@ -927,7 +927,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the ExternalName to ClusterIP test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
}()
|
||||
jig.SanityCheckService(externalNameService, v1.ServiceTypeExternalName)
|
||||
ginkgo.By("changing the ExternalName service to type=ClusterIP")
|
||||
@ -951,7 +951,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the ExternalName to NodePort test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
}()
|
||||
jig.SanityCheckService(externalNameService, v1.ServiceTypeExternalName)
|
||||
ginkgo.By("changing the ExternalName service to type=NodePort")
|
||||
@ -975,7 +975,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the ClusterIP to ExternalName test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
}()
|
||||
jig.SanityCheckService(clusterIPService, v1.ServiceTypeClusterIP)
|
||||
ginkgo.By("changing the ClusterIP service to type=ExternalName")
|
||||
@ -999,7 +999,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the NodePort to ExternalName test service")
|
||||
err := cs.CoreV1().Services(ns).Delete(serviceName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service %s in namespace %s", serviceName, ns)
|
||||
}()
|
||||
jig.SanityCheckService(nodePortService, v1.ServiceTypeNodePort)
|
||||
ginkgo.By("changing the NodePort service to type=ExternalName")
|
||||
@ -1049,7 +1049,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
},
|
||||
}
|
||||
result, err := t.CreateService(service)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
|
||||
if len(result.Spec.Ports) != 2 {
|
||||
framework.Failf("got unexpected len(Spec.Ports) for new service: %v", result)
|
||||
@ -1079,7 +1079,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
service := t.BuildServiceSpec()
|
||||
service.Spec.Type = v1.ServiceTypeNodePort
|
||||
result, err := t.CreateService(service)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName1, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName1, ns)
|
||||
|
||||
if result.Spec.Type != v1.ServiceTypeNodePort {
|
||||
framework.Failf("got unexpected Spec.Type for new service: %v", result)
|
||||
@ -1106,11 +1106,11 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("deleting service " + serviceName1 + " to release NodePort")
|
||||
err = t.DeleteService(serviceName1)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName1, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName1, ns)
|
||||
|
||||
ginkgo.By("creating service " + serviceName2 + " with no-longer-conflicting NodePort")
|
||||
_, err = t.CreateService(service2)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName1, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName1, ns)
|
||||
})
|
||||
|
||||
ginkgo.It("should check NodePort out-of-range", func() {
|
||||
@ -1132,7 +1132,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("creating service " + serviceName + " with type NodePort in namespace " + ns)
|
||||
service, err := t.CreateService(service)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
|
||||
if service.Spec.Type != v1.ServiceTypeNodePort {
|
||||
framework.Failf("got unexpected Spec.Type for new service: %v", service)
|
||||
@ -1168,7 +1168,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("deleting original service " + serviceName)
|
||||
err = t.DeleteService(serviceName)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
|
||||
ginkgo.By(fmt.Sprintf("creating service "+serviceName+" with out-of-range NodePort %d", outOfRangeNodePort))
|
||||
service = t.BuildServiceSpec()
|
||||
@ -1200,7 +1200,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("creating service " + serviceName + " with type NodePort in namespace " + ns)
|
||||
service, err := t.CreateService(service)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
|
||||
if service.Spec.Type != v1.ServiceTypeNodePort {
|
||||
framework.Failf("got unexpected Spec.Type for new service: %v", service)
|
||||
@ -1219,7 +1219,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
|
||||
ginkgo.By("deleting original service " + serviceName)
|
||||
err = t.DeleteService(serviceName)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
|
||||
|
||||
hostExec := framework.LaunchHostExecPod(f.ClientSet, f.Namespace.Name, "hostexec")
|
||||
cmd := fmt.Sprintf(`! ss -ant46 'sport = :%d' | tail -n +2 | grep LISTEN`, nodePort)
|
||||
@ -1241,7 +1241,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
service.Spec.Type = v1.ServiceTypeNodePort
|
||||
service.Spec.Ports[0].NodePort = nodePort
|
||||
service, err = t.CreateService(service)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName, ns)
|
||||
})
|
||||
|
||||
ginkgo.It("should create endpoints for unready pods", func() {
|
||||
@ -1413,9 +1413,9 @@ var _ = SIGDescribe("Services", func() {
|
||||
dropPodName := framework.CreateExecPodOrFail(cs, namespace, "execpod-drop", nil)
|
||||
|
||||
acceptPod, err := cs.CoreV1().Pods(namespace).Get(acceptPodName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to fetch pod: %s in namespace: %s", acceptPodName, namespace)
|
||||
framework.ExpectNoError(err, "failed to fetch pod: %s in namespace: %s", acceptPodName, namespace)
|
||||
dropPod, err := cs.CoreV1().Pods(namespace).Get(dropPodName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to fetch pod: %s in namespace: %s", dropPodName, namespace)
|
||||
framework.ExpectNoError(err, "failed to fetch pod: %s in namespace: %s", dropPodName, namespace)
|
||||
|
||||
ginkgo.By("creating a pod to be part of the service " + serviceName)
|
||||
// This container is an nginx container listening on port 80
|
||||
@ -1433,7 +1433,8 @@ var _ = SIGDescribe("Services", func() {
|
||||
svc.Spec.Type = v1.ServiceTypeNodePort
|
||||
svc.Spec.LoadBalancerSourceRanges = nil
|
||||
})
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err = cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
svc = jig.WaitForLoadBalancerOrFail(namespace, serviceName, loadBalancerCreateTimeout)
|
||||
@ -1615,7 +1616,8 @@ var _ = SIGDescribe("Services", func() {
|
||||
jig.UpdateServiceOrFail(svc.Namespace, svc.Name, func(svc *v1.Service) {
|
||||
svc.Spec.Type = v1.ServiceTypeNodePort
|
||||
})
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err = cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
svc = jig.WaitForLoadBalancerOrFail(namespace, serviceName, framework.LoadBalancerCreateTimeoutDefault)
|
||||
@ -1743,17 +1745,17 @@ var _ = SIGDescribe("Services", func() {
|
||||
svcDisabled := getServeHostnameService("service-disabled")
|
||||
svcDisabled.ObjectMeta.Labels = serviceProxyNameLabels
|
||||
_, svcDisabledIP, err := framework.StartServeHostnameService(cs, svcDisabled, ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svcDisabledIP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svcDisabledIP, ns)
|
||||
|
||||
ginkgo.By("creating service in namespace " + ns)
|
||||
svcToggled := getServeHostnameService("service")
|
||||
podToggledNames, svcToggledIP, err := framework.StartServeHostnameService(cs, svcToggled, ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service: %s in the namespace: %s", svcToggledIP, ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service: %s in the namespace: %s", svcToggledIP, ns)
|
||||
|
||||
jig := framework.NewServiceTestJig(cs, svcToggled.ObjectMeta.Name)
|
||||
|
||||
hosts, err := e2essh.NodeSSHHosts(cs)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to find external/internal IPs for every node")
|
||||
framework.ExpectNoError(err, "failed to find external/internal IPs for every node")
|
||||
if len(hosts) == 0 {
|
||||
framework.Failf("No ssh-able nodes")
|
||||
}
|
||||
@ -1834,7 +1836,7 @@ var _ = SIGDescribe("Services", func() {
|
||||
}
|
||||
return true, errors.New("expected wget call to fail")
|
||||
}); pollErr != nil {
|
||||
gomega.Expect(pollErr).NotTo(gomega.HaveOccurred())
|
||||
framework.ExpectNoError(pollErr)
|
||||
}
|
||||
})
|
||||
|
||||
@ -1887,9 +1889,11 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
// Make sure we didn't leak the health check node port.
|
||||
threshold := 2
|
||||
for _, ips := range jig.GetEndpointNodes(svc) {
|
||||
gomega.Expect(jig.TestHTTPHealthCheckNodePort(ips[0], healthCheckNodePort, "/healthz", framework.KubeProxyEndpointLagTimeout, false, threshold)).NotTo(gomega.HaveOccurred())
|
||||
err := jig.TestHTTPHealthCheckNodePort(ips[0], healthCheckNodePort, "/healthz", framework.KubeProxyEndpointLagTimeout, false, threshold)
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err := cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
svcTCPPort := int(svc.Spec.Ports[0].Port)
|
||||
@ -1913,7 +1917,8 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
|
||||
svc := jig.CreateOnlyLocalNodePortService(namespace, serviceName, true)
|
||||
defer func() {
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err := cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
tcpNodePort := int(svc.Spec.Ports[0].NodePort)
|
||||
@ -1951,7 +1956,8 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
||||
defer func() {
|
||||
jig.ChangeServiceType(svc.Namespace, svc.Name, v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err := cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
|
||||
@ -1990,7 +1996,8 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
port := strconv.Itoa(healthCheckNodePort)
|
||||
ipPort := net.JoinHostPort(publicIP, port)
|
||||
e2elog.Logf("Health checking %s, http://%s%s, expectedSuccess %v", nodes.Items[n].Name, ipPort, path, expectedSuccess)
|
||||
gomega.Expect(jig.TestHTTPHealthCheckNodePort(publicIP, healthCheckNodePort, path, framework.KubeProxyEndpointLagTimeout, expectedSuccess, threshold)).NotTo(gomega.HaveOccurred())
|
||||
err := jig.TestHTTPHealthCheckNodePort(publicIP, healthCheckNodePort, path, framework.KubeProxyEndpointLagTimeout, expectedSuccess, threshold)
|
||||
framework.ExpectNoError(err)
|
||||
}
|
||||
framework.ExpectNoError(framework.DeleteRCAndWaitForGC(f.ClientSet, namespace, serviceName))
|
||||
}
|
||||
@ -2006,7 +2013,8 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
||||
defer func() {
|
||||
jig.ChangeServiceType(svc.Namespace, svc.Name, v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err := cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
ingressIP := framework.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
|
||||
@ -2022,7 +2030,7 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
})
|
||||
defer func() {
|
||||
err := cs.CoreV1().Pods(namespace).Delete(execPodName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s", execPodName)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s", execPodName)
|
||||
}()
|
||||
execPod, err := f.ClientSet.CoreV1().Pods(namespace).Get(execPodName, metav1.GetOptions{})
|
||||
framework.ExpectNoError(err)
|
||||
@ -2059,7 +2067,8 @@ var _ = SIGDescribe("ESIPP [Slow] [DisabledForLargeClusters]", func() {
|
||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
||||
defer func() {
|
||||
jig.ChangeServiceType(svc.Namespace, svc.Name, v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||
gomega.Expect(cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(gomega.HaveOccurred())
|
||||
err := cs.CoreV1().Services(svc.Namespace).Delete(svc.Name, nil)
|
||||
framework.ExpectNoError(err)
|
||||
}()
|
||||
|
||||
// save the health check node port because it disappears when ESIPP is turned off.
|
||||
@ -2161,7 +2170,7 @@ func execSourceipTest(f *framework.Framework, c clientset.Interface, ns, nodeNam
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the exec pod")
|
||||
err := c.CoreV1().Pods(ns).Delete(execPodName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s", execPodName)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s", execPodName)
|
||||
}()
|
||||
execPod, err := f.ClientSet.CoreV1().Pods(ns).Get(execPodName, metav1.GetOptions{})
|
||||
framework.ExpectNoError(err)
|
||||
@ -2217,13 +2226,13 @@ func execAffinityTestForNonLBServiceWithOptionalTransition(f *framework.Framewor
|
||||
serviceType := svc.Spec.Type
|
||||
svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP
|
||||
_, _, err := framework.StartServeHostnameService(cs, svc, ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service in the namespace: %s", ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service in the namespace: %s", ns)
|
||||
defer func() {
|
||||
framework.StopServeHostnameService(cs, ns, serviceName)
|
||||
}()
|
||||
jig := framework.NewServiceTestJig(cs, serviceName)
|
||||
svc, err = jig.Client.CoreV1().Services(ns).Get(serviceName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to fetch service: %s in namespace: %s", serviceName, ns)
|
||||
framework.ExpectNoError(err, "failed to fetch service: %s in namespace: %s", serviceName, ns)
|
||||
var svcIP string
|
||||
if serviceType == v1.ServiceTypeNodePort {
|
||||
nodes := framework.GetReadySchedulableNodesOrDie(cs)
|
||||
@ -2239,10 +2248,10 @@ func execAffinityTestForNonLBServiceWithOptionalTransition(f *framework.Framewor
|
||||
defer func() {
|
||||
e2elog.Logf("Cleaning up the exec pod")
|
||||
err := cs.CoreV1().Pods(ns).Delete(execPodName, nil)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to delete pod: %s in namespace: %s", execPodName, ns)
|
||||
framework.ExpectNoError(err, "failed to delete pod: %s in namespace: %s", execPodName, ns)
|
||||
}()
|
||||
execPod, err := cs.CoreV1().Pods(ns).Get(execPodName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to fetch pod: %s in namespace: %s", execPodName, ns)
|
||||
framework.ExpectNoError(err, "failed to fetch pod: %s in namespace: %s", execPodName, ns)
|
||||
|
||||
if !isTransitionTest {
|
||||
gomega.Expect(framework.CheckAffinity(jig, execPod, svcIP, servicePort, true)).To(gomega.BeTrue())
|
||||
@ -2276,7 +2285,7 @@ func execAffinityTestForLBServiceWithOptionalTransition(f *framework.Framework,
|
||||
ginkgo.By("creating service in namespace " + ns)
|
||||
svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP
|
||||
_, _, err := framework.StartServeHostnameService(cs, svc, ns, numPods)
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "failed to create replication controller with service in the namespace: %s", ns)
|
||||
framework.ExpectNoError(err, "failed to create replication controller with service in the namespace: %s", ns)
|
||||
jig := framework.NewServiceTestJig(cs, serviceName)
|
||||
ginkgo.By("waiting for loadbalancer for service " + ns + "/" + serviceName)
|
||||
svc = jig.WaitForLoadBalancerOrFail(ns, serviceName, framework.LoadBalancerCreateTimeoutDefault)
|
||||
|
Loading…
Reference in New Issue
Block a user