Commit Graph

1160 Commits

Author SHA1 Message Date
Lars Lehtonen d072079899
builder/amazon/common: remove dead test type and function mockEC2Conn_Modify_EBS.ModifyInstanceAttribute() 2019-10-31 12:38:32 -07:00
Lars Lehtonen 953be1603b
builder/amazon/common: remove dead test type and function mockEC2ConnSpot.DescribeSpotPriceHistory() 2019-10-31 12:34:11 -07:00
Lars Lehtonen 7a09f9c678
builder/amazon/common: remove dead test function fakeModifyEBSBackedInstanceState() 2019-10-31 12:22:10 -07:00
Lars Lehtonen 0a13b620d6
builder/amazon/common: remove dead test function StepModifyEBSBackedInstance_EnableAMIENASupport() 2019-10-31 12:19:28 -07:00
Lars Lehtonen c74df8b652
builder/amazon/common: remove dead test function getMockConnSpot() 2019-10-31 12:15:53 -07:00
Lars Lehtonen e5e2bfa83f
builder/amazon/common: remove nil check on slice, len() on nil slices is zero 2019-10-31 12:09:32 -07:00
Adrien Delorme 819329228a Change back to make sure all durations are a time.Duration
It is simply the best/simplest solution and trying to prevent users from passing and integer here would be like opening a can of worms. Because:

