Commit Graph

167 Commits

Author SHA1 Message Date
Adrien Delorme e1c84806cc rewrap 2020-03-16 14:55:03 +01:00
Adrien Delorme dab689ce2e WIP 2020-03-16 12:19:34 +01:00
Megan Marsh 6008f911fd
Merge pull request #8847 from takaishi/support-keyboard-interactive
communicator/ssh: support keyboard-interactive auth to connect bastion
2020-03-13 11:48:12 -07:00
Adrien Delorme 6e6490d688 WIP 2020-03-13 18:04:48 +01:00
r_takaishi f50ff1d270 make generate 2020-03-13 11:29:42 +09:00
Wilken Rivera 66ad6f3483
builders: Fix gosimple S1007 linting issue (#8871)
Results before change
```
⇶  golangci-lint run ./... --disable-all --enable=gosimple | grep 1007
builder/alicloud/ecs/image_config.go:208:9: S1007: should use raw string
post-processor/vsphere-template/step_mark_as_template.go:130:8: S1007: shape twice (gosimple)
builder/azure/arm/config.go:58:27: S1007: should use raw string (`...`)
builder/azure/arm/config.go:59:27: S1007: should use raw string (`...`)
builder/qemu/driver.go:192:15: S1007: should use raw string (`...`)
```

Results after change
```
⇶  golangci-lint run ./... --disable-all --enable=gosimple | grep 1007
```
2020-03-11 10:29:22 +01:00
Megan Marsh eeac289fa5
Merge pull request #8535 from alexyueer/master
fix issue #8534
2020-01-07 12:47:23 -08:00
alexyueer ec4a7b6af0 support aliyun profile 2020-01-03 12:17:34 +08:00
wujin 2e2f197bc3 add SecurityGroupId when DescribeSecurityGroups if user specify SecurityGroupId 2019-12-24 09:47:52 +08:00
Megan Marsh 127905e855 remove time flaky time limited tests (#8522)
* remove flaky test. It isn't very useful anyway given that we're slowly adding retries to the checks for lockfiles

* remove time-component from retry test; in underpowered CI builds, this can flake fairly often.
2019-12-20 08:16:18 +01:00
zhuzhih2017 66445ecd2d
Merge pull request #8425 from haoshuwei/master
add show expired arg when describe image
2019-12-20 13:33:55 +08:00
haoshuwei 37dc411f30 add skip_image_validation arg to use an expired image as the soure image
Signed-off-by: haoshuwei <haoshuwei24@gmail.com>
2019-12-20 11:28:31 +08: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
Megan Marsh 84063d2132 implement ID and Type values in the provisioner template info sharing 2019-12-13 11:57:01 -08:00
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme 55f1c734d0 fix alicloud docs a little 2019-09-20 15:10:02 +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 7d9798f5ee update AlicloudAccessConfig docs for SECURITY_TOKEN
SecurityToken=>SECURITY_TOKEN
2019-08-29 14:39:25 +02:00
Adrien Delorme 2efc94521b use trilean initializers in test where missing 2019-08-23 11:17:45 +02:00
Megan Marsh f7c8321a7e convert alicloud s.IOOptimized into trilean in code 2019-08-22 13:59:38 -07:00
Megan Marsh ecaec1ac58 swap out alicloud encryption *bools for trileans 2019-08-22 13:52:29 -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
Christian Muehlhaeuser 216afbaa8b
Fixed various typos
Just a bunch of nit-picky typo fixes.
2019-07-25 06:49:51 +02:00
Adrien Delorme 7a60990825 alicloud: use partials 2019-06-14 15:56:05 +02:00
Adrien Delorme daa9f9d34e Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-06-14 15:17:56 +02:00
Adrien Delorme cfda61b81f
Merge pull request #7747 from chhaj5236/bugfix/refine_io_optimize
let product API determine the default value of io_optimized
2019-06-14 11:58:03 +02:00
bozhi.ch b3277698f6 let product API determine the default value of io_optimized 2019-06-14 11:49:42 +08:00
bozhi.ch 6a5db1e948 cleanup image and snapshot if target image is still not available after timeout 2019-06-13 11:17:39 +08:00
Adrien Delorme 6e3dc1aa9a Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-06-12 14:28:11 +02:00
bozhi.ch 45249fc764 fix describing snapshots issue when image_ignore_data_disks is provided 2019-06-11 15:22:06 +08:00
Adrien Delorme 4bf6a56d71 split communitacor.SSH & communitacor.WinRM to facilitate documentation
put doc for communicator into the struct
2019-06-06 16:55:24 +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
wb-ywq399345 0da7b918ce support encryption with default service key 2019-04-26 15:12:07 +08:00
chhaj5236 6b081cc41c
update alicloud builder to use official SDK (#7477) 2019-04-26 10:37:49 +08: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
programmer04 596a9cc7ff Improve error message for AWS and Alibaba 2019-03-15 23:38:05 +01: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
wb-ywq399345 035b9e5cda fix 'Acceptance Tests can't find image problem' 2019-03-05 16:14:59 +08:00
bozhi.ch 0174a502eb support -force option and update docs 2018-12-05 11:50:35 +08:00
bozhi.ch a485bcfdf3 delete copied image and snapshots if corresponding options are specified 2018-11-28 21:34:21 +08:00
bozhi.ch 7704ff2f24 apply tags to relevant snapshots 2018-11-26 16:58:32 +08:00
bozhi.ch 3c1395eb04 support wait_snapshot_ready_timeout for much bigger disk 2018-11-25 16:05:26 +08:00
bozhi.ch 3c2c13a021 support creating image without data disks 2018-11-19 15:25:12 +08: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
bozhi.ch c3a60ad0ce add options for system disk properties 2018-10-30 21:09:59 +08:00
Matthew Hooker 9181570bc3
remove stray struct dumps in logs 2018-09-27 00:14:05 -07:00
zhuzhih2017 676b28ecc5
Merge pull request #6764 from chhaj5236/feature/support_disable_stop_instance
support disable_stop_instance option for some specific scenarios
2018-09-27 14:52:07 +08:00
bozhi.ch bb19cdeb55 support disable_stop_instance option for some specific scenarios 2018-09-25 22:02:05 +08:00
bozhi.ch 1f3a517a19 fix type error in step_create_tags 2018-09-25 20:20:10 +08:00
zhuzhih2017 9e3e2e83ae
Merge pull request #6720 from chhaj5236/fix/attach_keypair
fix attaching keypair error due to missing keypair name
2018-09-19 14:14:55 +08:00
bozhi.ch 3c312eb2a0 change b.config to pointer 2018-09-18 21:40:57 +08:00
chhaj5236 43e091de15
Merge branch 'master' into feature/support_tags 2018-09-17 16:50:44 +08:00
zhuzhih2017 31bbe2983b
Merge pull request #6688 from chhaj5236/feature/support_ssh_private_ip
support ssh with private ip address
2018-09-17 16:46:38 +08:00
bozhi.ch b3aae89a53 fix attaching keypair error due to missing keypair name 2018-09-16 18:19:00 +08:00
bozhi.ch b8a3e3b8f4 support adding tags to image 2018-09-16 18:16:13 +08: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
bozhi.ch 743be8a808 support ssh with private ip address 2018-09-11 16:56:57 +08:00
Adrien Delorme 0938b640cc use key pair name from config 2018-08-29 14:40:33 +02:00
Adrien Delorme 1e71712cc9 builder.alicloud: stop using config from statebag 2018-08-29 14:40:33 +02:00
Adrien Delorme dffcbb7a35 builder.alicloud: use c.Comm for ssh 2018-08-29 14:40:33 +02:00
Adrien Delorme 9a9b82715b config.Comm.SSHKeyPair => SSHKeyPairName 2018-08-29 14:40:33 +02:00
Adrien Delorme b83c72fd54 more private keys in config 2018-08-29 14:40:32 +02:00
Adrien Delorme 51d2aac9f6 SSHPrivateKey => SSHPrivateKeyFile 2018-08-29 14:40:32 +02:00
Megan Marsh 340363a649
Merge pull request #6613 from hashicorp/merge_ssh_config_funcs
Merge ssh config funcs from builders
2018-08-23 16:03:36 -07:00
Adrien Delorme 41f6e0334d refactor all copy pasted sshConfig with into communicator.Config.SSHConfigFunc
* still need to append the auth methods into an array for gracefullness
2018-08-22 17:02:23 +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
He Guimin 1a17b799f1 Support describing and checking source image coming from marketplace 2018-08-15 00:14:02 +08:00
willmao 7bab499b73 fix vpc clean up issue 2018-06-25 09:16:06 +08:00
willmao f511c706c9 fix alicloud builder eip allocating issue 2018-06-23 16:34:45 +08:00
Pavel Vasilevich 4e2b1756f9 Fix misprints in steps names 2018-06-15 12:12:40 +07:00
DanHam 96adb4a9d1
Remove tmp files created by builder/alicloud/ecs tests 2018-04-30 18:16:46 +01:00
Josh Soref 933ac20e68 spelling: instance 2018-03-13 08:04:50 +00:00
Josh Soref 3a31baae4f spelling: incorrect 2018-03-13 08:00:05 +00:00
Josh Soref 939e7d5587 spelling: delete 2018-03-13 07:36:38 +00:00
Josh Soref 7895051962 spelling: attribute 2018-03-13 07:12:16 +00:00
Josh Soref 75a7ceec48 spelling: alicloud 2018-03-13 07:09:12 +00:00
Josh Soref fe98bcc5a1 spelling: address 2018-03-13 07:07:10 +00:00
Matthew Hooker 7a189a83a1
fix imports
`find . -type f -name '*.go' -not -path "./vendor/*" -exec goimports -w {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker a831d522be
change run signatures
Run now takes a context as well as a statebag. We'll assign the context
to the blank identifier to prevent namespace collisions. We'll let the
step authors opt-in to using the context.

`find . -iname "step_*.go" -exec gsed -i'' 's/func \(.*\)Run(/func \1Run(_ context.Context, /' {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker 366dc3da0a
move multistep imports to helper.
gomvpkg -from "github.com/mitchellh/multistep" -to "github.com/hashicorp/packer/helper/multistep"
2018-01-24 17:09:15 -08:00
Matthew Hooker ebe995c0ff
run goimports 2018-01-22 17:21:10 -08:00
QuantumGhost a90376f12a Attach keypair before starting instance in alicloud builder
[Documentation of `AttachKeyPair`](https://goo.gl/gC3srG) states that
attaching keypair to running instance takes effect after reboot.
So we need to attach keypair before starting instance to avoid an
additional restart.
2017-12-29 10:13:26 +08:00
zhuzhih2017 bdc1fa0527
Merge pull request #5641 from zhuzhih2017/master
Add security token supported and TLS handshake timeout support
2017-11-28 11:15:56 +08:00
zhuzhih2017 de0017c37a Add security token supported and TLS handshake timeout support 2017-11-28 10:32:17 +08:00
Joe Ferguson 5c2f758053 🎨 Fix typo in "copyed" -> "copied" usages. 2017-10-26 07:42:49 -05:00
zhuzhih2017 1861a22c77 Merge pull request #5219 from zhuzhih2017/master
update alicloud go sdk and enable multi sites support for alicloud
2017-09-06 09:41:38 +08:00
Luke Farnell 7c3eb33cda Fixed spelling mistakes 2017-08-07 13:45:50 -04:00
zhuzhih2017 096a0cd4fb update aliyun go sdk and enable multi sites support for alicloud 2017-08-04 09:56:04 +08:00
zhuzhih2017 8cf8079cad rename variable name to avoid misunderstanding 2017-07-21 09:47:21 +08:00
zhuzhih2017 62da0e7607 fix keypair error for debug mode and increate the wait time to avoid the timeout failure, add the more example 2017-07-20 11:13:59 +08:00
Kent Wang e59678a033 Fix alicloud-ecs typo
* Fix typo: internet_max_bandwith_out -> internet_max_bandwidth_out
2017-06-11 16:03:28 +08:00
Kent Wang 6da9802a33 builder/alicloud-ecs: Fix chooseNetworkType
* Choose VpcNet when KeyPairName is set
* Code cleanup
2017-06-11 16:01:09 +08:00
Kent Wang a40bb9af99 Fix ssh config must specify HostKeyCallback
Fixes: #5001
2017-06-11 15:58:45 +08:00
zhuzhih2017 2de00f2ff8 add check rule for image_name 2017-06-02 16:47:50 +08:00