Merge pull request #73594 from masterzen/bugfix/73479-nlb-target-groups-tags

Fix #73479 AWS NLB target groups missing tags
This commit is contained in:
Kubernetes Prow Robot 2019-02-07 17:12:10 -08:00 committed by GitHub
commit af17925f68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -143,10 +143,7 @@ func (c *Cloud) ensureLoadBalancerv2(namespacedName types.NamespacedName, loadBa
loadBalancer = createResponse.LoadBalancers[0] loadBalancer = createResponse.LoadBalancers[0]
// Create Target Groups // Create Target Groups
addTagsInput := &elbv2.AddTagsInput{ resourceArns := make([]*string, 0, len(mappings))
ResourceArns: []*string{},
Tags: []*elbv2.Tag{},
}
for i := range mappings { for i := range mappings {
// It is easier to keep track of updates by having possibly // It is easier to keep track of updates by having possibly
@ -155,22 +152,30 @@ func (c *Cloud) ensureLoadBalancerv2(namespacedName types.NamespacedName, loadBa
if err != nil { if err != nil {
return nil, fmt.Errorf("Error creating listener: %q", err) return nil, fmt.Errorf("Error creating listener: %q", err)
} }
addTagsInput.ResourceArns = append(addTagsInput.ResourceArns, targetGroupArn) resourceArns = append(resourceArns, targetGroupArn)
} }
// Add tags to targets // Add tags to targets
targetGroupTags := make([]*elbv2.Tag, 0, len(tags))
for k, v := range tags { for k, v := range tags {
addTagsInput.Tags = append(addTagsInput.Tags, &elbv2.Tag{ targetGroupTags = append(targetGroupTags, &elbv2.Tag{
Key: aws.String(k), Value: aws.String(v), Key: aws.String(k), Value: aws.String(v),
}) })
} }
if len(addTagsInput.ResourceArns) > 0 && len(addTagsInput.Tags) > 0 { if len(resourceArns) > 0 && len(targetGroupTags) > 0 {
_, err = c.elbv2.AddTags(addTagsInput) // elbv2.AddTags doesn't allow to tag multiple resources at once
for _, arn := range resourceArns {
_, err = c.elbv2.AddTags(&elbv2.AddTagsInput{
ResourceArns: []*string{arn},
Tags: targetGroupTags,
})
if err != nil { if err != nil {
return nil, fmt.Errorf("Error adding tags after creating Load Balancer: %q", err) return nil, fmt.Errorf("Error adding tags after creating Load Balancer: %q", err)
} }
} }
}
} else { } else {
// TODO: Sync internal vs non-internal // TODO: Sync internal vs non-internal