ebssurrogate builds didn't keep up with recent optimizations to region encryption in the ebs builder, and that was causing bugs with the common ami region copy step
This commit is contained in:
parent
046f94c996
commit
469af8e592
|
@ -308,6 +308,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
||||||
EnableAMIENASupport: b.config.AMIENASupport,
|
EnableAMIENASupport: b.config.AMIENASupport,
|
||||||
Architecture: b.config.Architecture,
|
Architecture: b.config.Architecture,
|
||||||
LaunchOmitMap: b.config.LaunchMappings.GetOmissions(),
|
LaunchOmitMap: b.config.LaunchMappings.GetOmissions(),
|
||||||
|
AMISkipBuildRegion: b.config.AMISkipBuildRegion,
|
||||||
},
|
},
|
||||||
&awscommon.StepAMIRegionCopy{
|
&awscommon.StepAMIRegionCopy{
|
||||||
AccessConfig: &b.config.AccessConfig,
|
AccessConfig: &b.config.AccessConfig,
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/service/ec2"
|
"github.com/aws/aws-sdk-go/service/ec2"
|
||||||
awscommon "github.com/hashicorp/packer/builder/amazon/common"
|
awscommon "github.com/hashicorp/packer/builder/amazon/common"
|
||||||
|
"github.com/hashicorp/packer/common/random"
|
||||||
confighelper "github.com/hashicorp/packer/helper/config"
|
confighelper "github.com/hashicorp/packer/helper/config"
|
||||||
"github.com/hashicorp/packer/helper/multistep"
|
"github.com/hashicorp/packer/helper/multistep"
|
||||||
"github.com/hashicorp/packer/packer"
|
"github.com/hashicorp/packer/packer"
|
||||||
|
@ -22,6 +23,7 @@ type StepRegisterAMI struct {
|
||||||
Architecture string
|
Architecture string
|
||||||
image *ec2.Image
|
image *ec2.Image
|
||||||
LaunchOmitMap map[string]bool
|
LaunchOmitMap map[string]bool
|
||||||
|
AMISkipBuildRegion bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
|
@ -34,8 +36,25 @@ func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) mul
|
||||||
|
|
||||||
blockDevices := s.combineDevices(snapshotIds)
|
blockDevices := s.combineDevices(snapshotIds)
|
||||||
|
|
||||||
|
// Create the image
|
||||||
|
amiName := config.AMIName
|
||||||
|
state.Put("intermediary_image", false)
|
||||||
|
if config.AMIEncryptBootVolume.True() || s.AMISkipBuildRegion {
|
||||||
|
state.Put("intermediary_image", true)
|
||||||
|
|
||||||
|
// From AWS SDK docs: You can encrypt a copy of an unencrypted snapshot,
|
||||||
|
// but you cannot use it to create an unencrypted copy of an encrypted
|
||||||
|
// snapshot. Your default CMK for EBS is used unless you specify a
|
||||||
|
// non-default key using KmsKeyId.
|
||||||
|
|
||||||
|
// If encrypt_boot is nil or true, we need to create a temporary image
|
||||||
|
// so that in step_region_copy, we can copy it with the correct
|
||||||
|
// encryption
|
||||||
|
amiName = random.AlphaNum(7)
|
||||||
|
}
|
||||||
|
|
||||||
registerOpts := &ec2.RegisterImageInput{
|
registerOpts := &ec2.RegisterImageInput{
|
||||||
Name: &config.AMIName,
|
Name: &amiName,
|
||||||
Architecture: aws.String(s.Architecture),
|
Architecture: aws.String(s.Architecture),
|
||||||
RootDeviceName: aws.String(s.RootDevice.DeviceName),
|
RootDeviceName: aws.String(s.RootDevice.DeviceName),
|
||||||
VirtualizationType: aws.String(config.AMIVirtType),
|
VirtualizationType: aws.String(config.AMIVirtType),
|
||||||
|
|
Loading…
Reference in New Issue