mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
e2e loadbalancer remove after each cleanup
The cloud-provider and the e2e test were racing on deleting the cloud resources. Also, the cloud-provider should not leave orphan resources, that will be detected by the job and fail, thus we should not have additional logic to cleanup masking these errors.
This commit is contained in:
parent
9c2b333925
commit
924b467789
@ -31,7 +31,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
|
e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
|
||||||
e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
|
e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
|
||||||
@ -57,7 +56,6 @@ var _ = common.SIGDescribe("LoadBalancers", func() {
|
|||||||
f.NamespacePodSecurityEnforceLevel = admissionapi.LevelPrivileged
|
f.NamespacePodSecurityEnforceLevel = admissionapi.LevelPrivileged
|
||||||
|
|
||||||
var cs clientset.Interface
|
var cs clientset.Interface
|
||||||
serviceLBNames := []string{}
|
|
||||||
var subnetPrefix []string
|
var subnetPrefix []string
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -71,12 +69,6 @@ var _ = common.SIGDescribe("LoadBalancers", func() {
|
|||||||
if ginkgo.CurrentSpecReport().Failed() {
|
if ginkgo.CurrentSpecReport().Failed() {
|
||||||
DescribeSvc(f.Namespace.Name)
|
DescribeSvc(f.Namespace.Name)
|
||||||
}
|
}
|
||||||
for _, lb := range serviceLBNames {
|
|
||||||
framework.Logf("cleaning load balancer resource for %s", lb)
|
|
||||||
e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
|
|
||||||
}
|
|
||||||
//reset serviceLBNames
|
|
||||||
serviceLBNames = []string{}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.It("should be able to change the type and ports of a TCP service [Slow]", func() {
|
ginkgo.It("should be able to change the type and ports of a TCP service [Slow]", func() {
|
||||||
@ -154,13 +146,12 @@ var _ = common.SIGDescribe("LoadBalancers", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ginkgo.By("changing the TCP service to type=LoadBalancer")
|
ginkgo.By("changing the TCP service to type=LoadBalancer")
|
||||||
tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
|
_, err = tcpJig.UpdateService(func(s *v1.Service) {
|
||||||
s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
|
s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
|
||||||
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
|
|
||||||
ginkgo.By("waiting for the TCP service to have a load balancer")
|
ginkgo.By("waiting for the TCP service to have a load balancer")
|
||||||
// Wait for the load balancer to be created asynchronously
|
// Wait for the load balancer to be created asynchronously
|
||||||
tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
|
tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
|
||||||
@ -360,13 +351,11 @@ var _ = common.SIGDescribe("LoadBalancers", func() {
|
|||||||
framework.Logf("Allocated static load balancer IP: %s", requestedIP)
|
framework.Logf("Allocated static load balancer IP: %s", requestedIP)
|
||||||
|
|
||||||
ginkgo.By("changing the UDP service to type=LoadBalancer")
|
ginkgo.By("changing the UDP service to type=LoadBalancer")
|
||||||
udpService, err = udpJig.UpdateService(func(s *v1.Service) {
|
_, err = udpJig.UpdateService(func(s *v1.Service) {
|
||||||
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(udpService))
|
|
||||||
|
|
||||||
// Do this as early as possible, which overrides the `defer` above.
|
// Do this as early as possible, which overrides the `defer` above.
|
||||||
// This is mostly out of fear of leaking the IP in a timeout case
|
// This is mostly out of fear of leaking the IP in a timeout case
|
||||||
// (as of this writing we're not 100% sure where the leaks are
|
// (as of this writing we're not 100% sure where the leaks are
|
||||||
@ -917,14 +906,13 @@ var _ = common.SIGDescribe("LoadBalancers", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ginkgo.By("changing the TCP service to type=LoadBalancer")
|
ginkgo.By("changing the TCP service to type=LoadBalancer")
|
||||||
tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
|
_, err = tcpJig.UpdateService(func(s *v1.Service) {
|
||||||
s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
|
s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
|
||||||
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
s.Spec.Type = v1.ServiceTypeLoadBalancer
|
||||||
s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(false)
|
s.Spec.AllocateLoadBalancerNodePorts = utilpointer.BoolPtr(false)
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
|
|
||||||
ginkgo.By("waiting for the TCP service to have a load balancer")
|
ginkgo.By("waiting for the TCP service to have a load balancer")
|
||||||
// Wait for the load balancer to be created asynchronously
|
// Wait for the load balancer to be created asynchronously
|
||||||
tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
|
tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
|
||||||
@ -989,7 +977,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
var loadBalancerCreateTimeout time.Duration
|
var loadBalancerCreateTimeout time.Duration
|
||||||
|
|
||||||
var cs clientset.Interface
|
var cs clientset.Interface
|
||||||
serviceLBNames := []string{}
|
|
||||||
var subnetPrefix []string
|
var subnetPrefix []string
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -1007,12 +994,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
if ginkgo.CurrentSpecReport().Failed() {
|
if ginkgo.CurrentSpecReport().Failed() {
|
||||||
DescribeSvc(f.Namespace.Name)
|
DescribeSvc(f.Namespace.Name)
|
||||||
}
|
}
|
||||||
for _, lb := range serviceLBNames {
|
|
||||||
framework.Logf("cleaning load balancer resource for %s", lb)
|
|
||||||
e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
|
|
||||||
}
|
|
||||||
//reset serviceLBNames
|
|
||||||
serviceLBNames = []string{}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.It("should work for type=LoadBalancer", func() {
|
ginkgo.It("should work for type=LoadBalancer", func() {
|
||||||
@ -1022,7 +1003,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
|
|
||||||
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
|
||||||
healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
|
healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
|
||||||
if healthCheckNodePort == 0 {
|
if healthCheckNodePort == 0 {
|
||||||
framework.Failf("Service HealthCheck NodePort was not allocated")
|
framework.Failf("Service HealthCheck NodePort was not allocated")
|
||||||
@ -1114,7 +1094,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
|
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
|
||||||
defer func() {
|
defer func() {
|
||||||
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
@ -1181,7 +1160,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
|
|
||||||
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
|
||||||
defer func() {
|
defer func() {
|
||||||
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
@ -1245,7 +1223,6 @@ var _ = common.SIGDescribe("LoadBalancers ESIPP [Slow]", func() {
|
|||||||
|
|
||||||
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
|
|
||||||
defer func() {
|
defer func() {
|
||||||
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user