Skip to content

Commit

Permalink
Merge pull request kubernetes#16324 from justinsb/nlb_task_does_not_n…
Browse files Browse the repository at this point in the history
…eed_targetgroups_afaict

refactor: Drop TargetGroups from NetworkLoadBalancer task
  • Loading branch information
k8s-ci-robot authored Feb 5, 2024
2 parents 61842d1 + bd8cce0 commit 4092202
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 62 deletions.
7 changes: 0 additions & 7 deletions pkg/model/awsmodel/api_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,6 @@ func (b *APILoadBalancerBuilder) Build(c *fi.CloudupModelBuilderContext) error {
b.LinkToELBSecurityGroup("api"),
},
SubnetMappings: nlbSubnetMappings,
TargetGroups: make([]*awstasks.TargetGroup, 0),

Tags: tags,
WellKnownServices: []wellknownservices.WellKnownService{wellknownservices.KubeAPIServer},
Expand Down Expand Up @@ -323,8 +322,6 @@ func (b *APILoadBalancerBuilder) Build(c *fi.CloudupModelBuilderContext) error {
}

c.AddTask(tg)

nlb.TargetGroups = append(nlb.TargetGroups, tg)
}

if b.Cluster.UsesNoneDNS() {
Expand All @@ -349,8 +346,6 @@ func (b *APILoadBalancerBuilder) Build(c *fi.CloudupModelBuilderContext) error {
}

c.AddTask(tg)

nlb.TargetGroups = append(nlb.TargetGroups, tg)
}

if lbSpec.SSLCertificate != "" {
Expand All @@ -373,9 +368,7 @@ func (b *APILoadBalancerBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Shared: fi.PtrTo(false),
}
c.AddTask(secondaryTG)
nlb.TargetGroups = append(nlb.TargetGroups, secondaryTG)
}
sort.Stable(awstasks.OrderTargetGroupsByName(nlb.TargetGroups))
for _, nlbListener := range nlbListeners {
c.AddTask(nlbListener)
}
Expand Down
4 changes: 0 additions & 4 deletions pkg/model/awsmodel/bastion.go
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,6 @@ func (b *BastionModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
SecurityGroups: []*awstasks.SecurityGroup{
b.LinkToELBSecurityGroup("bastion"),
},
TargetGroups: make([]*awstasks.TargetGroup, 0),

Tags: tags,
VPC: b.LinkToVPC(),
Expand Down Expand Up @@ -394,9 +393,6 @@ func (b *BastionModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {

c.AddTask(tg)

nlb.TargetGroups = append(nlb.TargetGroups, tg)

sort.Stable(awstasks.OrderTargetGroupsByName(nlb.TargetGroups))
c.AddTask(nlb)
}

Expand Down
53 changes: 2 additions & 51 deletions upup/pkg/fi/cloudup/awstasks/network_load_balancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,8 @@ type NetworkLoadBalancer struct {

Type *string

VPC *VPC
TargetGroups []*TargetGroup
AccessLog *NetworkLoadBalancerAccessLog
VPC *VPC
AccessLog *NetworkLoadBalancerAccessLog

// WellKnownServices indicates which services are supported by this resource.
// This field is internal and is not rendered to the cloud.
Expand Down Expand Up @@ -196,7 +195,6 @@ func (e *NetworkLoadBalancer) getHostedZoneId() *string {
}

func (e *NetworkLoadBalancer) Find(c *fi.CloudupContext) (*NetworkLoadBalancer, error) {
ctx := c.Context()
cloud := c.T.Cloud.(awsup.AWSCloud)

lb, err := cloud.FindELBV2ByNameTag(e.Tags["Name"])
Expand Down Expand Up @@ -257,47 +255,6 @@ func (e *NetworkLoadBalancer) Find(c *fi.CloudupContext) (*NetworkLoadBalancer,
actual.SecurityGroups = append(actual.SecurityGroups, &SecurityGroup{ID: sg})
}

{
request := &elbv2.DescribeListenersInput{
LoadBalancerArn: loadBalancerArn,
}
var listeners []*elbv2.Listener
if err := cloud.ELBV2().DescribeListenersPagesWithContext(ctx, request, func(page *elbv2.DescribeListenersOutput, lastPage bool) bool {
listeners = append(listeners, page.Listeners...)
return true
}); err != nil {
return nil, fmt.Errorf("listing NLB listeners: %w", err)
}

actual.TargetGroups = []*TargetGroup{}
for _, l := range listeners {
// This will need to be rearranged when we recognized multiple listeners and target groups per NLB
if len(l.DefaultActions) > 0 {
targetGroupARN := l.DefaultActions[0].TargetGroupArn
if targetGroupARN != nil {
targetGroupName, err := awsup.GetTargetGroupNameFromARN(fi.ValueOf(targetGroupARN))
if err != nil {
return nil, err
}
actual.TargetGroups = append(actual.TargetGroups, &TargetGroup{ARN: targetGroupARN, Name: fi.PtrTo(targetGroupName)})

cloud := c.T.Cloud.(awsup.AWSCloud)
descResp, err := cloud.ELBV2().DescribeTargetGroups(&elbv2.DescribeTargetGroupsInput{
TargetGroupArns: []*string{targetGroupARN},
})
if err != nil {
return nil, fmt.Errorf("error querying for NLB listener target groups: %v", err)
}
if len(descResp.TargetGroups) != 1 {
return nil, fmt.Errorf("unexpected DescribeTargetGroups response: %v", descResp)
}
}
}
}
sort.Stable(OrderTargetGroupsByName(actual.TargetGroups))

}

{
lbAttributes, err := findNetworkLoadBalancerAttributes(cloud, aws.StringValue(loadBalancerArn))
if err != nil {
Expand Down Expand Up @@ -431,7 +388,6 @@ func (e *NetworkLoadBalancer) Run(c *fi.CloudupContext) error {
func (e *NetworkLoadBalancer) Normalize(c *fi.CloudupContext) error {
// We need to sort our arrays consistently, so we don't get spurious changes
sort.Stable(OrderSubnetMappingsByName(e.SubnetMappings))
sort.Stable(OrderTargetGroupsByName(e.TargetGroups))

e.IpAddressType = fi.PtrTo("dualstack")
for _, subnet := range e.SubnetMappings {
Expand Down Expand Up @@ -507,11 +463,6 @@ func (_ *NetworkLoadBalancer) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Ne
if e.LoadBalancerName == nil {
return fi.RequiredField("LoadBalancerName")
}
for _, tg := range e.TargetGroups {
if tg.ARN == nil {
return fmt.Errorf("missing required target group ARN for NLB creation %v", tg)
}
}

loadBalancerName = *e.LoadBalancerName

Expand Down

0 comments on commit 4092202

Please sign in to comment.