Skip to content

Commit b9dc5e1

Browse files
committed
call subnet auto discovery when lb scheme changes
1 parent e87a5e9 commit b9dc5e1

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

pkg/ingress/model_build_load_balancer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func (t *defaultModelBuildTask) buildLoadBalancerSubnetMappings(ctx context.Cont
220220
return nil, err
221221
}
222222

223-
if len(sdkLBs) == 0 {
223+
if len(sdkLBs) == 0 || (string(scheme) != awssdk.StringValue(sdkLBs[0].LoadBalancer.Scheme)) {
224224
chosenSubnets, err := t.subnetsResolver.ResolveViaDiscovery(ctx,
225225
networking.WithSubnetsResolveLBType(elbv2model.LoadBalancerTypeApplication),
226226
networking.WithSubnetsResolveLBScheme(scheme),

pkg/service/model_build_load_balancer.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ func (t *defaultModelBuildTask) buildLoadBalancerSubnets(ctx context.Context, sc
259259
if err != nil {
260260
return nil, err
261261
}
262-
if existingLB != nil {
262+
if existingLB != nil && string(scheme) == aws.StringValue(existingLB.LoadBalancer.Scheme) {
263263
availabilityZones := existingLB.LoadBalancer.AvailabilityZones
264264
subnetIDs := make([]string, 0, len(availabilityZones))
265265
for _, availabilityZone := range availabilityZones {
@@ -271,13 +271,14 @@ func (t *defaultModelBuildTask) buildLoadBalancerSubnets(ctx context.Context, sc
271271
networking.WithSubnetsResolveLBScheme(scheme),
272272
)
273273
}
274-
275274
// for internet-facing Load Balancers, the subnets mush have at least 8 available IP addresses;
276-
// for internal Load Balancers, this is only required if private ip address is not assigned
275+
// for internal Load Balancers, this is only required if private ip address is not assigned;
276+
// if the scheme would change, we will call subnet auto discovery
277277
var privateIpv4Addresses []string
278278
ipv4Configured := t.annotationParser.ParseStringSliceAnnotation(annotations.SvcLBSuffixPrivateIpv4Addresses, &privateIpv4Addresses, t.service.Annotations)
279279
if (scheme == elbv2model.LoadBalancerSchemeInternetFacing) ||
280-
((scheme == elbv2model.LoadBalancerSchemeInternal) && !ipv4Configured) {
280+
((scheme == elbv2model.LoadBalancerSchemeInternal) && !ipv4Configured) ||
281+
(existingLB != nil && string(scheme) != aws.StringValue(existingLB.LoadBalancer.Scheme)) {
281282
return t.subnetsResolver.ResolveViaDiscovery(ctx,
282283
networking.WithSubnetsResolveLBType(elbv2model.LoadBalancerTypeNetwork),
283284
networking.WithSubnetsResolveLBScheme(scheme),

0 commit comments

Comments
 (0)