Skip to content

Commit 40b9fb2

Browse files
committed
fix bug in subnet resolver
1 parent de50bdd commit 40b9fb2

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

pkg/networking/subnet_resolver.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -458,20 +458,20 @@ func (r *defaultSubnetsResolver) chooseSubnetsPerAZ(subnets []ec2types.Subnet) [
458458
for az, azSubnets := range subnetsByAZ {
459459
if len(azSubnets) == 1 {
460460
chosenSubnets = append(chosenSubnets, azSubnets[0])
461-
} else if len(subnets) > 1 {
462-
sort.Slice(subnets, func(i, j int) bool {
463-
subnetIHasCurrentClusterTag := r.isSubnetContainsCurrentClusterTag(subnets[i])
464-
subnetJHasCurrentClusterTag := r.isSubnetContainsCurrentClusterTag(subnets[j])
461+
} else if len(azSubnets) > 1 {
462+
sort.Slice(azSubnets, func(i, j int) bool {
463+
subnetIHasCurrentClusterTag := r.isSubnetContainsCurrentClusterTag(azSubnets[i])
464+
subnetJHasCurrentClusterTag := r.isSubnetContainsCurrentClusterTag(azSubnets[j])
465465
if subnetIHasCurrentClusterTag && (!subnetJHasCurrentClusterTag) {
466466
return true
467467
} else if (!subnetIHasCurrentClusterTag) && subnetJHasCurrentClusterTag {
468468
return false
469469
}
470-
return awssdk.ToString(subnets[i].SubnetId) < awssdk.ToString(subnets[j].SubnetId)
470+
return awssdk.ToString(azSubnets[i].SubnetId) < awssdk.ToString(azSubnets[j].SubnetId)
471471
})
472472
r.logger.V(1).Info("multiple subnets in the same AvailabilityZone", "AvailabilityZone", az,
473-
"chosen", subnets[0].SubnetId, "ignored", extractSubnetIDs(subnets[1:]))
474-
chosenSubnets = append(chosenSubnets, subnets[0])
473+
"chosen", azSubnets[0].SubnetId, "ignored", extractSubnetIDs(azSubnets[1:]))
474+
chosenSubnets = append(chosenSubnets, azSubnets[0])
475475
}
476476
}
477477
sortSubnetsByID(chosenSubnets)
@@ -528,9 +528,9 @@ func (r *defaultSubnetsResolver) isSubnetContainsSufficientIPAddresses(subnet ec
528528
// subnets passed-in must be non-empty
529529
func (r *defaultSubnetsResolver) validateSubnetsAZExclusivity(subnets []ec2types.Subnet) error {
530530
subnetsByAZ := mapSDKSubnetsByAZ(subnets)
531-
for az, subnets := range subnetsByAZ {
532-
if len(subnets) > 1 {
533-
return fmt.Errorf("multiple subnets in same Availability Zone %v: %v", az, extractSubnetIDs(subnets))
531+
for az, azSubnets := range subnetsByAZ {
532+
if len(azSubnets) > 1 {
533+
return fmt.Errorf("multiple subnets in same Availability Zone %v: %v", az, extractSubnetIDs(azSubnets))
534534
}
535535
}
536536
return nil

pkg/networking/subnet_resolver_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,6 +2353,13 @@ func Test_defaultSubnetsResolver_chooseSubnetsPerAZ(t *testing.T) {
23532353
AvailableIpAddressCount: awssdk.Int32(8),
23542354
VpcId: awssdk.String("vpc-dummy"),
23552355
},
2356+
{
2357+
SubnetId: awssdk.String("subnet-4"),
2358+
AvailabilityZone: awssdk.String("us-west-2b"),
2359+
AvailabilityZoneId: awssdk.String("usw2-az2"),
2360+
AvailableIpAddressCount: awssdk.Int32(8),
2361+
VpcId: awssdk.String("vpc-dummy"),
2362+
},
23562363
},
23572364
want: []ec2types.Subnet{
23582365
{
@@ -2401,6 +2408,13 @@ func Test_defaultSubnetsResolver_chooseSubnetsPerAZ(t *testing.T) {
24012408
AvailableIpAddressCount: awssdk.Int32(8),
24022409
VpcId: awssdk.String("vpc-dummy"),
24032410
},
2411+
{
2412+
SubnetId: awssdk.String("subnet-4"),
2413+
AvailabilityZone: awssdk.String("us-west-2b"),
2414+
AvailabilityZoneId: awssdk.String("usw2-az2"),
2415+
AvailableIpAddressCount: awssdk.Int32(8),
2416+
VpcId: awssdk.String("vpc-dummy"),
2417+
},
24042418
},
24052419
want: []ec2types.Subnet{
24062420
{

0 commit comments

Comments
 (0)