Skip to content

Commit 3c159bb

Browse files
authored
Merge pull request kubernetes#88532 from zioproto/drop-network-tier-alpha-gate
Drop the alpha gating for Network Service Tier configuration support
2 parents ba35704 + 326c25f commit 3c159bb

File tree

9 files changed

+19
-86
lines changed

9 files changed

+19
-86
lines changed

staging/src/k8s.io/legacy-cloud-providers/gce/gce_addresses.go

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
"k8s.io/klog"
2525

26-
computealpha "google.golang.org/api/compute/v0.alpha"
2726
computebeta "google.golang.org/api/compute/v0.beta"
2827
compute "google.golang.org/api/compute/v1"
2928

@@ -80,15 +79,6 @@ func (g *Cloud) ReserveRegionAddress(addr *compute.Address, region string) error
8079
return mc.Observe(g.c.Addresses().Insert(ctx, meta.RegionalKey(addr.Name, region), addr))
8180
}
8281

83-
// ReserveAlphaRegionAddress creates an Alpha, regional address.
84-
func (g *Cloud) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error {
85-
ctx, cancel := cloud.ContextWithCallTimeout()
86-
defer cancel()
87-
88-
mc := newAddressMetricContext("reserve", region)
89-
return mc.Observe(g.c.AlphaAddresses().Insert(ctx, meta.RegionalKey(addr.Name, region), addr))
90-
}
91-
9282
// ReserveBetaRegionAddress creates a beta region address
9383
func (g *Cloud) ReserveBetaRegionAddress(addr *computebeta.Address, region string) error {
9484
ctx, cancel := cloud.ContextWithCallTimeout()
@@ -117,16 +107,6 @@ func (g *Cloud) GetRegionAddress(name, region string) (*compute.Address, error)
117107
return v, mc.Observe(err)
118108
}
119109

120-
// GetAlphaRegionAddress returns the Alpha, regional address by name.
121-
func (g *Cloud) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error) {
122-
ctx, cancel := cloud.ContextWithCallTimeout()
123-
defer cancel()
124-
125-
mc := newAddressMetricContext("get", region)
126-
v, err := g.c.AlphaAddresses().Get(ctx, meta.RegionalKey(name, region))
127-
return v, mc.Observe(err)
128-
}
129-
130110
// GetBetaRegionAddress returns the beta region address by name
131111
func (g *Cloud) GetBetaRegionAddress(name, region string) (*computebeta.Address, error) {
132112
ctx, cancel := cloud.ContextWithCallTimeout()
@@ -185,14 +165,12 @@ func (g *Cloud) GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta
185165
return nil, makeGoogleAPINotFoundError(fmt.Sprintf("Address with IP %q was not found in region %q", ipAddress, region))
186166
}
187167

188-
// TODO(#51665): retire this function once Network Tiers becomes Beta in GCP.
189168
func (g *Cloud) getNetworkTierFromAddress(name, region string) (string, error) {
190-
if !g.AlphaFeatureGate.Enabled(AlphaFeatureNetworkTiers) {
191-
return cloud.NetworkTierDefault.ToGCEValue(), nil
192-
}
193-
addr, err := g.GetAlphaRegionAddress(name, region)
169+
170+
addr, err := g.GetRegionAddress(name, region)
194171
if err != nil {
195-
return handleAlphaNetworkTierGetError(err)
172+
// Can't get the network tier, just return an error.
173+
return "", err
196174
}
197175
return addr.NetworkTier, nil
198176
}

staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,6 @@ limitations under the License.
1919
package gce
2020