* we cannot make mapstructure validate our duration string ( with an UnmarshalJSON func etc.)
* we cannot make mapstructure spit a string instead of a duration and packer will decode-encode-decode config.
* the hcl2 generated code asks for a string, so this will be enforced by default.
2019-10-31 16:12:07 +01:00
Adrien Delorme bf3d9841c6 Force durations to be passed a strings
Before this commit it was possible to set a duration using an integer or a float. Go's time.Duration is an int64 internally an mapstructure will take advantage of this and load the number as a int64 but `1` means one ns which is unexpected/confusing. To avoid confusion and enforce readability this forces users to pass a string with a unit for a duration; ex "56s".
2019-10-31 11:47:19 +01:00
Megan Marsh 6191b9c8c6
Merge pull request #8288 from hashicorp/fix_8271
add some extra layers of validation to make sure that people don't tr…
2019-10-30 10:41:52 -07:00
Megan Marsh d084cd1895 Update builder/amazon/common/ami_config.go 2019-10-30 09:41:23 -07:00
Megan Marsh e9f02e44cb add test to catch this case 2019-10-29 11:28:56 -07:00
Megan Marsh 7cf47fc463 add some extra layers of validation to make sure that people don't trip over magical encrypt_boot settings later in the build 2019-10-29 11:26:22 -07:00
Megan Marsh e2283445f2 need to initialize variables scoped to the individual loop, because the address of k,v stay the same and that means we overwrite previous variables when assigning them to the struct directly. 2019-10-28 14:31:13 -07:00
Megan Marsh a783a09ea3
Merge pull request #8269 from paulmey/paulmey/generalize-chroot
[amazon/chroot] Move common/generic chroot builder steps to common directory
2019-10-24 14:32:01 -07:00
Megan Marsh 7928b5b045 fix transcription error from when we moved to generated docs 2019-10-24 10:19:03 -07:00
Paul Meyer 3be7d81ce2 Move common steps together 2019-10-24 04:21:46 +00:00
Paul Meyer e6dfe301ac Move CommandWrapper & ShellCommand to common 2019-10-24 04:06:29 +00:00
Megan Marsh b9245a402d add structure to its own struct to make generated code stop complaining 2019-10-23 10:46:42 -07:00
Megan Marsh 5614f307fb regerate code
generate flat FlatPolicyDocument
add PolicyDocument to generate command
2019-10-23 10:46:07 -07:00
Megan Marsh d15f43e4eb
Merge pull request #8232 from hashicorp/artifact-tree
HCL2 configs - part one
2019-10-22 11:54:34 -07:00
Bernard Baltrusaitis ec1d70dc44 adding required changes 2019-10-22 21:40:18 +11:00
Bernard Baltrusaitis 65d1447b64 adding formatting 2019-10-19 21:33:58 +11:00
Bernard Baltrusaitis 6e2146324f Merge branch 'master' of github.com:b-b3rn4rd/packer 2019-10-19 20:56:49 +11:00
Bernard Baltrusaitis 8b83cca064 adding temporary instance profile document policy 2019-10-19 20:56:18 +11:00
Adrien Delorme cf1555bf17 Merge remote-tracking branch 'origin/master' into artifact-tree 2019-10-16 10:22:56 +02:00
Paul Meyer 977ca5be1c Add StepCopyFiles and StepChrootProvision 2019-10-15 21:13:37 +00:00
Paul Meyer 9a3e6661b1 Add StepMountExtra 2019-10-15 21:13:37 +00:00
Paul Meyer addbdedea9 Add StepPostMountCommands 2019-10-15 21:13:37 +00:00
Paul Meyer 4d750ddefa Reuse amazon/chroot/step_pre_mount_commands.go 2019-10-15 21:13:37 +00:00
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme 221e72e9c3 builder.amazon.common: remove pointer (*) from []*string and map[*string]*string types
because they make hcl2/cty decoding panic
2019-10-15 12:56:41 +02:00
Adrien Delorme 8b8c2fc138 builder.amazon.chroot: remove specific BlockDevice definition
because the common one already has a KmsKeyId field
2019-10-15 12:56:41 +02:00
Megan Marsh f05fd3969f
Merge pull request #8212 from hashicorp/fix_8204
Fix 8204
2019-10-14 14:40:17 -07:00
Megan Marsh 2e20facc8b fix tests 2019-10-14 14:13:21 -07:00
Megan Marsh 0e70e0e5a4 fix template imports 2019-10-14 13:22:06 -07:00
Megan Marsh 44f91c9afc Revert "remove clean_ami_name and clean_image_name; complete the deprecation for these functions in favor of clean_resource_name"
This reverts commit 0026792d2f.
2019-10-14 13:08:15 -07:00
Megan Marsh 4bc381183d make aws instsance builder work with recent changes for volume copy 2019-10-09 16:59:51 -07:00
Megan Marsh e283023d9b make sure step_register_ami in chroot builder respects encryption and ami skip build retion values once the copy happens 2019-10-09 16:52:41 -07:00
Megan Marsh 469af8e592 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 2019-10-09 16:02:37 -07:00
Adrien Delorme d4600a7716 fix go imports 2019-10-04 11:19:45 +02:00
Megan Marsh 0026792d2f remove clean_ami_name and clean_image_name; complete the deprecation for these functions in favor of clean_resource_name 2019-10-03 15:49:01 -07:00
Megan Marsh e16fb19bfc don't abort on a single error if another availability zone was able to create the instance 2019-10-02 14:17:00 -07:00
Megan Marsh eccf0fb51d update docs 2019-09-27 09:51:18 -07:00
Megan Marsh e047b97bf7
Merge pull request #8162 from hashicorp/fix_8154
make sure amazon builders respect ssh_host option
2019-09-27 09:34:49 -07:00
Megan Marsh ac6e7a4800 updates tests to validate that ssh_host value supplied in the template overrides all else 2019-09-27 09:19:23 -07:00
Adrien Delorme 941dc394f0 Update step_run_spot_instance.go 2019-09-27 13:04:52 +02:00
Adrien Delorme d049284120
Update builder/amazon/common/step_run_spot_instance.go
remove unused code that might induce errors
2019-09-27 13:00:53 +02:00
Adrien Delorme 07e97e26de
step_run_source_instance.go: make sure we use the right ShouldRetry error 2019-09-27 12:57:55 +02:00
Megan Marsh c722009159 we only need one describeInstances call, not 3, and it should be wrapped in a retry 2019-09-26 15:47:01 -07:00
Megan Marsh e47059aaca put retry around describeinstances call in amazon 2019-09-26 14:49:28 -07:00
Megan Marsh 31bb1e818f fix tests 2019-09-26 13:02:11 -07:00
Megan Marsh 0cbd3ff0f3 make sure amazon builders respect ssh_host option 2019-09-26 12:30:04 -07:00
Megan Marsh 72d393c95a update docs to show a use case for block device mappings 2019-09-25 16:48:04 -07:00
Adrien Delorme 4fb05e5bc4 fix test 2019-09-20 15:28:43 +02:00
Adrien Delorme 792f61a4ad fmt 2019-09-20 15:18:48 +02:00
Adrien Delorme 849de792da re-apply doc changes of master 2019-09-20 15:04:01 +02:00
Adrien Delorme 3fe9d52e3f Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 11:15:44 +02:00
Adrien Delorme 4d4bd38afa
Merge pull request #8087 from hashicorp/fix_8048
add retry wrapper to query so it handles rate limiting
2019-09-16 10:25:12 +02:00
Megan Marsh 9503802814 adding ctx makes the cancel channel redundant 2019-09-13 14:32:13 -07:00
Megan Marsh 4b497006b3 add retry wrapper to query so it handles rate limiting 2019-09-13 14:32:13 -07:00
Adrien Delorme 146b88ba1e Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-10 12:44:46 +02:00
Adrien Delorme de9bb26f62
Merge branch 'master' into fix_7959 2019-09-10 12:21:33 +02:00
DanHam bbeb1a3528
Delete any `run_volume_tags` applied to EBS volumes at instance creation
* Allows `run_volume_tags` to be set without requiring a major rewrite
  of the (common) amazon builder code used to start an instance.
  The common start up code tags the instance and *all attached volumes
  at creation*. If `run_volume_tags` are set this means that any volumes
  specified in `ebs_volumes` will *initially* be tagged with the
  `run_volume_tags` rather than the tags set in the `ebs_volumes`
  section
