Skip to content

Commit ee664e5

Browse files
committed
add support on NLB side
1 parent ea23d0c commit ee664e5

File tree

6 files changed

+16
-5
lines changed

6 files changed

+16
-5
lines changed

controllers/service/service_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func NewServiceReconciler(cloud aws.Cloud, k8sClient client.Client, eventRecorde
4343
elbv2TaggingManager := elbv2.NewDefaultTaggingManager(cloud.ELBV2(), cloud.VpcID(), controllerConfig.FeatureGates, logger)
4444
serviceUtils := service.NewServiceUtils(annotationParser, serviceFinalizer, controllerConfig.ServiceConfig.LoadBalancerClass, controllerConfig.FeatureGates)
4545
modelBuilder := service.NewDefaultModelBuilder(annotationParser, subnetsResolver, vpcInfoProvider, cloud.VpcID(), trackingProvider,
46-
elbv2TaggingManager, controllerConfig.ClusterName, controllerConfig.DefaultTags, controllerConfig.ExternalManagedTags, controllerConfig.DefaultSSLPolicy, controllerConfig.FeatureGates.Enabled(config.EnableIPTargetType), serviceUtils)
46+
elbv2TaggingManager, controllerConfig.FeatureGates, controllerConfig.ClusterName, controllerConfig.DefaultTags, controllerConfig.ExternalManagedTags, controllerConfig.DefaultSSLPolicy, controllerConfig.FeatureGates.Enabled(config.EnableIPTargetType), serviceUtils)
4747
stackMarshaller := deploy.NewDefaultStackMarshaller()
4848
stackDeployer := deploy.NewDefaultStackDeployer(cloud, k8sClient, networkingSGManager, networkingSGReconciler, controllerConfig, serviceTagPrefix, logger)
4949
return &serviceReconciler{

pkg/networking/subnet_resolver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ func WithSubnetsClusterTagCheck(SubnetsClusterTagCheck bool) SubnetsResolveOptio
9797
type SubnetsResolver interface {
9898
// ResolveViaDiscovery resolve subnets by auto discover matching subnets.
9999
// Discovery candidate includes all subnets within the clusterVPC. Additionally,
100-
// * for internet-facing Load Balancer, "kubernetes.io/role/elb" tag must presents.
101-
// * for internal Load Balancer, "kubernetes.io/role/internal-elb" tag must presents.
100+
// * for internet-facing Load Balancer, "kubernetes.io/role/elb" tag must be present.
101+
// * for internal Load Balancer, "kubernetes.io/role/internal-elb" tag must be present.
102102
// * if SubnetClusterTagCheck is enabled, subnets within the clusterVPC must contain no cluster tag at all
103103
// or contain the "kubernetes.io/cluster/<cluster_name>" tag for the current cluster
104104
// If multiple subnets are found for specific AZ, one subnet is chosen based on the lexical order of subnetID.

pkg/service/model_build_load_balancer.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/aws/aws-sdk-go/service/ec2"
1818
"github.com/pkg/errors"
1919
"sigs.k8s.io/aws-load-balancer-controller/pkg/annotations"
20+
"sigs.k8s.io/aws-load-balancer-controller/pkg/config"
2021
"sigs.k8s.io/aws-load-balancer-controller/pkg/deploy/tracking"
2122
elbv2model "sigs.k8s.io/aws-load-balancer-controller/pkg/model/elbv2"
2223
"sigs.k8s.io/aws-load-balancer-controller/pkg/networking"
@@ -282,11 +283,13 @@ func (t *defaultModelBuildTask) buildLoadBalancerSubnets(ctx context.Context, sc
282283
networking.WithSubnetsResolveLBType(elbv2model.LoadBalancerTypeNetwork),
283284
networking.WithSubnetsResolveLBScheme(scheme),
284285
networking.WithSubnetsResolveAvailableIPAddressCount(minimalAvailableIPAddressCount),
286+
networking.WithSubnetsClusterTagCheck(t.featureGates.Enabled(config.SubnetsClusterTagCheck)),
285287
)
286288
}
287289
return t.subnetsResolver.ResolveViaDiscovery(ctx,
288290
networking.WithSubnetsResolveLBType(elbv2model.LoadBalancerTypeNetwork),
289291
networking.WithSubnetsResolveLBScheme(scheme),
292+
networking.WithSubnetsClusterTagCheck(t.featureGates.Enabled(config.SubnetsClusterTagCheck)),
290293
)
291294
}
292295

pkg/service/model_build_load_balancer_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
corev1 "k8s.io/api/core/v1"
1818
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1919
"sigs.k8s.io/aws-load-balancer-controller/pkg/annotations"
20+
"sigs.k8s.io/aws-load-balancer-controller/pkg/config"
2021
elbv2deploy "sigs.k8s.io/aws-load-balancer-controller/pkg/deploy/elbv2"
2122
"sigs.k8s.io/aws-load-balancer-controller/pkg/deploy/tracking"
2223
"sigs.k8s.io/aws-load-balancer-controller/pkg/model/elbv2"
@@ -760,6 +761,7 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
760761

