mirror of https://github.com/kubernetes/kops.git
Parse TargetGrup names from ARNs
This commit is contained in:
parent
01a261cd35
commit
fdcc2607bf
|
|
@ -21,6 +21,7 @@ go_library(
|
|||
"//upup/pkg/fi:go_default_library",
|
||||
"//upup/pkg/fi/cloudup/awstasks:go_default_library",
|
||||
"//upup/pkg/fi/fitasks:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/aws/arn:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
"//vendor/k8s.io/klog/v2:go_default_library",
|
||||
|
|
|
|||
|
|
@ -18,8 +18,11 @@ package awsmodel
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws/arn"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/pkg/featureflag"
|
||||
|
|
@ -28,8 +31,6 @@ import (
|
|||
"k8s.io/kops/pkg/model/spotinstmodel"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awstasks"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -388,7 +389,7 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
|
|||
}
|
||||
}
|
||||
|
||||
for i, extLB := range ig.Spec.ExternalLoadBalancers {
|
||||
for _, extLB := range ig.Spec.ExternalLoadBalancers {
|
||||
if extLB.LoadBalancerName != nil {
|
||||
lb := &awstasks.ClassicLoadBalancer{
|
||||
Name: extLB.LoadBalancerName,
|
||||
|
|
@ -400,8 +401,16 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
|
|||
}
|
||||
|
||||
if extLB.TargetGroupARN != nil {
|
||||
parsed, err := arn.Parse(fi.StringValue(extLB.TargetGroupARN))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error parsing target grup ARN: %v", err)
|
||||
}
|
||||
resource := strings.Split(parsed.Resource, "/")
|
||||
if len(resource) != 3 || resource[0] != "targetgroup" {
|
||||
return nil, fmt.Errorf("error parsing target grup ARN resource: %q", parsed.Resource)
|
||||
}
|
||||
tg := &awstasks.TargetGroup{
|
||||
Name: fi.String(fmt.Sprintf("external-tg-%d", i)),
|
||||
Name: fi.String(resource[1]),
|
||||
ARN: extLB.TargetGroupARN,
|
||||
Shared: fi.Bool(true),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ go_library(
|
|||
"//util/pkg/maps:go_default_library",
|
||||
"//util/pkg/slice:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/aws/arn:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/service/autoscaling:go_default_library",
|
||||
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/arn"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
|
|
@ -163,7 +164,15 @@ func (e *AutoscalingGroup) Find(c *fi.Context) (*AutoscalingGroup, error) {
|
|||
if len(g.TargetGroupARNs) > 0 {
|
||||
actualTGs := make([]*TargetGroup, 0)
|
||||
for _, tg := range g.TargetGroupARNs {
|
||||
actualTGs = append(actualTGs, &TargetGroup{ARN: aws.String(*tg)})
|
||||
parsed, err := arn.Parse(fi.StringValue(tg))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error parsing target grup ARN: %v", err)
|
||||
}
|
||||
resource := strings.Split(parsed.Resource, "/")
|
||||
if len(resource) != 3 || resource[0] != "targetgroup" {
|
||||
return nil, fmt.Errorf("error parsing target grup ARN resource: %q", parsed.Resource)
|
||||
}
|
||||
actualTGs = append(actualTGs, &TargetGroup{ARN: aws.String(*tg), Name: aws.String(resource[1])})
|
||||
}
|
||||
targetGroups, err := ReconcileTargetGroups(c.Cloud.(awsup.AWSCloud), actualTGs, e.TargetGroups)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue