@@ -3665,6 +3665,27 @@ func buildListener(port v1.ServicePort, annotations map[string]string, sslPorts
3665
3665
return listener , nil
3666
3666
}
3667
3667
3668
+ func (c * Cloud ) getSubnetCidrs (subnetIDs []string ) ([]string , error ) {
3669
+ request := & ec2.DescribeSubnetsInput {}
3670
+ for _ , subnetID := range subnetIDs {
3671
+ request .SubnetIds = append (request .SubnetIds , aws .String (subnetID ))
3672
+ }
3673
+
3674
+ subnets , err := c .ec2 .DescribeSubnets (request )
3675
+ if err != nil {
3676
+ return nil , fmt .Errorf ("error querying Subnet for ELB: %q" , err )
3677
+ }
3678
+ if len (subnets ) != len (subnetIDs ) {
3679
+ return nil , fmt .Errorf ("error querying Subnet for ELB, got %d subnets for %v" , len (subnets ), subnetIDs )
3680
+ }
3681
+
3682
+ cidrs := make ([]string , 0 , len (subnets ))
3683
+ for _ , subnet := range subnets {
3684
+ cidrs = append (cidrs , aws .StringValue (subnet .CidrBlock ))
3685
+ }
3686
+ return cidrs , nil
3687
+ }
3688
+
3668
3689
// EnsureLoadBalancer implements LoadBalancer.EnsureLoadBalancer
3669
3690
func (c * Cloud ) EnsureLoadBalancer (ctx context.Context , clusterName string , apiService * v1.Service , nodes []* v1.Node ) (* v1.LoadBalancerStatus , error ) {
3670
3691
annotations := apiService .Annotations
@@ -3796,6 +3817,12 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS
3796
3817
return nil , err
3797
3818
}
3798
3819
3820
+ subnetCidrs , err := c .getSubnetCidrs (subnetIDs )
3821
+ if err != nil {
3822
+ klog .Errorf ("Error getting subnet cidrs: %q" , err )
3823
+ return nil , err
3824
+ }
3825
+
3799
3826
sourceRangeCidrs := []string {}
3800
3827
for cidr := range sourceRanges {
3801
3828
sourceRangeCidrs = append (sourceRangeCidrs , cidr )
@@ -3804,7 +3831,7 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS
3804
3831
sourceRangeCidrs = append (sourceRangeCidrs , "0.0.0.0/0" )
3805
3832
}
3806
3833
3807
- err = c .updateInstanceSecurityGroupsForNLB (loadBalancerName , instances , sourceRangeCidrs , v2Mappings )
3834
+ err = c .updateInstanceSecurityGroupsForNLB (loadBalancerName , instances , subnetCidrs , sourceRangeCidrs , v2Mappings )
3808
3835
if err != nil {
3809
3836
klog .Warningf ("Error opening ingress rules for the load balancer to the instances: %q" , err )
3810
3837
return nil , err
@@ -4381,7 +4408,7 @@ func (c *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName strin
4381
4408
}
4382
4409
}
4383
4410
4384
- return c .updateInstanceSecurityGroupsForNLB (loadBalancerName , nil , nil , nil )
4411
+ return c .updateInstanceSecurityGroupsForNLB (loadBalancerName , nil , nil , nil , nil )
4385
4412
}
4386
4413
4387
4414
lb , err := c .describeLoadBalancer (loadBalancerName )
0 commit comments