From 7497edaf7c40123a0ce72b2dbc727537e9e8b723 Mon Sep 17 00:00:00 2001 From: Peter Rifel Date: Thu, 29 Oct 2020 10:46:29 -0500 Subject: [PATCH] Lookup LoadBalancerName when only the LB task name is known --- pkg/model/awsmodel/autoscalinggroup.go | 5 ++++- .../fi/cloudup/awstasks/autoscalinggroup.go | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/pkg/model/awsmodel/autoscalinggroup.go b/pkg/model/awsmodel/autoscalinggroup.go index 692ff7db21a60..0cc8d7e3387ce 100644 --- a/pkg/model/awsmodel/autoscalinggroup.go +++ b/pkg/model/awsmodel/autoscalinggroup.go @@ -364,7 +364,10 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil for _, extLB := range ig.Spec.ExternalLoadBalancers { if extLB.LoadBalancerName != nil { - t.LoadBalancers = append(t.LoadBalancers, &awstasks.LoadBalancer{Name: extLB.LoadBalancerName}) + t.LoadBalancers = append(t.LoadBalancers, &awstasks.LoadBalancer{ + Name: extLB.LoadBalancerName, + LoadBalancerName: extLB.LoadBalancerName, + }) c.AddTask(&awstasks.LoadBalancer{ Name: extLB.LoadBalancerName, diff --git a/upup/pkg/fi/cloudup/awstasks/autoscalinggroup.go b/upup/pkg/fi/cloudup/awstasks/autoscalinggroup.go index e97235691da70..69506fb4d11f6 100644 --- a/upup/pkg/fi/cloudup/awstasks/autoscalinggroup.go +++ b/upup/pkg/fi/cloudup/awstasks/autoscalinggroup.go @@ -117,7 +117,11 @@ func (e *AutoscalingGroup) Find(c *fi.Context) (*AutoscalingGroup, error) { } for _, lb := range g.LoadBalancerNames { - actual.LoadBalancers = append(actual.LoadBalancers, &LoadBalancer{Name: aws.String(*lb)}) + + actual.LoadBalancers = append(actual.LoadBalancers, &LoadBalancer{ + Name: aws.String(*lb), + LoadBalancerName: aws.String(*lb), + }) } for _, tg := range g.TargetGroupARNs { @@ -277,7 +281,18 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos } for _, k := range e.LoadBalancers { - request.LoadBalancerNames = append(request.LoadBalancerNames, k.GetName()) + if k.LoadBalancerName == nil { + lbDesc, err := FindLoadBalancerByNameTag(t.Cloud, fi.StringValue(k.GetName())) + if err != nil { + return err + } + if lbDesc == nil { + return fmt.Errorf("could not find load balancer to attach") + } + request.LoadBalancerNames = append(request.LoadBalancerNames, lbDesc.LoadBalancerName) + } else { + request.LoadBalancerNames = append(request.LoadBalancerNames, k.LoadBalancerName) + } } for _, tg := range e.TargetGroups {