761762
clusterName := "cluster-name"
762763
trackingProvider := tracking.NewDefaultProvider("ingress.k8s.aws", clusterName)
764+
featureGates := config.NewFeatureGates()
763765

764766
builder := &defaultModelBuildTask{
765767
clusterName: clusterName,
@@ -769,6 +771,7 @@ func Test_defaultModelBuilderTask_buildLoadBalancerSubnets(t *testing.T) {
769771
subnetsResolver: subnetsResolver,
770772
trackingProvider: trackingProvider,
771773
elbv2TaggingManager: elbv2TaggingManager,
774+
featureGates: featureGates,
772775
}
773776
got, err := builder.buildLoadBalancerSubnets(context.Background(), tt.scheme)
774777
if tt.wantErr != nil {

pkg/service/model_builder.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/aws/aws-sdk-go/service/ec2"
1111
corev1 "k8s.io/api/core/v1"
1212
"sigs.k8s.io/aws-load-balancer-controller/pkg/annotations"
13+
"sigs.k8s.io/aws-load-balancer-controller/pkg/config"
1314
elbv2deploy "sigs.k8s.io/aws-load-balancer-controller/pkg/deploy/elbv2"
1415
"sigs.k8s.io/aws-load-balancer-controller/pkg/deploy/tracking"
1516
"sigs.k8s.io/aws-load-balancer-controller/pkg/k8s"
@@ -35,14 +36,15 @@ type ModelBuilder interface {
3536
// NewDefaultModelBuilder construct a new defaultModelBuilder
3637
func NewDefaultModelBuilder(annotationParser annotations.Parser, subnetsResolver networking.SubnetsResolver,
3738
vpcInfoProvider networking.VPCInfoProvider, vpcID string, trackingProvider tracking.Provider,
38-
elbv2TaggingManager elbv2deploy.TaggingManager, clusterName string, defaultTags map[string]string,
39+
elbv2TaggingManager elbv2deploy.TaggingManager, featureGates config.FeatureGates, clusterName string, defaultTags map[string]string,
3940
externalManagedTags []string, defaultSSLPolicy string, enableIPTargetType bool, serviceUtils ServiceUtils) *defaultModelBuilder {
4041
return &defaultModelBuilder{
4142
annotationParser: annotationParser,
4243
subnetsResolver: subnetsResolver,
4344
vpcInfoProvider: vpcInfoProvider,
4445
trackingProvider: trackingProvider,
4546
elbv2TaggingManager: elbv2TaggingManager,
47+
featureGates: featureGates,
4648
serviceUtils: serviceUtils,
4749
clusterName: clusterName,
4850
vpcID: vpcID,
@@ -61,6 +63,7 @@ type defaultModelBuilder struct {
6163
vpcInfoProvider networking.VPCInfoProvider
6264
trackingProvider tracking.Provider
6365
elbv2TaggingManager elbv2deploy.TaggingManager
66+
featureGates config.FeatureGates
6467
serviceUtils ServiceUtils
6568

6669
clusterName string
@@ -81,6 +84,7 @@ func (b *defaultModelBuilder) Build(ctx context.Context, service *corev1.Service
8184
vpcInfoProvider: b.vpcInfoProvider,
8285
trackingProvider: b.trackingProvider,
8386
elbv2TaggingManager: b.elbv2TaggingManager,
87+
featureGates: b.featureGates,
8488
serviceUtils: b.serviceUtils,
8589
enableIPTargetType: b.enableIPTargetType,
8690

@@ -131,6 +135,7 @@ type defaultModelBuildTask struct {
131135
vpcInfoProvider networking.VPCInfoProvider
132136
trackingProvider tracking.Provider
133137
elbv2TaggingManager elbv2deploy.TaggingManager
138+
featureGates config.FeatureGates
134139
serviceUtils ServiceUtils
135140
enableIPTargetType bool
136141

pkg/service/model_builder_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2770,7 +2770,7 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
27702770
} else {
27712771
enableIPTargetType = *tt.enableIPTargetType
27722772
}
2773-
builder := NewDefaultModelBuilder(annotationParser, subnetsResolver, vpcInfoProvider, "vpc-xxx", trackingProvider, elbv2TaggingManager,
2773+
builder := NewDefaultModelBuilder(annotationParser, subnetsResolver, vpcInfoProvider, "vpc-xxx", trackingProvider, elbv2TaggingManager, featureGates,
27742774
"my-cluster", nil, nil, "ELBSecurityPolicy-2016-08", enableIPTargetType, serviceUtils)
27752775
ctx := context.Background()
27762776
stack, _, err := builder.Build(ctx, tt.svc)

0 commit comments

Comments
 (0)