From 9a127347f2a2f51dabbd2f54182de1fb81aa0ce8 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Tue, 3 Dec 2019 13:26:57 -0500 Subject: [PATCH 1/2] Fix Handling of LaunchTemplate Versions for MixedInstancePolicy --- upup/pkg/fi/cloudup/awsup/aws_cloud.go | 37 +++++++++++++++----------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/upup/pkg/fi/cloudup/awsup/aws_cloud.go b/upup/pkg/fi/cloudup/awsup/aws_cloud.go index 2f8a48a5a9..7dcd2e5a32 100644 --- a/upup/pkg/fi/cloudup/awsup/aws_cloud.go +++ b/upup/pkg/fi/cloudup/awsup/aws_cloud.go @@ -591,25 +591,30 @@ func findAutoscalingGroupLaunchConfiguration(c AWSCloud, g *autoscaling.Group) ( if g.MixedInstancesPolicy != nil { if g.MixedInstancesPolicy.LaunchTemplate != nil { if g.MixedInstancesPolicy.LaunchTemplate.LaunchTemplateSpecification != nil { - // honestly!! - name = aws.StringValue(g.MixedInstancesPolicy.LaunchTemplate.LaunchTemplateSpecification.LaunchTemplateName) - request := &ec2.DescribeLaunchTemplateVersionsInput{ - LaunchTemplateName: &name, - } - - versions, err := c.EC2().DescribeLaunchTemplateVersions(request) - if err != nil { - return "", fmt.Errorf("error finding versions for launch template: %v", err) - } - var version string - for _, v := range versions.LaunchTemplateVersions { - if *v.DefaultVersion { - version = strconv.FormatInt(*v.VersionNumber, 10) - break + name = aws.StringValue(g.MixedInstancesPolicy.LaunchTemplate.LaunchTemplateSpecification.LaunchTemplateName) + //See what version the ASG is set to use + mixedVersion := aws.StringValue(g.MixedInstancesPolicy.LaunchTemplate.LaunchTemplateSpecification.Version) + //Correctly Handle Default and Latest Versions + if mixedVersion == "$Default" || mixedVersion == "$Latest" { + request := &ec2.DescribeLaunchTemplatesInput{ + LaunchTemplateNames: []*string{&name}, } + dltResponse, err := c.EC2().DescribeLaunchTemplates(request) + if err != nil { + return "", fmt.Errorf("error describing launch templates: %v", err) + } + launchTemplate := dltResponse.LaunchTemplates[0] + if mixedVersion == "$Default" { + version = strconv.FormatInt(*launchTemplate.DefaultVersionNumber, 10) + } else { + version = strconv.FormatInt(*launchTemplate.LatestVersionNumber, 10) + } + } else { + version = mixedVersion } - + klog.V(4).Infof("Launch Template Version Specified By ASG: %v", mixedVersion) + klog.V(4).Infof("Luanch Template Version we are using for compare: %v", version) if name != "" { launchTemplate := name + ":" + version return launchTemplate, nil From 44888cec220762de908a77780b46b7c80ea723e8 Mon Sep 17 00:00:00 2001 From: Ryan Bonham Date: Wed, 4 Dec 2019 10:06:04 -0500 Subject: [PATCH 2/2] Fix typo --- upup/pkg/fi/cloudup/awsup/aws_cloud.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upup/pkg/fi/cloudup/awsup/aws_cloud.go b/upup/pkg/fi/cloudup/awsup/aws_cloud.go index 7dcd2e5a32..4882ef4dee 100644 --- a/upup/pkg/fi/cloudup/awsup/aws_cloud.go +++ b/upup/pkg/fi/cloudup/awsup/aws_cloud.go @@ -614,7 +614,7 @@ func findAutoscalingGroupLaunchConfiguration(c AWSCloud, g *autoscaling.Group) ( version = mixedVersion } klog.V(4).Infof("Launch Template Version Specified By ASG: %v", mixedVersion) - klog.V(4).Infof("Luanch Template Version we are using for compare: %v", version) + klog.V(4).Infof("Launch Template Version we are using for compare: %v", version) if name != "" { launchTemplate := name + ":" + version return launchTemplate, nil