Skip to content

Commit 2b3f870

Browse files
authored
fix: EnablePrefixForIpv6SourceNat is only applicable to NLB (#3958)
1 parent 616e39b commit 2b3f870

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

pkg/deploy/elbv2/load_balancer_manager.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package elbv2
33
import (
44
"context"
55
"fmt"
6+
67
awssdk "github.com/aws/aws-sdk-go-v2/aws"
78
elbv2sdk "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2"
89
elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
@@ -179,14 +180,15 @@ func (m *defaultLoadBalancerManager) updateSDKLoadBalancerWithSubnetMappings(ctx
179180

180181
resLBEnablePrefixForIpv6SourceNatValue = string(resLB.Spec.EnablePrefixForIpv6SourceNat)
181182

182-
if desiredSubnets.Equal(currentSubnets) && desiredSubnetsSourceNATPrefixes.Equal(currentSubnetsSourceNATPrefixes) && sdkLBEnablePrefixForIpv6SourceNatValue == resLBEnablePrefixForIpv6SourceNatValue {
183+
if desiredSubnets.Equal(currentSubnets) && desiredSubnetsSourceNATPrefixes.Equal(currentSubnetsSourceNATPrefixes) && ((sdkLBEnablePrefixForIpv6SourceNatValue == resLBEnablePrefixForIpv6SourceNatValue) || (resLBEnablePrefixForIpv6SourceNatValue == "")) {
183184
return nil
184185
}
185-
186186
req := &elbv2sdk.SetSubnetsInput{
187-
LoadBalancerArn: sdkLB.LoadBalancer.LoadBalancerArn,
188-
SubnetMappings: buildSDKSubnetMappings(resLB.Spec.SubnetMappings),
189-
EnablePrefixForIpv6SourceNat: elbv2types.EnablePrefixForIpv6SourceNatEnum(resLBEnablePrefixForIpv6SourceNatValue),
187+
LoadBalancerArn: sdkLB.LoadBalancer.LoadBalancerArn,
188+
SubnetMappings: buildSDKSubnetMappings(resLB.Spec.SubnetMappings),
189+
}
190+
if resLB.Spec.Type == elbv2model.LoadBalancerTypeNetwork {
191+
req.EnablePrefixForIpv6SourceNat = elbv2types.EnablePrefixForIpv6SourceNatEnum(resLBEnablePrefixForIpv6SourceNatValue)
190192
}
191193
changeDesc := fmt.Sprintf("%v => %v", currentSubnets.List(), desiredSubnets.List())
192194
m.logger.Info("modifying loadBalancer subnetMappings",

pkg/deploy/elbv2/load_balancer_manager_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package elbv2
22

33
import (
44
"context"
5+
"testing"
6+
57
elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types"
68
"github.com/go-logr/logr"
79
"sigs.k8s.io/aws-load-balancer-controller/pkg/aws/services"
8-
"testing"
910

1011
awssdk "github.com/aws/aws-sdk-go-v2/aws"
1112
elbv2sdk "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2"
@@ -552,6 +553,7 @@ func Test_defaultLoadBalancerManager_updateSDKLoadBalancerWithSubnetMappings(t *
552553
resLB: &elbv2model.LoadBalancer{
553554
ResourceMeta: coremodel.NewResourceMeta(stack, "AWS::ElasticLoadBalancingV2::LoadBalancer", "id-1"),
554555
Spec: elbv2model.LoadBalancerSpec{
556+
Type: elbv2model.LoadBalancerTypeNetwork,
555557
EnablePrefixForIpv6SourceNat: enablePrefixForIpv6SourceNatOn,
556558
SubnetMappings: []elbv2model.SubnetMapping{
557559
{
@@ -591,6 +593,7 @@ func Test_defaultLoadBalancerManager_updateSDKLoadBalancerWithSubnetMappings(t *
591593
resLB: &elbv2model.LoadBalancer{
592594
ResourceMeta: coremodel.NewResourceMeta(stack, "AWS::ElasticLoadBalancingV2::LoadBalancer", "id-1"),
593595
Spec: elbv2model.LoadBalancerSpec{
596+
Type: elbv2model.LoadBalancerTypeNetwork,
594597
SubnetMappings: []elbv2model.SubnetMapping{
595598
{
596599
SubnetID: "subnet-A",

0 commit comments

Comments
 (0)