14451 Commits

Author SHA1 Message Date
Adrien Delorme
bc49234930 remove old untrue comment 2019-12-17 16:45:20 +01:00
Adrien Delorme
50fb1148b4 wip 2019-12-17 16:31:22 +01:00
Adrien Delorme
4b7132c87c Merge remote-tracking branch 'origin/master' into sharing_info 2019-12-17 11:57:09 +01:00
Adrien Delorme
65cc5fe823
fix missing typo correction (#8494)
I left this change on my local branch
2019-12-17 11:31:57 +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
6bc5a95c3a tweak docs; change to 2019-12-16 21:35:42 -08: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
Megan Marsh
18bb4ffb44 bump API version since this change makes things backwards incompatible. 2019-12-16 11:46:46 -08:00
Megan Marsh
21a849354b fix hook data loading 2019-12-16 11:22:21 -08:00
Sylvia Moss
c57f093efe
Remove unnecessary source_path validation for virtualbox-ovf (#8489) 2019-12-16 16:50:21 +01:00
Sylvia Moss
0a8b172bf9 Remove duplicated retry mechanism when deleting VM ffrom virtual box (#8485)
This retry was also added to fix a locked by session error reported in #5501 and fixed in #5512.
2019-12-16 14:31:15 +01:00
Megan Marsh
1679d9fb9d docs 2019-12-14 03:53:22 -08:00
Megan Marsh
a125f81fba add some more comments 2019-12-14 03:44:09 -08:00
Megan Marsh
d47f151bf9 punctuation 2019-12-14 03:38:27 -08:00
Megan Marsh
82367a88f8 reorganize placeholder data call to live with provisioner implementation; force users to use the generated function, therefore forcing validation, for all variables except winrmpassword, by doing a simple string check against the placeholder data. 2019-12-14 03:32:38 -08:00
Megan Marsh
ac570e0cc0 store ssh public and private keys on shared info 2019-12-13 13:15:03 -08:00
Megan Marsh
88d4ce37c9 template functioin to let Provisioners access PACKER_RUN_UUID 2019-12-13 13:03:09 -08:00
Megan Marsh
84063d2132 implement ID and Type values in the provisioner template info sharing 2019-12-13 11:57:01 -08:00
Megan Marsh
e1652696a6 Rather than using reflection to grab the whole SSH config, for now just use the config convenience functions to get the majority of needed values 2019-12-13 10:02:13 -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
Sylvia Moss
2ee3311082
Retry command execution when VM session is locked (#8483) 2019-12-13 10:47:19 +01: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
b2012c7ff3 fix tests 2019-12-12 15:47:17 -08:00
Megan Marsh
39fd462b56 change all provision func signatures to use map[string]interface{} 2019-12-12 15:38:32 -08:00
nywilken
1933e7acbe Update CHANGELOG.md 2019-12-12 13:20:11 -05:00
Megan Marsh
fbd1958ca5
Merge pull request #8462 from mkaczanowski/master
update documentation for arm images builder
2019-12-12 09:21:54 -08:00
Sylvia Moss
c6b9efb522 Fix virtualbox-iso TestBuilderAcc_basic (#8481)
make sure the test works for later usage
2019-12-12 10:43:51 +01:00
Megan Marsh
0ca7c9f397 fix tests 2019-12-11 16:29:35 -08:00
Megan Marsh
5d266b20d0 generated func now validates based on data provided in context, which needs to include the future values if it is to be interpolated properly. 2019-12-11 15:43:38 -08:00
Megan Marsh
528b853178 stub out generated func for validation 2019-12-11 15:43:38 -08:00
Megan Marsh
7616fbcf3f skip shell local for now 2019-12-11 15:43:38 -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
ee336e6d12 decode data interface into generatedData 2019-12-11 15:43:38 -08:00
Megan Marsh
f4c3501af5 pass struct of generated data into provision() call 2019-12-11 15:43:38 -08:00
Mateusz Kaczanowski
f1765dfd79
Update _community_builders.html.md 2019-12-11 15:25:23 +01:00
Megan Marsh
822aa02500
Merge pull request #8468 from pfuender/master
Add version selection for chef-client provisioner
2019-12-10 12:29:32 -08:00
Mateusz Kaczanowski
a645b1d48e
Update _community_builders.html.md 2019-12-10 20:41:00 +01:00
Wilken Rivera
01e0ab5c0b
Merge pull request #8474 from alrs/prune-dead-do-test-code
post-processor/digitalocean-import: drop unused test functions
2019-12-10 11:33:45 -08:00
Megan Marsh
2b4a6f0479
Merge pull request #8442 from borgstrom/patch-1
iam:GetInstanceProfile is now required
2019-12-10 10:56:39 -08:00
Megan Marsh
2118fe72b0
Merge pull request #8471 from hashicorp/cleanup_logs
Cleanup logs
2019-12-10 10:55:55 -08:00
Megan Marsh
8073a5381c
Merge pull request #8475 from hashicorp/fix_8472
Return exit code 1 when builder type is not found
2019-12-10 10:42:33 -08:00
Moss
a0329ef196 Simplify testing template 2019-12-10 18:59:56 +01:00
Moss
7466c4fdca Return exit code 1 when builder type is not found 2019-12-10 18:55:18 +01:00
Lars Lehtonen
20d375f705
post-processor/digitalocean-import: drop unused test functions 2019-12-10 06:59:24 -08:00
Oded Priva
5e81c6f44e added the option to skip IAM instance profile validation (#8457) 2019-12-10 09:17:38 +01:00
Chris Doherty
1140504935 Merge remote-tracking branch 'packer-builder-vsphere/master' into cd/merge 2019-12-09 17:15:08 -08:00
Chris Doherty
ffcae91e8e Re-arrange directory structure for merge. 2019-12-09 17:14:55 -08:00
Wilken Rivera
a828a6a4e0
Merge pull request #8469 from hashicorp/td-prepare_changlog-linux-updates
prepare_changelog: Update regex to work with GNU grep
2019-12-09 12:46:00 -08:00
Megan Marsh
2447c9b280 typo 2019-12-09 12:30:14 -08:00