* Once the instance is reported to be 'ready' the step to tag the EBS
  volumes is run. Once complete all volumes should have the tags
  requested by the user:

    * Volumes associated with the source instance should be tagged with
      the tags set in `run_volume_tags` (if any)
    * Each EBS volumes specified in the `ebs_volumes` section of the
      template should only be tagged with its associated tags (if any)
2019-08-30 14:30:25 +01:00
DanHam 61b1605a85
More accurate error description; Add comments; Add output 2019-08-30 14:26:06 +01:00
DanHam 430d41fbf9
Add option to enable tagging of the running instances volumes
* Currently this results in *all* volumes attached to the instance
  being tagged with the `run_volume_tags`. This includes any `ebs_volumes`
  for which the user may have configured other tags.
* This issue will be addressed in a later commit
2019-08-30 14:16:29 +01:00
DanHam 30070ffb30
Sort fields and options alphabetically 2019-08-30 14:16:29 +01:00
Adrien Delorme 9f8e9893b3 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-29 14:22:16 +02:00
Adrien Delorme 86cee5cbef
Merge pull request #8034 from cove/retry-describe-instances
add AWS API call reties on AMI prevalidation
2019-08-29 10:48:54 +02:00
cove 87e0a3b5e7 add prevalidating AMI name retries so the build doesn't fail when throttled 2019-08-27 18:00:08 -07:00
Adrien Delorme 9d0bc476d9 add ommited struct interpolation
after dcc22df609
2019-08-27 15:17:57 +02:00
Adrien Delorme 239f97471c fix ebs volume tags doc field
Co-Authored-By: Megan Marsh <swampdragons@users.noreply.github.com>
2019-08-27 09:21:29 +02:00
Adrien Delorme 5517d41468 make sure all documentation fields are there
* add missing `temporary_key_pair_name` field for alicloud
* add missing description to `vpc_filter` for aws
* add missing ssh communicator fields for aws
* add links for aws
* update vmware-vmx docs
* manually describe AMI Configuration section for ebsvolume
* display missing required ami_name field for aws
* add missing fields for docker
* add missing fields for openstack
2019-08-26 17:16:54 +02:00
Adrien Delorme 2efc94521b use trilean initializers in test where missing 2019-08-23 11:17:45 +02:00
Megan Marsh 6a895db9be converte block device encryption to trilean 2019-08-22 14:24:22 -07:00
Megan Marsh 1d9bba6fe3 change AMIEncryptBootVolume to trilean 2019-08-22 14:04:26 -07:00
Megan Marsh 1a6adadb89 convert EnableAMIENASupport to trilean in code 2019-08-22 13:18:22 -07:00
Megan Marsh 3c3f7f26ce implement custom data type "trilean" (tri-state-boolean) to track booleans which have a "null" or "unset" state. Previously we used *bool for these template options, but it turns out that those won't work because "unset" will evaluate to "false" if a user is using template variables to set the option that maps to a *bool. 2019-08-22 13:18:15 -07:00
Adrien Delorme 4cb7c30987 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-21 16:44:23 +02:00
Megan Marsh 4aa33306cb make sure that fleetId exists before trying to stick it into error message 2019-08-19 13:44:39 -07:00
Megan Marsh 316a30b31d fix spot_tags 2019-08-15 16:06:16 -07:00
Megan Marsh 9f6d14c75a work around spot_tags related regression and bad fleet cleanup in spot instances 2019-08-14 11:08:59 -07:00
Megan Marsh b42701380c add test for nil case 2019-07-29 12:11:59 -07:00
DanHam 088151e51d
Type assertion safety - fix panic when key cannot be retrieved from statebag 2019-07-28 10:44:24 +01:00
Christian Muehlhaeuser 216afbaa8b
Fixed various typos
Just a bunch of nit-picky typo fixes.
2019-07-25 06:49:51 +02:00
Megan Marsh 54d2ad5028 refactored step_ami_region_copy to fix bugs and clarify assumptions; added more tests for that step.
fix race condition caused by variable declaration outside of loop
2019-07-17 11:30:20 -07:00
Megan Marsh 39a4da4d07 add code to deduplicate the region list, and to make sure that the original region's kms key id is in the map. 2019-07-11 16:56:40 -07:00
Megan Marsh 6ad975f296 Revert "move SSHInterface/SSHIPVersion fields to communitator.Config struct"
This reverts commit b0c09087a2.
2019-07-02 10:46:10 -07:00
Megan Marsh 62120c5c0b
Merge pull request #7813 from hashicorp/stop_calculating_spot_bids
stop calculating spot bids
2019-07-02 10:35:45 -07:00
Megan Marsh d4b6a61445 don't store names of volumes we will be deleting when the instance terminates 2019-07-01 14:44:17 -07:00
Megan Marsh 42611e6004 fix build 2019-07-01 13:03:33 -07:00
Megan Marsh a60f7e395e add a test to make sure we don't error becaue of spot price auto product, yet 2019-07-01 13:01:41 -07:00
Megan Marsh c722afe707 stop calculating spot bids; amazon changed the way spot instances are priced to be stable rather than bid-based, so when user sets auto, we can just default to the ondemand price and know that they'll get the same price as everyone else bidding at that time. 2019-07-01 13:01:41 -07:00
Daniel Rodgers-Pryor 8a9753032c Allow EC2 fleet packer instances to run in parallel
Without conflicting over the name of the launch template that they create/delete.

Previously, the launch template name was just hard coded to `packer-fleet-launch-template`, but since AWS enforces unique template names within an account, this caused simultaneously running packer instances to hit template-already-exists errors when creating their templates and race-conditions around deleting the template. Now, the template name is randomly generated on each run, so there should be no conflicts.
2019-06-30 16:19:35 +10:00
Adrien Delorme 02421bad33 simplify BlockDevice prepares 2019-06-19 12:15:18 +02:00
Adrien Delorme 433c40d72d make block device example less specific 2019-06-19 12:10:08 +02:00
Adrien Delorme 8cea5d409a doc ebsvolume builder using partials 2019-06-19 12:02:12 +02:00
Adrien Delorme aeb898d598 document amazon-instance builder with partials 2019-06-19 11:09:00 +02:00
Adrien Delorme c54879717b document ebssurrogate with partials 2019-06-18 18:00:49 +02:00
Adrien Delorme 9f4c8fb321 document ebs builder using partials 2019-06-18 17:41:50 +02:00
Adrien Delorme a476ab79d7 document chroot builder using partials 2019-06-18 17:26:36 +02:00