Commit Graph

355 Commits

Author SHA1 Message Date
Aishwarya Thangappa 9f24869e36 Update the error handling for end-of-life-date parsing 2020-01-06 22:58:26 -08:00
Aishwarya Thangappa 9569d35d14 Set expiry for image versions in SIG
Updates azure builder to support setting end-of-life-date for
image versions in shared image gallery. In addition, this change adds
the ability to set the global replica count for the image version
and allows the vms deployed from the latest version of the Image
Definition to exclude this Image Version.
2020-01-06 22:58:26 -08:00
Megan Marsh dca2c03cdb
Merge pull request #7866 from hashicorp/sharing_info
Add new struct to Provision() method signature, allowing us to share connection and credential info generated at build time with provisioners.
2019-12-17 14:55:20 -08:00
Ryan Hartje bfc3b72050 attempting to resolve deployment quota issue due to non-cleanup 2019-12-17 09:57:57 -06:00
nywilken 1eb55c2ae3 builder/azure: Remove double override of GalleryImageVersionsClient.PollDuration
This change fixes an issues where custom timeouts set for the
GalleryImagesVersionClient was being over written by the default client
poll duration.
2019-12-17 10:47:32 -05:00
Adrien Delorme 4b7132c87c Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
Adrien Delorme 0785c2f6fc
build using HCL2 (#8423)
This follows #8232 which added the code to generate the code required to parse
HCL files for each packer component.

All old config files of packer will keep on working the same. Packer takes one
argument. When a directory is passed, all files in the folder with a name
ending with  “.pkr.hcl” or “.pkr.json” will be parsed using the HCL2 format.
When a file ending with “.pkr.hcl” or “.pkr.json” is passed it will be parsed
using the HCL2 format. For every other case; the old packer style will be used.

## 1. the hcl2template pkg can create a packer.Build from a set of HCL (v2) files

I had to make the packer.coreBuild (which is our one and only packer.Build ) a public struct with public fields

## 2. Components interfaces get a new ConfigSpec Method to read a file from an HCL file.

  This is a breaking change for packer plugins.

a packer component can be a: builder/provisioner/post-processor

each component interface now gets a `ConfigSpec() hcldec.ObjectSpec`
which allows packer to tell what is the layout of the hcl2 config meant
to configure that specific component.

This ObjectSpec is sent through the wire (RPC) and a cty.Value is now
sent through the already existing configuration entrypoints:

 Provisioner.Prepare(raws ...interface{}) error
 Builder.Prepare(raws ...interface{}) ([]string, error)
 PostProcessor.Configure(raws ...interface{}) error

close #1768


Example hcl files:

```hcl
// file amazon-ebs-kms-key/run.pkr.hcl
build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

// amazon-ebs-kms-key/source.pkr.hcl

source "amazon-ebs" "first" {

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }
    
    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}
```
2019-12-17 11:25:56 +01:00
Megan Marsh 0f6d1beccf add an extra string array to the Prepare() return values in the builder interfaces; this sets up the ability for builders to give the provisioners custom user-accessible build-time variables. 2019-12-16 21:23:05 -08:00
Kris Hicks 40357e2534 docs/builder/azure-arm: Remove errant html comment (#8484)
* Remove errant html comment from source

* make generate
2019-12-13 10:35:24 -05:00
Megan Marsh 3389d843f0 update all provisioners that used the winrmpassword tooling to use the new generateddata option 2019-12-12 16:42:53 -08:00
Megan Marsh 6f418d0e54 get data sharing to a working state with the powershell provisioner 2019-12-11 15:43:38 -08:00
Megan Marsh 601007e3e2 pas data into provisioners well 2019-12-11 15:43:38 -08: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
Megan Marsh 836aaafaa3
Merge pull request #8203 from sumit-kalra/master
Azure-ARM builder: Deploy NSG if list of IP addresses is provided in config
2019-10-21 11:10:58 -07:00
Adrien Delorme 8b76453e7f make generate 2019-10-16 10:50:45 +02:00
Adrien Delorme cf1555bf17 Merge remote-tracking branch 'origin/master' into artifact-tree 2019-10-16 10:22:56 +02:00
Paul Meyer 575de8659e
Merge pull request #8226 from larohra/IncreasePollingDuration
[azure] Increase polling duration
2019-10-15 16:25:36 -07:00
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme f8402f1b91 builder.azure.common: make CloudEnvironment private so it doesn't temper with hcl2 code generation
the struct is not read from file but later set after some computations
2019-10-15 12:56:41 +02:00
larohra 936ae42b00 Added a new parameter in config to override the default Azure Go SDK PollingDuration timeout 2019-10-11 15:29:02 -07:00
Davor Kapsa 29a6938de6
clean and return nil for retry.Config 2019-10-10 20:48:26 +02:00
Sumit Kalra 4bd09f381e
Fixing documentation (#6) 2019-10-10 11:30:28 -07:00
Davor Kapsa 4c615341ef
Ignore retry.Config var
retry.Config is struct.
Call it err is wrong.
2019-10-10 17:33:24 +02:00
Davor Kapsa fb267dd1dc
Add error check 2019-10-09 21:08:40 +02:00
Sumit Kalra 595b103bbe
Adding NSG to the ARM deployment template when needed (#3)
* Adding NSG to the ARM eployment template when needed

* Adding tests and fixing bugs

* Removing denyall rule

* Fixing logic to determine which port to open

* Fixing config description
2019-10-08 14:56:43 -07:00
larohra 23c320d59e Increased the default polling duration to 60mins 2019-09-30 16:17:22 -07:00
Sumit Kalra 91d19adcd7 Ensuring that specifying allowed inbound IP and VNet are mutually exclusive (#2) 2019-09-26 23:33:18 +00:00
Sumit Kalra 132779c343 Adding config to specify allowed inbound IP addresses and CIDR blocks (#1)
* Adding config to specify allowed inbound IP addresses

* Also allowing CIDR blocks in addition to IP addresses
2019-09-26 23:31:28 +00:00
Paul Meyer 094a8840d8 Improve comments for FillParameters 2019-09-25 20:33:38 +00:00
Paul Meyer feeae1514e Refactor client config 2019-09-25 20:33:38 +00:00
Adrien Delorme a841da960d Merge branch 'master' of ssh://github.com/hashicorp/packer into scrape_doc_to_builder_struct_config 2019-08-30 15:10:29 +02:00
Adrien Delorme f11341c0b4 azure builder: avoid a panic in getObjectIdFromToken 2019-08-29 10:34:59 +02:00
Adrien Delorme f66ca58a46 Update azure docs for config.go
add missing docs fields

Co-Authored-By: Megan Marsh <swampdragons@users.noreply.github.com>
2019-08-27 09:32:03 +02:00
Adrien Delorme 783b02bd15 Update config.go
add missing doc  fields

Co-Authored-By: Megan Marsh <swampdragons@users.noreply.github.com>
2019-08-27 09:28:36 +02: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 6a201211a9 fix polling issues in azure
adds a configurable timeout to the shared image gallery publisher
2019-08-01 11:18:03 -07:00
Christian Muehlhaeuser 216afbaa8b
Fixed various typos
Just a bunch of nit-picky typo fixes.
2019-07-25 06:49:51 +02:00
Amrita Dutta 4c09dfde87 Fix bug while publishing SIG destination id for every managed image 2019-07-04 00:44:05 +00:00
Amrita Dutta 78be7ab4e4 fix typo 2019-06-24 16:57:07 +00:00
Amrita Dutta ba76d86cab remove comment 2019-06-21 03:51:44 +00:00
Amrita Dutta 85036231c4 Final commit 2019-06-21 02:47:39 +00:00
Amrita Dutta 78f001431e add example config file 2019-06-19 07:18:08 +00:00
Amrita Dutta 994dca5f78 fix bug in step_publish w.r.t managed image RG 2019-06-19 06:53:20 +00:00
Amrita Dutta 963336d421 Remove un-intended import 2019-06-19 06:42:55 +00:00
Amrita Dutta 76dbf4fb3b Remove subscription id from SIG destination input 2019-06-19 06:10:18 +00:00
Amrita Dutta 1d6de7167f Another update to replication logic 2019-06-18 23:51:10 +00:00
Amrita Dutta de591cff77 Fix append in builder.go 2019-06-18 23:48:38 +00:00
Amrita Dutta f7e08a097a Replication region changes 2019-06-18 23:41:14 +00:00
Amrita Dutta c9cdb34589 Update validation logic for missing replication region 2019-06-18 06:39:43 +00:00
Amrita Dutta f1f93f0665 normalize replication regions 2019-06-18 06:01:22 +00:00
Amrita Dutta 59a0f7f6e6 add validation checks for replication regions + formatting 2019-06-18 05:34:26 +00:00
Amrita Dutta d13b9574d6 Use user - provided version number instead of generating timestamp on our own 2019-06-17 22:54:37 +00:00
Amrita Dutta 34dac69112 pass subscription id via state bag 2019-06-17 22:08:10 +00:00
Amrita Dutta 540c904fd4 add missing check to not publish to SIG if config.SharedGalleryDestination.SigDestinationGalleryName is null 2019-06-17 19:13:03 +00:00
Ubuntu 6504d3ae5c Changes to ARM builder for publishing to SIG 2019-06-14 21:54:27 +00:00
Ubuntu fb9fd58dfb Imports for publishing to SIG 2019-06-07 20:47:37 +00:00
Adrien Delorme d81ca5728d azure-arm: rewrap struct comments for documentation generation 2019-06-06 17:34:17 +02:00
Adrien Delorme 4399684372 make fmt autogenerated docs 2019-06-06 16:29:25 +02:00
Adrien Delorme e6cbb013ba add // go:generate struct-markdown to all previously edited files 2019-06-05 16:42:18 +02:00
Adrien Delorme f1917edd34 generate the comments for config struct of builders scraping doc website 2019-06-05 16:42:17 +02:00
Amrita Dutta 1438e2e449 SIG as destination validation changes 2019-06-04 00:47:29 +00:00
Amrita Dutta 700c95c613 Update Azure SDK for Go to v30.0.0 2019-05-30 21:25:43 +00:00
Megan Marsh 3e73abc93a refresh line endings 2019-05-17 14:58:20 -07:00
Adrien Delorme d72040f4fa move retry code into the common/retry pkg and make retry context aware 2019-04-09 17:46:38 +02:00
Adrien Delorme a81abd297b Merge remote-tracking branch 'origin/master' into context_provisioner 2019-04-08 20:09:01 +02:00
Megan Marsh 3e72e65a6c
Merge pull request #7456 from hashicorp/do_5770
introduce the clean_resource_name to clean image/var names
2019-04-05 09:12:20 -07:00
Adrien Delorme c4f3dccc14 rename interpolation context from ctx to ictx and contexts to ctx to avoid conflicts 2019-04-03 15:56:15 +02:00
Adrien Delorme a4bf94dd3c change Builder to be passed a context for cancellation
we have to to give it to our hook
2019-04-03 15:55:55 +02:00
Adrien Delorme 9836dad0c9 introduce the clean_resource_name to clean image names and deprecate the old ones 2019-04-03 11:25:51 +02:00
Paul Meyer eb274c4e87 Power off before shapshotting 2019-04-01 18:40:50 +00:00
Paul Meyer e4bea87a20
Merge pull request #7211 from riezebosch/master
arm-builder: specify zone resilient image from config
2019-03-19 08:59:29 -07:00
Adrien Delorme 9f82b75e57 Use the hashicorp/go-getter to download files
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
2019-03-13 12:11:58 +01:00
Joel Lopes c8a60c77d1 Add comments 2019-02-21 18:12:57 -08:00
Joel Lopes 1c030cb54b Use IMDS to get subscription for Azure MSI 2019-02-21 09:35:14 -08:00
Manuel Riezebosch d79b54e46a feat(arm-builder): print warning on zone resiliency for currently not supported locations 2019-02-15 19:27:53 +01:00
Manuel Riezebosch f31031f6b1 feat(arm-builder): zone resilient from config 2019-02-15 19:27:32 +01:00
Paul Meyer 68516fc05c Fix Azure interactive authentication
Builder looks up tenant ID before asking for token. Client config did
not allow that. Also found that token provider was not properly
initialized.

Fixes 7267
2019-02-05 02:35:12 +00:00
Paul Meyer e189db97d4 [azure] deallocate instead of just power-off
1. allegedly prevents error where  fails because VM still appears running
2. prevents left-behind VM's after failures from accumulating charges
2019-01-16 00:31:23 +00:00
Paul Meyer aa29facdae Allow certificate bearer JWT client authentication
This allows certificate based authentication, both by just referencing
the certificate file as well as by providing a bearer JWT. This last
option allows authentication without exposing the private key to packer
using an expiring JWT containting the thumbprint (and sometimes the
whole certificate for subject/issuer based auth), signed using the
certificate private key.
2019-01-15 17:29:28 +00:00
Paul Meyer 7e34579b7e Factor out Azure client credential config 2019-01-15 17:23:57 +00:00
Christopher Boumenot f9230aeb95 azure: fix snapshot regression 2018-12-13 13:58:18 -08:00
Christopher Boumenot c7d8f4e150 azure: configuration for disk caching
Export a configuration knob to change the disk caching setting. The
default value remains ReadWrite.  This seems the most appropriate value
given Packer.  Certain disk sizes require that disk caching be disable,
and this knob allows the user to do just that.
2018-11-30 14:14:43 -08:00
Christopher Boumenot 06c2c35e4c
Merge pull request #6980 from amydutta/amdut/snapshot
Adding options for Managed Image OS Disk and Data Disk(s) snapshot(s)
2018-11-16 15:51:52 -08:00
Amrita Dutta b8def0b3fb Added test to check for missing OS disk snapshot name and data disk snapshot prefix 2018-11-15 22:01:16 +00:00
Amrita Dutta 67342750a3 Addressed PR comments 2018-11-14 01:47:48 +00:00
Adrien Delorme 175b6a7971 add test for MSI configuration 2018-11-12 12:04:57 +01:00
Adrien Delorme 1958ef6e81 remove unecessary check 2018-11-12 11:32:49 +01:00
Adrien Delorme 08e8b1850e
remove unnecessary parenthesis 2018-11-12 10:49:39 +01:00
Amrita Dutta 2d6b18e63e Fix tests after bug fix 2018-11-10 00:05:25 +00:00
Amrita Dutta 213fbbae00 Updated go version and reformatted 2018-11-09 22:41:48 +00:00
Amrita Dutta a297d73b98 correcting wrong log message 2018-11-09 19:29:57 +00:00
Amrita Dutta 06525dd885 adding logs in the steps 2018-11-09 19:28:37 +00:00
Adrien Delorme 1ab0173e69 azure builder: allow to auth with managed identities ( MSI ) 2018-11-09 17:39:03 +01:00
Amrita Dutta 8881bc2d64 Fix bug in snapshot client creation 2018-11-09 03:30:57 +00:00
Mikhail Ushanov 536252683e builders: reuse private key file reading function
Signed-off-by: Mikhail Ushanov <gm.mephisto@gmail.com>
2018-11-08 14:25:50 +03:00
Amrita Dutta 8d8c86366b Config tests + typo fix 2018-11-07 22:23:22 +00:00
Amrita Dutta 8c326dbab7 Formatting changes 2018-11-07 18:08:15 +00:00
Amrita Dutta b2d1675d39 Added tests 2018-11-07 03:23:17 +00:00
Amrita Dutta 369b2dae5e Inlining suggested functions 2018-11-06 21:50:53 +00:00
Amrita Dutta 593363c5be fix typo in last commit 2018-11-06 19:23:15 +00:00
Amrita Dutta 1266d5146d addressed PR comments + add file for data disk snapshots 2018-11-06 19:17:03 +00:00
Amrita Dutta d12d23d34b OS disk snapshot 2018-11-05 23:48:22 +00:00
Megan Marsh cdc6c57b31
Merge pull request #6822 from hashicorp/fix_6774
Fix 6774
2018-10-10 13:25:58 -07:00
Megan Marsh 53bce398bb add Managed Image test to azure artifact 2018-10-10 10:04:19 -07:00
Megan Marsh 5dc4ff95da fix azure artifact so it works with managed images as well as VHDs 2018-10-10 10:04:11 -07:00
mbearup c7180413b0 Fix tests for Shared Image Gallery 2018-10-09 16:38:50 -07:00
mbearup a3a2a9e970 Fix issue with composite literal in test 2018-10-09 15:35:09 -07:00
mbearup 335feaf89c Convert shared_image_gallery options to a struct
Updates tests and documentation for shared_image_gallery
2018-10-09 13:56:49 -07:00
mbearup 5373b8586d Update tests for Azure Shared Image Gallery 2018-10-05 16:04:07 -07:00
mbearup b6bb5d4b4d Fix format/spacing for config.go 2018-10-05 10:52:02 -07:00
mbearup d21b13cb85 Modify variable names for Shared Image Gallery.
Add checks for Shared Image Gallery options.
2018-10-03 16:10:46 -07:00
mbearup 55be0da5da Initial changes to support Shared Image Gallery 2018-09-30 13:56:44 -07:00
Megan Marsh 38cc525ec7 new option allowing user to clean up the ephemeral ssh key from the authorized_keys file 2018-09-14 11:06:38 -07:00
Megan Marsh a0edaf6c46 Going to revert this change for now, becuase of potential issues that arise from calling Prepare() twice
Revert "use statebag instead of SetSharedState for winRM password"

This reverts commit b35acbd879.
2018-09-10 16:48:42 -07:00
Adrien Delorme 4682b3a9d2 refactor possible random strings into common/random 2018-09-05 10:26:52 +02:00
Adrien Delorme 170b2f3383 builder/azure/common.RandomString-> common/random.String
* to share them
* also removed unused PassworString func & arm.TempPasswordAlphabet package const
2018-09-05 10:24:28 +02:00
Christopher Boumenot 2e294da82a
Merge pull request #6644 from riezebosch/master
[azure-arm] retry cleanup individual resources on error
2018-09-04 11:40:27 -07:00
Manuel Riezebosch fcfa54fb1d [azure-arm] retry cleanup individual resources on error 2018-08-31 13:43:38 +02:00
Adrien Delorme 336cac29d4 also use config.SSHPrivateKey for azure-arm builds 2018-08-29 14:40:32 +02:00
Adrien Delorme 51d2aac9f6 SSHPrivateKey => SSHPrivateKeyFile 2018-08-29 14:40:32 +02:00
Matthew Hooker 3f1a9766f4
formatting verb fixes for go 1.11 2018-08-24 16:18:21 -07:00
Matthew Hooker e41e99954d
go 1.11 format rules 2018-08-24 15:56:44 -07:00
Megan Marsh b35acbd879 use statebag instead of SetSharedState for winRM password 2018-08-24 13:51:16 -07:00
Adrien Delorme 6bbcd3e914
Remove remaining unused ssh config funcs and add missing calls (#6622)
* Remove duplicate unused SSHConfig funcs

* call to SSHConfigFunc() for azure/arm builder

* ncloud too

* remove empty ncloud file
2018-08-24 16:00:40 +02:00
Megan Marsh ff6a039d5b replace scrubconfig with packer.LogSecretFilter.Set
filter winrm password from logs
Add new root-level packer template option, sensitive-variables, to tell us what user variables to mark sensitive.
2018-08-20 15:35:55 -07:00
Patrick Double 2868971a9b Fixes per code review 2018-08-09 07:14:14 -05:00
Patrick Double d796edc783 Add to vagrant post-processor support for Azure 2018-08-08 10:04:28 -05:00
Christopher Boumenot a3e6153068 azure: implement clean_image_name 2018-08-01 10:54:45 -07:00
Christopher Boumenot fa7f54cb55 azure: satisfy Azure password requirements 2018-07-11 15:32:45 -07:00
Mike 5ea6429cd6
managed_image_resource_group_name max length change 2018-07-11 11:31:51 -04:00
Hariharan Jayaraman b23d6c9589 fixing infinite loop issue deleting existing resources if we have a empty target resource 2018-06-06 15:25:19 -07:00
Hariharan Jayaraman a13a2511f9 Added additional error message if we failed to parse token 2018-05-21 22:20:36 -07:00
Hariharan Jayaraman 1bd7aa534e Addressed PR feedback 2018-05-21 21:38:41 -07:00
Hariharan Jayaraman 8a3e599cad Added text to point out two device auth 2018-05-21 11:05:59 -07:00
Hariharan Jayaraman da67df6d03 space fix 2018-05-18 21:17:19 -07:00
Hariharan Jayaraman 4992429e8c Minor comment fixes 2018-05-18 17:34:01 -07:00
Hariharan Jayaraman 00e809cb7e Refactored the change into a new function 2018-05-18 15:21:49 -07:00
Hariharan Jayaraman ea9b2a8b5f review feedback 2018-05-18 12:09:42 -07:00
Hariharan Jayaraman 667113338a missed formating 2018-05-18 01:41:00 -07:00
Hariharan Jayaraman 7f2277676a Ensure that Device Login tests dont block general acceptance tests 2018-05-18 01:34:12 -07:00
Hariharan Jayaraman 77fe1bffe4 Ensure that Device Login tests dont block general acceptance tests 2018-05-18 01:25:19 -07:00
Hariharan Jayaraman de1783240f Updates to remove space changes 2018-05-18 00:53:44 -07:00
Hariharan Jayaraman 91eed4da52 trim right of the keyvault url 2018-05-18 00:44:25 -07:00
Hariharan Jayaraman df5cc234fc updates 2018-05-18 00:39:57 -07:00
Hariharan Jayaraman 1f46271a6b Ensuring device login works for Windows build 2018-05-18 00:32:01 -07:00
Christopher Boumenot a5530d4546
Merge pull request #6269 from harijayms/asyncrgdelete
Async delete Resource Group
2018-05-16 15:13:09 -07:00
Hariharan Jayaraman e1b18d594a Updates based on PR feedback 2018-05-15 11:41:26 -07:00
Hariharan Jayaraman c8c9bbb22a Async delete Resource Group 2018-05-14 20:06:23 -07:00
Hariharan Jayaraman 13c0b0b370 Added warning for VHD creation and updated samples 2018-05-10 13:15:35 -07:00