@@ -65,28 +65,28 @@ func defaultSubnetsResolveOptions() SubnetsResolveOptions {
6565
6666type SubnetsResolveOption func (opts * SubnetsResolveOptions )
6767
68- // WithSubnetsResolveLBType generates a option that configures LBType.
68+ // WithSubnetsResolveLBType generates an option that configures LBType.
6969func WithSubnetsResolveLBType (lbType elbv2model.LoadBalancerType ) SubnetsResolveOption {
7070return func (opts * SubnetsResolveOptions ) {
7171opts .LBType = lbType
7272}
7373}
7474
75- // WithSubnetsResolveLBScheme generates a option that configures LBScheme.
75+ // WithSubnetsResolveLBScheme generates an option that configures LBScheme.
7676func WithSubnetsResolveLBScheme (lbScheme elbv2model.LoadBalancerScheme ) SubnetsResolveOption {
7777return func (opts * SubnetsResolveOptions ) {
7878opts .LBScheme = lbScheme
7979}
8080}
8181
82- // WithSubnetsResolveAvailableIPAddressCount generates a option that configures AvailableIPAddressCount.
82+ // WithSubnetsResolveAvailableIPAddressCount generates an option that configures AvailableIPAddressCount.
8383func WithSubnetsResolveAvailableIPAddressCount (AvailableIPAddressCount int64 ) SubnetsResolveOption {
8484return func (opts * SubnetsResolveOptions ) {
8585opts .AvailableIPAddressCount = AvailableIPAddressCount
8686}
8787}
8888
89- // WithSubnetsResolveAvailableIPAddressCount generates a option that configures AvailableIPAddressCount .
89+ // WithSubnetsClusterTagCheck generates an option that configures SubnetsClusterTagCheck .
9090func WithSubnetsClusterTagCheck (SubnetsClusterTagCheck bool ) SubnetsResolveOption {
9191return func (opts * SubnetsResolveOptions ) {
9292opts .SubnetsClusterTagCheck = SubnetsClusterTagCheck
@@ -96,10 +96,12 @@ func WithSubnetsClusterTagCheck(SubnetsClusterTagCheck bool) SubnetsResolveOptio
9696// SubnetsResolver is responsible for resolve EC2 Subnets for Load Balancers.
9797type SubnetsResolver interface {
9898// ResolveViaDiscovery resolve subnets by auto discover matching subnets.
99- // * if SubnetClusterTagCheck is enabled, the discovered subnets within clusterVPC must contain the "kubernetes.io/cluster/<cluster-name>" tag
99+ // Discovery candidate includes all subnets within the clusterVPC. Additionally,
100100// * for internet-facing Load Balancer, "kubernetes.io/role/elb" tag must presents.
101101// * for internal Load Balancer, "kubernetes.io/role/internal-elb" tag must presents.
102- // * if multiple subnets are found for specific AZ, one subnet is chosen based on the lexical order of subnetID.
102+ // * if SubnetClusterTagCheck is enabled, subnets within the clusterVPC must contain no cluster tag at all
103+ // or contain the "kubernetes.io/cluster/<cluster_name>" tag for the current cluster
104+ // If multiple subnets are found for specific AZ, one subnet is chosen based on the lexical order of subnetID.
103105ResolveViaDiscovery (ctx context.Context , opts ... SubnetsResolveOption ) ([]* ec2sdk.Subnet , error )
104106
105107// ResolveViaNameOrIDSlice resolve subnets using subnet name or ID.
@@ -351,6 +353,7 @@ func (r *defaultSubnetsResolver) checkSubnetHasClusterTag(subnet *ec2sdk.Subnet)
351353// checkSubnetIsNotTaggedForOtherClusters checks whether the subnet is tagged for the current cluster
352354// or it doesn't contain the cluster tag at all. If the subnet contains a tag for other clusters, then
353355// this check returns false so that the subnet does not used for the load balancer.
356+ // it returns true if the subnetsClusterTagCheck is disabled
354357func (r * defaultSubnetsResolver ) checkSubnetIsNotTaggedForOtherClusters (subnet * ec2sdk.Subnet , subnetsClusterTagCheck bool ) bool {
355358if ! subnetsClusterTagCheck {
356359return true
0 commit comments