mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
GCE load balancer: skip instance group deletion
while using multiple IGs with rbs alpha feature gate enabled
This commit is contained in:
parent
187ad4695e
commit
f2e29bf4f0
@ -654,8 +654,10 @@ func (g *Cloud) ensureInternalInstanceGroupsDeleted(name string) error {
|
||||
|
||||
klog.V(2).Infof("ensureInternalInstanceGroupsDeleted(%v): attempting delete instance group in all %d zones", name, len(zones))
|
||||
for _, z := range zones {
|
||||
if err := g.DeleteInstanceGroup(name, z.Name); err != nil && !isNotFoundOrInUse(err) {
|
||||
return err
|
||||
if !g.AlphaFeatureGate.Enabled(AlphaFeatureNetLBRbs) {
|
||||
if err := g.DeleteInstanceGroup(name, z.Name); err != nil && !isNotFoundOrInUse(err) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
@ -553,6 +553,30 @@ func TestEnsureInternalLoadBalancerDeleted(t *testing.T) {
|
||||
assertInternalLbResourcesDeleted(t, gce, svc, vals, true)
|
||||
}
|
||||
|
||||
func TestSkipInstanceGroupDeletion(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
vals := DefaultTestClusterValues()
|
||||
gce, err := fakeGCECloud(vals)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
||||
svc := fakeLoadbalancerService(string(LBTypeInternal))
|
||||
svc, err = gce.client.CoreV1().Services(svc.Namespace).Create(context.TODO(), svc, metav1.CreateOptions{})
|
||||
require.NoError(t, err)
|
||||
_, err = createInternalLoadBalancer(gce, svc, nil, []string{"test-node-1"}, vals.ClusterName, vals.ClusterID, vals.ZoneName)
|
||||
assert.NoError(t, err)
|
||||
|
||||
gce.AlphaFeatureGate = NewAlphaFeatureGate([]string{AlphaFeatureNetLBRbs})
|
||||
err = gce.ensureInternalLoadBalancerDeleted(vals.ClusterName, vals.ClusterID, svc)
|
||||
assert.NoError(t, err)
|
||||
|
||||
igName := makeInstanceGroupName(vals.ClusterID)
|
||||
ig, err := gce.GetInstanceGroup(igName, vals.ZoneName)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, ig, "Instance group should not be deleted when flag 'NetLB_RBS' is present")
|
||||
}
|
||||
|
||||
func TestEnsureInternalLoadBalancerDeletedTwiceDoesNotError(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user