@@ -3675,6 +3675,27 @@ func buildListener(port v1.ServicePort, annotations map[string]string, sslPorts
3675
3675
return listener , nil
3676
3676
}
3677
3677
3678
+ func (c * Cloud ) getSubnetCidrs (subnetIDs []string ) ([]string , error ) {
3679
+ request := & ec2.DescribeSubnetsInput {}
3680
+ for _ , subnetID := range subnetIDs {
3681
+ request .SubnetIds = append (request .SubnetIds , aws .String (subnetID ))
3682
+ }
3683
+
3684
+ subnets , err := c .ec2 .DescribeSubnets (request )
3685
+ if err != nil {
3686
+ return nil , fmt .Errorf ("error querying Subnet for ELB: %q" , err )
3687
+ }
3688
+ if len (subnets ) != len (subnetIDs ) {
3689
+ return nil , fmt .Errorf ("error querying Subnet for ELB, got %d subnets for %v" , len (subnets ), subnetIDs )
3690
+ }
3691
+
3692
+ cidrs := make ([]string , 0 , len (subnets ))
3693
+ for _ , subnet := range subnets {
3694
+ cidrs = append (cidrs , aws .StringValue (subnet .CidrBlock ))
3695
+ }
3696
+ return cidrs , nil
3697
+ }
3698
+
3678
3699
// EnsureLoadBalancer implements LoadBalancer.EnsureLoadBalancer
3679
3700
func (c * Cloud ) EnsureLoadBalancer (ctx context.Context , clusterName string , apiService * v1.Service , nodes []* v1.Node ) (* v1.LoadBalancerStatus , error ) {
3680
3701
annotations := apiService .Annotations
@@ -3804,6 +3825,12 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS
3804
3825
return nil , err
3805
3826
}
3806
3827
3828
+ subnetCidrs , err := c .getSubnetCidrs (subnetIDs )
3829
+ if err != nil {
3830
+ klog .Errorf ("Error getting subnet cidrs: %q" , err )
3831
+ return nil , err
3832
+ }
3833
+
3807
3834
sourceRangeCidrs := []string {}
3808
3835
for cidr := range sourceRanges {
3809
3836
sourceRangeCidrs = append (sourceRangeCidrs , cidr )
@@ -3812,7 +3839,7 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS
3812
3839
sourceRangeCidrs = append (sourceRangeCidrs , "0.0.0.0/0" )
3813
3840
}
3814
3841
3815
- err = c .updateInstanceSecurityGroupsForNLB (loadBalancerName , instances , sourceRangeCidrs , v2Mappings )
3842
+ err = c .updateInstanceSecurityGroupsForNLB (loadBalancerName , instances , subnetCidrs , sourceRangeCidrs , v2Mappings )
3816
3843
if err != nil {
3817
3844
klog .Warningf ("Error opening ingress rules for the load balancer to the instances: %q" , err )
3818
3845
return nil , err
@@ -4383,7 +4410,7 @@ func (c *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName strin
4383
4410
}
4384
4411
}
4385
4412
4386
- return c .updateInstanceSecurityGroupsForNLB (loadBalancerName , nil , nil , nil )
4413
+ return c .updateInstanceSecurityGroupsForNLB (loadBalancerName , nil , nil , nil , nil )
4387
4414
}
4388
4415
4389
4416
lb , err := c .describeLoadBalancer (loadBalancerName )
0 commit comments