Merge pull request #59941 from agau4779/gce-external-lb-tests
Automatic merge from submit-queue (batch tested with PRs 60324, 60269, 59771, 60314, 59941). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. [GCE] Refactor ExternalLoadBalancer Tests **What this PR does / why we need it**: - Refactors the ExternalLoadBalancer tests to use the generated GCE mock instead of FakeCloudAddressService, FakeCloudForwardingRuleService. - Adds hooks to populate NetworkTier on Alpha resources - Moves shared code to top of the external loadbalancer test file - Moves NetworkTier into a constants file at the cloud level, so it is more easily called in subpackages **Special notes for your reviewer**: ```release-note NONE ```
This commit is contained in:
@@ -36,6 +36,7 @@ go_library(
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/cloudprovider:go_default_library",
|
||||
"//pkg/cloudprovider/providers/gce:go_default_library",
|
||||
"//pkg/cloudprovider/providers/gce/cloud:go_default_library",
|
||||
"//pkg/controller/endpoint:go_default_library",
|
||||
"//pkg/kubelet/apis:go_default_library",
|
||||
"//pkg/master/ports:go_default_library",
|
||||
|
@@ -29,6 +29,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud"
|
||||
"k8s.io/kubernetes/test/e2e/framework"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
@@ -75,12 +76,12 @@ var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
|
||||
By("creating a Service of type LoadBalancer using the standard network tier")
|
||||
svc := jig.CreateTCPServiceOrFail(ns, func(svc *v1.Service) {
|
||||
svc.Spec.Type = v1.ServiceTypeLoadBalancer
|
||||
setNetworkTier(svc, gcecloud.NetworkTierAnnotationStandard)
|
||||
setNetworkTier(svc, gcecloud.NetworkTierAnnotationStandard.ToGCEValue())
|
||||
})
|
||||
// Verify that service has been updated properly.
|
||||
svcTier, err := gcecloud.GetServiceNetworkTier(svc)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(svcTier).To(Equal(gcecloud.NetworkTierStandard))
|
||||
Expect(svcTier).To(Equal(cloud.NetworkTierStandard))
|
||||
// Record the LB name for test cleanup.
|
||||
serviceLBNames = append(serviceLBNames, cloudprovider.GetLoadBalancerName(svc))
|
||||
|
||||
@@ -95,7 +96,7 @@ var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
|
||||
// Verify that service has been updated properly.
|
||||
svcTier, err = gcecloud.GetServiceNetworkTier(svc)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(svcTier).To(Equal(gcecloud.NetworkTierDefault))
|
||||
Expect(svcTier).To(Equal(cloud.NetworkTierDefault))
|
||||
|
||||
// Wait until the ingress IP changes. Each tier has its own pool of
|
||||
// IPs, so changing tiers implies changing IPs.
|
||||
@@ -106,7 +107,7 @@ var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
|
||||
requestedAddrName := fmt.Sprintf("e2e-ext-lb-net-tier-%s", framework.RunId)
|
||||
gceCloud, err := framework.GetGCECloud()
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
requestedIP, err := reserveAlphaRegionalAddress(gceCloud, requestedAddrName, gcecloud.NetworkTierStandard)
|
||||
requestedIP, err := reserveAlphaRegionalAddress(gceCloud, requestedAddrName, cloud.NetworkTierStandard)
|
||||
Expect(err).NotTo(HaveOccurred(), "failed to reserve a STANDARD tiered address")
|
||||
defer func() {
|
||||
if requestedAddrName != "" {
|
||||
@@ -122,13 +123,13 @@ var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
|
||||
By("updating the Service to use the standard tier with a requested IP")
|
||||
svc = jig.UpdateServiceOrFail(ns, svc.Name, func(svc *v1.Service) {
|
||||
svc.Spec.LoadBalancerIP = requestedIP
|
||||
setNetworkTier(svc, gcecloud.NetworkTierAnnotationStandard)
|
||||
setNetworkTier(svc, gcecloud.NetworkTierAnnotationStandard.ToGCEValue())
|
||||
})
|
||||
// Verify that service has been updated properly.
|
||||
Expect(svc.Spec.LoadBalancerIP).To(Equal(requestedIP))
|
||||
svcTier, err = gcecloud.GetServiceNetworkTier(svc)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(svcTier).To(Equal(gcecloud.NetworkTierStandard))
|
||||
Expect(svcTier).To(Equal(cloud.NetworkTierStandard))
|
||||
|
||||
// Wait until the ingress IP changes and verifies the LB.
|
||||
ingressIP = waitAndVerifyLBWithTier(jig, ns, svcName, ingressIP, createTimeout, lagTimeout)
|
||||
@@ -171,7 +172,7 @@ func waitAndVerifyLBWithTier(jig *framework.ServiceTestJig, ns, svcName, existin
|
||||
return ingressIP
|
||||
}
|
||||
|
||||
func getLBNetworkTierByIP(ip string) (gcecloud.NetworkTier, error) {
|
||||
func getLBNetworkTierByIP(ip string) (cloud.NetworkTier, error) {
|
||||
var rule *computealpha.ForwardingRule
|
||||
// Retry a few times to tolerate flakes.
|
||||
err := wait.PollImmediate(5*time.Second, 15*time.Second, func() (bool, error) {
|
||||
@@ -185,7 +186,7 @@ func getLBNetworkTierByIP(ip string) (gcecloud.NetworkTier, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return gcecloud.NetworkTierGCEValueToType(rule.NetworkTier), nil
|
||||
return cloud.NetworkTierGCEValueToType(rule.NetworkTier), nil
|
||||
}
|
||||
|
||||
func getGCEForwardingRuleByIP(ip string) (*computealpha.ForwardingRule, error) {
|
||||
@@ -223,7 +224,7 @@ func clearNetworkTier(svc *v1.Service) {
|
||||
|
||||
// TODO: add retries if this turns out to be flaky.
|
||||
// TODO(#51665): remove this helper function once Network Tiers becomes beta.
|
||||
func reserveAlphaRegionalAddress(cloud *gcecloud.GCECloud, name string, netTier gcecloud.NetworkTier) (string, error) {
|
||||
func reserveAlphaRegionalAddress(cloud *gcecloud.GCECloud, name string, netTier cloud.NetworkTier) (string, error) {
|
||||
alphaAddr := &computealpha.Address{
|
||||
Name: name,
|
||||
NetworkTier: netTier.ToGCEValue(),
|
||||
|
Reference in New Issue
Block a user