Fix various NLB nits

This commit is contained in:
Ciprian Hacman 2020-11-10 17:14:28 +02:00
parent 0072abd1a2
commit 0934374fe2
4 changed files with 9 additions and 8 deletions

View File

@ -364,6 +364,8 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
t.InstanceProtection = ig.Spec.InstanceProtection t.InstanceProtection = ig.Spec.InstanceProtection
t.TargetGroups = []*awstasks.TargetGroup{}
// When Spotinst Elastigroups are used, there is no need to create // When Spotinst Elastigroups are used, there is no need to create
// a separate task for the attachment of the load balancer since this // a separate task for the attachment of the load balancer since this
// is already done as part of the Elastigroup's creation, if needed. // is already done as part of the Elastigroup's creation, if needed.
@ -384,7 +386,7 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
} }
} }
for _, extLB := range ig.Spec.ExternalLoadBalancers { for i, extLB := range ig.Spec.ExternalLoadBalancers {
if extLB.LoadBalancerName != nil { if extLB.LoadBalancerName != nil {
lb := &awstasks.ClassicLoadBalancer{ lb := &awstasks.ClassicLoadBalancer{
Name: extLB.LoadBalancerName, Name: extLB.LoadBalancerName,
@ -397,7 +399,7 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
if extLB.TargetGroupARN != nil { if extLB.TargetGroupARN != nil {
tg := &awstasks.TargetGroup{ tg := &awstasks.TargetGroup{
Name: extLB.TargetGroupARN, Name: fi.String(fmt.Sprintf("external-tg-%d", i)),
ARN: extLB.TargetGroupARN, ARN: extLB.TargetGroupARN,
Shared: fi.Bool(true), Shared: fi.Bool(true),
} }

View File

@ -162,6 +162,7 @@ func (e *AutoscalingGroup) Find(c *fi.Context) (*AutoscalingGroup, error) {
} }
} }
actual.TargetGroups = []*TargetGroup{}
if len(g.TargetGroupARNs) > 0 { if len(g.TargetGroupARNs) > 0 {
actualTGs := make([]*TargetGroup, 0) actualTGs := make([]*TargetGroup, 0)
for _, tg := range g.TargetGroupARNs { for _, tg := range g.TargetGroupARNs {
@ -643,7 +644,7 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
} }
if detachTGRequest != nil { if detachTGRequest != nil {
if _, err := t.Cloud.Autoscaling().DetachLoadBalancerTargetGroups(detachTGRequest); err != nil { if _, err := t.Cloud.Autoscaling().DetachLoadBalancerTargetGroups(detachTGRequest); err != nil {
return fmt.Errorf("error attaching TargetGroups: %v", err) return fmt.Errorf("error detaching TargetGroups: %v", err)
} }
} }
if attachTGRequest != nil { if attachTGRequest != nil {

View File

@ -362,6 +362,8 @@ func (e *NetworkLoadBalancer) Find(c *fi.Context) (*NetworkLoadBalancer, error)
return nil, fmt.Errorf("error querying for NLB listeners :%v", err) return nil, fmt.Errorf("error querying for NLB listeners :%v", err)
} }
actual.Listeners = []*NetworkLoadBalancerListener{}
actual.TargetGroups = []*TargetGroup{}
for _, l := range response.Listeners { for _, l := range response.Listeners {
actualListener := &NetworkLoadBalancerListener{} actualListener := &NetworkLoadBalancerListener{}
actualListener.Port = int(aws.Int64Value(l.Port)) actualListener.Port = int(aws.Int64Value(l.Port))

View File

@ -60,8 +60,7 @@ func (e *TargetGroup) Find(c *fi.Context) (*TargetGroup, error) {
request := &elbv2.DescribeTargetGroupsInput{} request := &elbv2.DescribeTargetGroupsInput{}
if e.ARN != nil { if e.ARN != nil {
request.TargetGroupArns = []*string{e.ARN} request.TargetGroupArns = []*string{e.ARN}
} } else if e.Name != nil {
if e.Name != nil {
request.Names = []*string{e.Name} request.Names = []*string{e.Name}
} }
@ -200,9 +199,6 @@ type OrderTargetGroupsByName []*TargetGroup
func (a OrderTargetGroupsByName) Len() int { return len(a) } func (a OrderTargetGroupsByName) Len() int { return len(a) }
func (a OrderTargetGroupsByName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a OrderTargetGroupsByName) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a OrderTargetGroupsByName) Less(i, j int) bool { func (a OrderTargetGroupsByName) Less(i, j int) bool {
if a[i].ARN != nil || a[j].ARN != nil {
return fi.StringValue(a[i].ARN) < fi.StringValue(a[j].ARN)
}
return fi.StringValue(a[i].Name) < fi.StringValue(a[j].Name) return fi.StringValue(a[i].Name) < fi.StringValue(a[j].Name)
} }