From bda09bf7d571699a85538cdb41a9c6fda11dada8 Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Fri, 24 May 2019 15:08:20 -0700 Subject: [PATCH] the build ami is made with an intermediary name, which means that we can't skip copying even from the original build region when unencrypted --- builder/amazon/common/step_ami_region_copy.go | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/builder/amazon/common/step_ami_region_copy.go b/builder/amazon/common/step_ami_region_copy.go index c289cf4d1..620715d27 100644 --- a/builder/amazon/common/step_ami_region_copy.go +++ b/builder/amazon/common/step_ami_region_copy.go @@ -31,17 +31,18 @@ func (s *StepAMIRegionCopy) Run(ctx context.Context, state multistep.StateBag) m snapshots := state.Get("snapshots").(map[string][]string) ami := amis[s.OriginalRegion] + // Always copy back into original region to preserve the ami name + s.toDelete = ami + s.Regions = append(s.Regions, s.OriginalRegion) if s.EncryptBootVolume != nil && *s.EncryptBootVolume { // encrypt_boot is true, so we have to copy the temporary // AMI with required encryption setting. // temp image was created by stepCreateAMI. - s.Regions = append(s.Regions, s.OriginalRegion) if s.RegionKeyIds == nil { s.RegionKeyIds = make(map[string]string) } s.RegionKeyIds[s.OriginalRegion] = s.AMIKmsKeyId - s.toDelete = ami } if len(s.Regions) == 0 { @@ -57,20 +58,7 @@ func (s *StepAMIRegionCopy) Run(ctx context.Context, state multistep.StateBag) m wg.Add(len(s.Regions)) for _, region := range s.Regions { - if region == s.OriginalRegion { - if s.EncryptBootVolume == nil || *s.EncryptBootVolume == false { - ui.Message(fmt.Sprintf( - "Avoiding copying AMI to duplicate region %s", region)) - wg.Done() - continue - } else { - // encryption is true and we're in the original region - ui.Message(fmt.Sprintf("Creating encrypted copy in build region: %s", region)) - } - } else { - // in non-build region - ui.Message(fmt.Sprintf("Copying to: %s", region)) - } + ui.Message(fmt.Sprintf("Copying to: %s", region)) if s.EncryptBootVolume != nil && *s.EncryptBootVolume { regKeyID = s.RegionKeyIds[region] @@ -108,11 +96,6 @@ func (s *StepAMIRegionCopy) Cleanup(state multistep.StateBag) { ec2conn := state.Get("ec2").(*ec2.EC2) ui := state.Get("ui").(packer.Ui) - // cleanup is only for encrypted copies. - if s.EncryptBootVolume == nil || !*s.EncryptBootVolume { - return - } - // Delete the unencrypted amis and snapshots ui.Say("Deregistering the AMI and deleting unencrypted temporary " + "AMIs and snapshots")