mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
GCE load balancer: unit test for ensuring instance groups
while using multiple IGs with rbs alpha feature gate enabled
This commit is contained in:
parent
f3e8c3b30d
commit
187ad4695e
@ -55,7 +55,7 @@ func (g *Cloud) DeleteInstanceGroup(name string, zone string) error {
|
|||||||
func (g *Cloud) FilterInstanceGroupsByName(name, zone string) ([]*compute.InstanceGroup, error) {
|
func (g *Cloud) FilterInstanceGroupsByName(name, zone string) ([]*compute.InstanceGroup, error) {
|
||||||
ctx, cancel := cloud.ContextWithCallTimeout()
|
ctx, cancel := cloud.ContextWithCallTimeout()
|
||||||
defer cancel()
|
defer cancel()
|
||||||
mc := newInstanceGroupMetricContext("list", zone)
|
mc := newInstanceGroupMetricContext("filter", zone)
|
||||||
v, err := g.c.InstanceGroups().List(ctx, zone, filter.Regexp("name", name))
|
v, err := g.c.InstanceGroups().List(ctx, zone, filter.Regexp("name", name))
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@ -165,12 +166,39 @@ func TestEnsureInternalInstanceGroupsLimit(t *testing.T) {
|
|||||||
igName := makeInstanceGroupName(vals.ClusterID)
|
igName := makeInstanceGroupName(vals.ClusterID)
|
||||||
_, err = gce.ensureInternalInstanceGroups(igName, nodes)
|
_, err = gce.ensureInternalInstanceGroups(igName, nodes)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
instances, err := gce.ListInstancesInInstanceGroup(igName, vals.ZoneName, allInstances)
|
instances, err := gce.ListInstancesInInstanceGroup(igName, vals.ZoneName, allInstances)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, maxInstancesPerInstanceGroup, len(instances))
|
assert.Equal(t, maxInstancesPerInstanceGroup, len(instances))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEnsureMultipleInstanceGroups(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
vals := DefaultTestClusterValues()
|
||||||
|
gce, err := fakeGCECloud(vals)
|
||||||
|
require.NoError(t, err)
|
||||||
|
gce.AlphaFeatureGate = NewAlphaFeatureGate([]string{AlphaFeatureNetLBRbs})
|
||||||
|
|
||||||
|
nodes, err := createAndInsertNodes(gce, []string{"n1"}, vals.ZoneName)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
baseName := makeInstanceGroupName(vals.ClusterID)
|
||||||
|
clusterIGs := []string{baseName, baseName + "-1", baseName + "-2", baseName + "-3"}
|
||||||
|
for _, igName := range append(clusterIGs, "zz-another-ig", "k8s-ig--cluster2-id") {
|
||||||
|
ig := &compute.InstanceGroup{Name: igName}
|
||||||
|
err := gce.CreateInstanceGroup(ig, vals.ZoneName)
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
igsFromCloud, err := gce.ensureInternalInstanceGroups(baseName, nodes)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Len(t, igsFromCloud, len(clusterIGs), "Incorrect number of Instance Groups")
|
||||||
|
sort.Strings(igsFromCloud)
|
||||||
|
for i, igName := range clusterIGs {
|
||||||
|
assert.True(t, strings.HasSuffix(igsFromCloud[i], igName))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestEnsureInternalLoadBalancer(t *testing.T) {
|
func TestEnsureInternalLoadBalancer(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user