Skip to content

Commit

Permalink
update unit test for subnet_resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
oliviassss committed Jul 28, 2021
1 parent f190d04 commit 88108ef
Showing 1 changed file with 188 additions and 0 deletions.
188 changes: 188 additions & 0 deletions pkg/networking/subnet_resolver_test.go
Expand Up @@ -35,6 +35,9 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
type args struct {
opts []SubnetsResolveOption
}
const (
minimalAvailableIPAddressCount = int64(8)
)
tests := []struct {
name string
fields fields
Expand Down Expand Up @@ -501,6 +504,24 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
},
{
availabilityZoneIDs: []string{"usw2-az1"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az1": {
ZoneId: awssdk.String("usw2-az1"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
{
availabilityZoneIDs: []string{"usw2-az2"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az2": {
ZoneId: awssdk.String("usw2-az2"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
},
},
args: args{
Expand All @@ -522,6 +543,18 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
AvailabilityZoneId: awssdk.String("usw2-az2"),
VpcId: awssdk.String("vpc-1"),
},
{
SubnetId: awssdk.String("subnet-3"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
},
{
SubnetId: awssdk.String("subnet-4"),
AvailabilityZone: awssdk.String("us-west-2b"),
AvailabilityZoneId: awssdk.String("usw2-az2"),
VpcId: awssdk.String("vpc-1"),
},
},
},
{
Expand Down Expand Up @@ -662,6 +695,15 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
},
{
availabilityZoneIDs: []string{"usw2-az2"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az2": {
ZoneId: awssdk.String("usw2-az2"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
},
},
args: args{
Expand All @@ -671,6 +713,12 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
want: []*ec2sdk.Subnet{
{
SubnetId: awssdk.String("subnet-1"),
AvailabilityZone: awssdk.String("us-west-2b"),
AvailabilityZoneId: awssdk.String("usw2-az2"),
VpcId: awssdk.String("vpc-1"),
},
{
SubnetId: awssdk.String("subnet-2"),
AvailabilityZone: awssdk.String("us-west-2b"),
Expand Down Expand Up @@ -763,6 +811,15 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
fetchAZInfosCalls: []fetchAZInfosCall{
{
availabilityZoneIDs: []string{"usw2-az1"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az1": {
ZoneId: awssdk.String("usw2-az1"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
{
availabilityZoneIDs: []string{"usw2-az1"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
Expand Down Expand Up @@ -802,6 +859,18 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
},
{
SubnetId: awssdk.String("subnet-3"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
Tags: []*ec2sdk.Tag{
{
Key: awssdk.String("kubernetes.io/cluster/kube-cluster"),
Value: awssdk.String("owned"),
},
},
},
{
SubnetId: awssdk.String("subnet-5"),
AvailabilityZone: awssdk.String("us-west-2c"),
Expand Down Expand Up @@ -886,6 +955,125 @@ func Test_defaultSubnetsResolver_ResolveViaDiscovery(t *testing.T) {
},
},
},
{
name: "subnets with insufficient available ip addresses get ignored",
fields: fields{
vpcID: "vpc-1",
clusterName: "kube-cluster",
describeSubnetsAsListCalls: []describeSubnetsAsListCall{
{
input: &ec2sdk.DescribeSubnetsInput{
Filters: []*ec2sdk.Filter{
{
Name: awssdk.String("tag:kubernetes.io/role/elb"),
Values: awssdk.StringSlice([]string{"", "1"}),
},
{
Name: awssdk.String("vpc-id"),
Values: awssdk.StringSlice([]string{"vpc-1"}),
},
},
},
output: []*ec2sdk.Subnet{
{
SubnetId: awssdk.String("subnet-1"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(0),
},
{
SubnetId: awssdk.String("subnet-3"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(8),
},
{
SubnetId: awssdk.String("subnet-4"),
AvailabilityZone: awssdk.String("us-west-2b"),
AvailabilityZoneId: awssdk.String("usw2-az2"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(25),
},
{
SubnetId: awssdk.String("subnet-2"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(2),
},
{
SubnetId: awssdk.String("subnet-5"),
AvailabilityZone: awssdk.String("us-west-2c"),
AvailabilityZoneId: awssdk.String("usw2-az3"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(10),
},
},
},
},
fetchAZInfosCalls: []fetchAZInfosCall{
{
availabilityZoneIDs: []string{"usw2-az1"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az1": {
ZoneId: awssdk.String("usw2-az1"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
{
availabilityZoneIDs: []string{"usw2-az2"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az2": {
ZoneId: awssdk.String("usw2-az2"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
{
availabilityZoneIDs: []string{"usw2-az3"},
azInfoByAZID: map[string]ec2sdk.AvailabilityZone{
"usw2-az3": {
ZoneId: awssdk.String("usw2-az3"),
ZoneType: awssdk.String("availability-zone"),
},
},
},
},
},
args: args{
opts: []SubnetsResolveOption{
WithSubnetsResolveLBType(elbv2model.LoadBalancerTypeNetwork),
WithSubnetsResolveLBScheme(elbv2model.LoadBalancerSchemeInternetFacing),
WithSubnetsResolveAvailableIPAddressCount(minimalAvailableIPAddressCount),
},
},
want: []*ec2sdk.Subnet{
{
SubnetId: awssdk.String("subnet-3"),
AvailabilityZone: awssdk.String("us-west-2a"),
AvailabilityZoneId: awssdk.String("usw2-az1"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(8),
},
{
SubnetId: awssdk.String("subnet-4"),
AvailabilityZone: awssdk.String("us-west-2b"),
AvailabilityZoneId: awssdk.String("usw2-az2"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(25),
},
{
SubnetId: awssdk.String("subnet-5"),
AvailabilityZone: awssdk.String("us-west-2c"),
AvailabilityZoneId: awssdk.String("usw2-az3"),
VpcId: awssdk.String("vpc-1"),
AvailableIpAddressCount: awssdk.Int64(10),
},
},
},
}

for _, tt := range tests {
Expand Down

0 comments on commit 88108ef

Please sign in to comment.