2121
const (
22-
// AlphaFeatureNetworkTiers allows Services backed by a GCP load balancer to choose
23-
// what network tier to use. Currently supports "Standard" and "Premium" (default).
24-
//
25-
// alpha: v1.8 (for Services)
26-
AlphaFeatureNetworkTiers = "NetworkTiers"
2722
// AlphaFeatureILBSubsets allows InternalLoadBalancer services to include a subset
2823
// of cluster nodes as backends instead of all nodes.
2924
AlphaFeatureILBSubsets = "ILBSubsets"

staging/src/k8s.io/legacy-cloud-providers/gce/gce_forwardingrule.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,11 @@ func (g *Cloud) DeleteRegionForwardingRule(name, region string) error {
182182
return mc.Observe(g.c.ForwardingRules().Delete(ctx, meta.RegionalKey(name, region)))
183183
}
184184

185-
// TODO(#51665): retire this function once Network Tiers becomes Beta in GCP.
186185
func (g *Cloud) getNetworkTierFromForwardingRule(name, region string) (string, error) {
187-
if !g.AlphaFeatureGate.Enabled(AlphaFeatureNetworkTiers) {
188-
return cloud.NetworkTierDefault.ToGCEValue(), nil
189-
}
190-
fwdRule, err := g.GetAlphaRegionForwardingRule(name, region)
186+
fwdRule, err := g.GetRegionForwardingRule(name, region)
191187
if err != nil {
192-
return handleAlphaNetworkTierGetError(err)
188+
// Can't get the network tier, just return an error.
189+
return "", err
193190
}
194191
return fwdRule.NetworkTier, nil
195192
}

staging/src/k8s.io/legacy-cloud-providers/gce/gce_interfaces.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ limitations under the License.
1919
package gce
2020

2121
import (
22-
computealpha "google.golang.org/api/compute/v0.alpha"
2322
computebeta "google.golang.org/api/compute/v0.beta"
2423
compute "google.golang.org/api/compute/v1"
2524
)
@@ -34,16 +33,11 @@ type CloudAddressService interface {
3433
DeleteRegionAddress(name, region string) error
3534
// TODO: Mock Global endpoints
3635

37-
// Alpha API.
38-
GetAlphaRegionAddress(name, region string) (*computealpha.Address, error)
39-
ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error
40-
4136
// Beta API
4237
ReserveBetaRegionAddress(address *computebeta.Address, region string) error
4338
GetBetaRegionAddress(name string, region string) (*computebeta.Address, error)
4439
GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta.Address, error)
4540

46-
// TODO(#51665): Remove this once the Network Tiers becomes Alpha in GCP.
4741
getNetworkTierFromAddress(name, region string) (string, error)
4842
}
4943

@@ -54,10 +48,6 @@ type CloudForwardingRuleService interface {
5448
CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error
5549
DeleteRegionForwardingRule(name, region string) error
5650

57-
// Alpha API.
58-
GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error)
59-
CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error
60-
61-
// Needed for the Alpha "Network Tiers" feature.
51+
// Needed for the "Network Tiers" feature.
6252
getNetworkTierFromForwardingRule(name, region string) (string, error)
6353
}

staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ func (g *Cloud) ensureExternalLoadBalancer(clusterName string, clusterID string,
8181
return nil, err
8282
}
8383
klog.V(4).Infof("ensureExternalLoadBalancer(%s): Desired network tier %q.", lbRefStr, netTier)
84-
if g.AlphaFeatureGate.Enabled(AlphaFeatureNetworkTiers) {
85-
g.deleteWrongNetworkTieredResources(loadBalancerName, lbRefStr, netTier)
86-
}
84+
g.deleteWrongNetworkTieredResources(loadBalancerName, lbRefStr, netTier)
8785

8886
// Check if the forwarding rule exists, and if so, what its IP is.
8987
fwdRuleExists, fwdRuleNeedsUpdate, fwdRuleIP, err := g.forwardingRuleNeedsUpdate(loadBalancerName, g.region, requestedIP, ports)
@@ -1072,9 +1070,6 @@ func ensureStaticIP(s CloudAddressService, name, serviceName, region, existingIP
10721070
}
10731071

