Merge pull request #12932 from olemarkus/set-lt-default-version

Set the default LT version to the new LT version
This commit is contained in:
Kubernetes Prow Robot 2021-12-12 08:43:59 -08:00 committed by GitHub
commit 1d8530d8ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 3 deletions

View File

@ -155,17 +155,26 @@ func (m *MockEC2) CreateLaunchTemplateVersion(request *ec2.CreateLaunchTemplateV
name := request.LaunchTemplateName
found := false
for _, ltInfo := range m.LaunchTemplates {
var ltVersion int
var ltID string
for id, ltInfo := range m.LaunchTemplates {
if aws.StringValue(ltInfo.name) == aws.StringValue(name) {
found = true
ltInfo.data = responseLaunchTemplateData(request.LaunchTemplateData)
ltInfo.version++
ltVersion = ltInfo.version
ltID = id
}
}
if !found {
return nil, nil // TODO: error
}
return &ec2.CreateLaunchTemplateVersionOutput{}, nil
return &ec2.CreateLaunchTemplateVersionOutput{
LaunchTemplateVersion: &ec2.LaunchTemplateVersion{
VersionNumber: aws.Int64(int64(ltVersion)),
LaunchTemplateId: &ltID,
},
}, nil
}
// DeleteLaunchTemplate mocks the deletion of a launch template
@ -189,6 +198,10 @@ func (m *MockEC2) DeleteLaunchTemplate(request *ec2.DeleteLaunchTemplateInput) (
return o, nil
}
func (m *MockEC2) ModifyLaunchTemplate(*ec2.ModifyLaunchTemplateInput) (*ec2.ModifyLaunchTemplateOutput, error) {
return &ec2.ModifyLaunchTemplateOutput{}, nil
}
func responseLaunchTemplateData(req *ec2.RequestLaunchTemplateData) *ec2.ResponseLaunchTemplateData {
resp := &ec2.ResponseLaunchTemplateData{
DisableApiTermination: req.DisableApiTermination,

View File

@ -20,10 +20,12 @@ import (
"encoding/base64"
"fmt"
"sort"
"strconv"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"k8s.io/klog/v2"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
)
@ -164,8 +166,17 @@ func (t *LaunchTemplate) RenderAWS(c *awsup.AWSAPITarget, a, e, changes *LaunchT
LaunchTemplateName: t.Name,
LaunchTemplateData: data,
}
if _, err = c.Cloud.EC2().CreateLaunchTemplateVersion(input); err != nil {
if version, err := c.Cloud.EC2().CreateLaunchTemplateVersion(input); err != nil {
return fmt.Errorf("error creating LaunchTemplateVersion: %v", err)
} else {
newDefault := strconv.FormatInt(*version.LaunchTemplateVersion.VersionNumber, 10)
input := &ec2.ModifyLaunchTemplateInput{
DefaultVersion: &newDefault,
LaunchTemplateId: version.LaunchTemplateVersion.LaunchTemplateId,
}
if _, err := c.Cloud.EC2().ModifyLaunchTemplate(input); err != nil {
return fmt.Errorf("error updating launch template version: %w", err)
}
}
if changes.Tags != nil {
err = c.UpdateTags(fi.StringValue(a.ID), e.Tags)
@ -174,6 +185,7 @@ func (t *LaunchTemplate) RenderAWS(c *awsup.AWSAPITarget, a, e, changes *LaunchT
}
}
e.ID = a.ID
}
return nil