Use LaunchTemplate id instead of name for ASGs

This commit is contained in:
Ciprian Hacman 2020-11-07 09:57:41 +02:00
parent 7b04b97999
commit ed37c34a92
4 changed files with 17 additions and 14 deletions

View File

@ -18,7 +18,6 @@ package mockautoscaling
import (
"fmt"
"hash/crc64"
"time"
"github.com/aws/aws-sdk-go/aws"
@ -78,8 +77,10 @@ func (m *MockAutoscaling) CreateAutoScalingGroup(input *autoscaling.CreateAutoSc
}
if input.LaunchTemplate != nil {
launchTemplateCrc := crc64.Checksum([]byte(aws.StringValue(input.LaunchTemplate.LaunchTemplateName)), crc64.MakeTable(crc64.ECMA))
g.LaunchTemplate.LaunchTemplateId = aws.String(fmt.Sprintf("lt-%x", launchTemplateCrc))
g.LaunchTemplate.LaunchTemplateName = input.AutoScalingGroupName
if g.LaunchTemplate.LaunchTemplateId == nil {
return nil, fmt.Errorf("AutoScalingGroup has LaunchTemplate without ID")
}
}
for _, tag := range input.Tags {

View File

@ -55,6 +55,7 @@ type MockEC2 struct {
InternetGateways map[string]*ec2.InternetGateway
launchTemplateNumber int
LaunchTemplates map[string]*launchTemplateInfo
NatGateways map[string]*ec2.NatGateway

View File

@ -87,8 +87,9 @@ func (m *MockEC2) CreateLaunchTemplate(request *ec2.CreateLaunchTemplateInput) (
klog.V(2).Infof("Mock CreateLaunchTemplate: %v", request)
crc := crc64.Checksum([]byte(aws.StringValue(request.LaunchTemplateName)), crc64.MakeTable(crc64.ECMA))
id := fmt.Sprintf("lt-%x", crc)
m.launchTemplateNumber++
n := m.launchTemplateNumber
id := fmt.Sprintf("lt-%d", n)
if m.LaunchTemplates == nil {
m.LaunchTemplates = make(map[string]*launchTemplateInfo)

View File

@ -366,7 +366,7 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
},
LaunchTemplate: &autoscaling.LaunchTemplate{
LaunchTemplateSpecification: &autoscaling.LaunchTemplateSpecification{
LaunchTemplateName: e.LaunchTemplate.Name,
LaunchTemplateId: e.LaunchTemplate.ID,
Version: aws.String("$Latest"),
},
},
@ -379,7 +379,7 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
}
} else if e.LaunchTemplate != nil {
request.LaunchTemplate = &autoscaling.LaunchTemplateSpecification{
LaunchTemplateName: e.LaunchTemplate.Name,
LaunchTemplateId: e.LaunchTemplate.ID,
Version: aws.String("$Latest"),
}
} else {
@ -446,7 +446,7 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
if changes.LaunchTemplate != nil {
spec := &autoscaling.LaunchTemplateSpecification{
LaunchTemplateName: changes.LaunchTemplate.Name,
LaunchTemplateId: changes.LaunchTemplate.ID,
Version: aws.String("$Latest"),
}
if e.UseMixedInstancesPolicy() {
@ -481,7 +481,7 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
if setup(request).LaunchTemplate == nil {
setup(request).LaunchTemplate = &autoscaling.LaunchTemplate{
LaunchTemplateSpecification: &autoscaling.LaunchTemplateSpecification{
LaunchTemplateName: changes.LaunchTemplate.Name,
LaunchTemplateId: changes.LaunchTemplate.ID,
Version: aws.String("$Latest"),
},
}