10741072
func (g *Cloud) getServiceNetworkTier(svc *v1.Service) (cloud.NetworkTier, error) {
1075-
if !g.AlphaFeatureGate.Enabled(AlphaFeatureNetworkTiers) {
1076-
return cloud.NetworkTierDefault, nil
1077-
}
10781073
tier, err := GetServiceNetworkTier(svc)
10791074
if err != nil {
10801075
// Returns an error if the annotation is invalid.

staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,6 @@ func TestDeleteAddressWithWrongTier(t *testing.T) {
233233
s, err := fakeGCECloud(DefaultTestClusterValues())
234234
require.NoError(t, err)
235235

236-
// Enable the cloud.NetworkTiers feature
237-
s.AlphaFeatureGate.features[AlphaFeatureNetworkTiers] = true
238-
239236
for desc, tc := range map[string]struct {
240237
addrName string
241238
netTier cloud.NetworkTier
@@ -401,8 +398,6 @@ func TestLoadBalancerWrongTierResourceDeletion(t *testing.T) {
401398
gce, err := fakeGCECloud(vals)
402399
require.NoError(t, err)
403400

404-
// Enable the cloud.NetworkTiers feature
405-
gce.AlphaFeatureGate.features[AlphaFeatureNetworkTiers] = true
406401
svc := fakeLoadbalancerService("")
407402
svc.Annotations = map[string]string{NetworkTierAnnotationKey: "Premium"}
408403

@@ -460,8 +455,6 @@ func TestEnsureExternalLoadBalancerFailsIfInvalidNetworkTier(t *testing.T) {
460455
nodes, err := createAndInsertNodes(gce, nodeNames, vals.ZoneName)
461456
require.NoError(t, err)
462457

463-
// Enable the cloud.NetworkTiers feature
464-
gce.AlphaFeatureGate.features[AlphaFeatureNetworkTiers] = true
465458
svc := fakeLoadbalancerService("")
466459
svc.Annotations = map[string]string{NetworkTierAnnotationKey: wrongTier}
467460

@@ -834,7 +827,6 @@ func TestDeleteWrongNetworkTieredResourcesSucceedsWhenNotFound(t *testing.T) {
834827
gce, err := fakeGCECloud(DefaultTestClusterValues())
835828
require.NoError(t, err)
836829

837-
gce.AlphaFeatureGate.features[AlphaFeatureNetworkTiers] = true
838830
assert.Nil(t, gce.deleteWrongNetworkTieredResources("Wrong_LB_Name", "", cloud.NetworkTier("")))
839831
}
840832

staging/src/k8s.io/legacy-cloud-providers/gce/gce_util.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -281,18 +281,6 @@ func makeGoogleAPINotFoundError(message string) error {
281281
return &googleapi.Error{Code: http.StatusNotFound, Message: message}
282282
}
283283

284-
// TODO(#51665): Remove this once Network Tiers becomes Beta in GCP.
285-
func handleAlphaNetworkTierGetError(err error) (string, error) {
286-
if isForbidden(err) {
287-
// Network tier is still an Alpha feature in GCP, and not every project
288-
// is whitelisted to access the API. If we cannot access the API, just
289-
// assume the tier is premium.
290-
return cloud.NetworkTierDefault.ToGCEValue(), nil
291-
}
292-
// Can't get the network tier, just return an error.
293-
return "", err
294-
}
295-
296284
// containsCIDR returns true if outer contains inner.
297285
func containsCIDR(outer, inner *net.IPNet) bool {
298286
return outer.Contains(firstIPInRange(inner)) && outer.Contains(lastIPInRange(inner))

test/e2e/network/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ go_library(
8888
"//vendor/github.com/miekg/dns:go_default_library",
8989
"//vendor/github.com/onsi/ginkgo:go_default_library",
9090
"//vendor/github.com/onsi/gomega:go_default_library",
91-
"//vendor/google.golang.org/api/compute/v0.alpha:go_default_library",
9291
"//vendor/google.golang.org/api/compute/v1:go_default_library",
9392
"//vendor/k8s.io/utils/net:go_default_library",
9493
],

test/e2e/network/network_tiers.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"net/http"
2222
"time"
2323

24-
computealpha "google.golang.org/api/compute/v0.alpha"
24+
compute "google.golang.org/api/compute/v1"
2525

2626
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
2727
v1 "k8s.io/api/core/v1"
@@ -37,7 +37,7 @@ import (
3737
"github.com/onsi/ginkgo"
3838
)
3939

40-
var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
40+
var _ = SIGDescribe("Services [Slow]", func() {
4141
f := framework.NewDefaultFramework("services")
4242

4343
var cs clientset.Interface
@@ -109,7 +109,7 @@ var _ = SIGDescribe("Services [Feature:GCEAlphaFeature][Slow]", func() {
109109
requestedAddrName := fmt.Sprintf("e2e-ext-lb-net-tier-%s", framework.RunID)
110110
gceCloud, err := gce.GetGCECloud()
111111
framework.ExpectNoError(err)
112-
requestedIP, err := reserveAlphaRegionalAddress(gceCloud, requestedAddrName, cloud.NetworkTierStandard)
112+
requestedIP, err := reserveRegionalAddress(gceCloud, requestedAddrName, cloud.NetworkTierStandard)
113113
framework.ExpectNoError(err, "failed to reserve a STANDARD tiered address")
114114
defer func() {
115115
if requestedAddrName != "" {
@@ -156,7 +156,7 @@ func waitAndVerifyLBWithTier(jig *e2eservice.TestJig, existingIP string, waitTim
156156
}
157157
// If the IP has been used by previous test, sometimes we get the lingering
158158
// 404 errors even after the LB is long gone. Tolerate and retry until the
159-
// the new LB is fully established since this feature is still Alpha in GCP.
159+
// the new LB is fully established.
160160
e2eservice.TestReachableHTTPWithRetriableErrorCodes(ingressIP, svcPort, []int{http.StatusNotFound}, checkTimeout)
161161

162162
// Verify the network tier matches the desired.
@@ -170,7 +170,7 @@ func waitAndVerifyLBWithTier(jig *e2eservice.TestJig, existingIP string, waitTim
170170
}
171171

172172
func getLBNetworkTierByIP(ip string) (cloud.NetworkTier, error) {
173-
var rule *computealpha.ForwardingRule
173+
var rule *compute.ForwardingRule
174174
// Retry a few times to tolerate flakes.
175175
err := wait.PollImmediate(5*time.Second, 15*time.Second, func() (bool, error) {
176176
obj, err := getGCEForwardingRuleByIP(ip)
@@ -186,12 +186,12 @@ func getLBNetworkTierByIP(ip string) (cloud.NetworkTier, error) {
186186
return cloud.NetworkTierGCEValueToType(rule.NetworkTier), nil
187187
}
188188

189-
func getGCEForwardingRuleByIP(ip string) (*computealpha.ForwardingRule, error) {
189+
func getGCEForwardingRuleByIP(ip string) (*compute.ForwardingRule, error) {
190190
cloud, err := gce.GetGCECloud()
191191
if err != nil {
192192
return nil, err
193193
}
194-
ruleList, err := cloud.ListAlphaRegionForwardingRules(cloud.Region())
194+
ruleList, err := cloud.ListRegionForwardingRules(cloud.Region())
195195
if err != nil {
196196
return nil, err
197197
}
@@ -220,14 +220,13 @@ func clearNetworkTier(svc *v1.Service) {
220220
}
221221

222222
// TODO: add retries if this turns out to be flaky.
223-
// TODO(#51665): remove this helper function once Network Tiers becomes beta.
224-
func reserveAlphaRegionalAddress(cloud *gcecloud.Cloud, name string, netTier cloud.NetworkTier) (string, error) {
225-
alphaAddr := &computealpha.Address{
223+
func reserveRegionalAddress(cloud *gcecloud.Cloud, name string, netTier cloud.NetworkTier) (string, error) {
224+
Addr := &compute.Address{
226225
Name: name,
227226
NetworkTier: netTier.ToGCEValue(),
228227
}
229228

230-
if err := cloud.ReserveAlphaRegionAddress(alphaAddr, cloud.Region()); err != nil {
229+
if err := cloud.ReserveRegionAddress(Addr, cloud.Region()); err != nil {
231230
return "", err
232231
}
233232

0 commit comments

Comments
 (0)