Adrien Delorme
2f63e4e79d
refactor term interrupts & have RunContext take a conf struct now
2020-05-08 12:05:14 +02:00
Adrien Delorme
532a69c968
Update command.go
2020-05-08 12:00:06 +02:00
Adrien Delorme
5290beb23e
Update cli.go
2020-05-08 11:59:10 +02:00
Adrien Delorme
a5ab87ca44
add scaffolding for the new packer command layout
2020-05-07 17:52:49 +02:00
Megan Marsh
6a682aca2e
Merge pull request #9124 from GennadySpb/yandex-export-post-processor
...
[WIP] Yandex export post processor
2020-05-05 11:01:13 -07:00
nqb
be08eddd8d
remove useless comment
...
-var-file allow an HCL file
2020-05-01 11:18:47 +02:00
Adrien Delorme
4047113746
Update build.go
2020-04-30 16:40:16 +02:00
Adrien Delorme
2c556ed8c0
remove clarified comment
2020-04-30 16:37:23 +02:00
Adrien Delorme
c71a792186
simplify/refactor core for build & validate
2020-04-30 16:36:01 +02:00
Adrien Delorme
7aaee62970
command/build: don't reset error code in case an error hapened
2020-04-30 12:10:13 +02:00
Adrien Delorme
5c2b8da63b
get builds from PackerConfig instead of parser
...
to allow just reading the config and to not start anything. This will allow to later on run `validate --syntax-only`.
Note that none of the builder/provisioner/post-processor config will be read but simply ignored. HCL2 still needs the body to be properly formatted and it should detect most syntax errors.
2020-04-29 16:36:40 +02:00
Tom Dyas
c0a6623ea2
teach HCL mode builds to honor -only and -except options ( #8947 )
2020-04-28 15:03:24 +02:00
Gennady Lipenkov
d5a6781fb7
Add new 'yandex-export' post-processor
2020-04-27 02:20:30 +03:00
Megan Marsh
217dcbb97f
golang 1.14 doesn't like calling NewFile on existing files. Port solution over from Terraform
2020-04-09 14:38:17 -07:00
Adrien Delorme
2af40c762b
HCL2: pass on builder type and name ( #8956 )
...
* sets `packer_build_name` and `packer_builder_type` variables for builder provisioners and post-processors in HCL2
* allows to use the new `${source.type}` and `${source.name}` variables in HCL2
* fixes #8932
Note that the common.PackerConfig is used everywhere and was not set for HCL2, this had some implications:
For #8923 you can see the issue here:
dde74232f2/builder/lxd/config.go (L61-L63)
More random examples of where this could cause an issue :
0785c2f6fc/provisioner/ansible-local/provisioner.go (L380-L381)
b4efd13a4d/builder/amazon/ebs/builder.go (L232-L236)
* [All references to PackerConfig.PackerBuildName](https://sourcegraph.com/github.com/hashicorp/packer@ff6a039d5bb45e34ff761d9c52e8b98972288447/-/blob/common/packer_config.go#L7:2&tab=references )
* [All references to PackerConfig.PackerBuilderType](https://sourcegraph.com/github.com/hashicorp/packer@ff6a039d5bb45e34ff761d9c52e8b98972288447/-/blob/common/packer_config.go#L8:2&tab=references )
2020-04-09 11:14:37 +02:00
Jeff Escalante
9165be87da
packer.io prefix removal, html extension remove for in-code errors
2020-04-07 17:53:22 -04:00
Vaijanath Angadihiremath
fd21b669db
Fixing the linting errors now required for merging
2020-04-02 17:22:16 -07:00
Vaijanath Angadihiremath
c815a5df67
Fixing the Make Ci errors
2020-04-02 17:18:41 -07:00
Vaijanath Angadihiremath
645cdf1a59
Updating the modules to include update to autorest 12.4
2020-04-02 17:13:36 -07:00
Megan Marsh
f5c98a7601
make sure cli vars supercede var files ( #8964 )
2020-03-30 10:31:59 +02:00
Adrien Delorme
d068430abf
make sure locals are evaluated only once variables are + test this ( #8918 )
...
fix #8898
2020-03-19 15:30:34 +01:00
Adrien Delorme
ad8dafa3bd
HCL: add tests and fixes around var-file and var args ( #8914 )
2020-03-19 13:57:22 +01:00
Adrien Delorme
88297c796d
Merge branch 'master' into hcl2_singular_blocks
2020-03-17 14:47:17 +01:00
Adrien Delorme
94a1f0bcb6
go fmt
2020-03-17 12:05:37 +01:00
Adrien Delorme
0a46bb9525
more precise docs
2020-03-17 11:50:16 +01:00
Adrien Delorme
b5e8750f5f
Change key/value to name/value to remain consistent with Terraform
2020-03-17 11:23:11 +01:00
Adrien Delorme
c8300b620a
allow to use hcl files as var files in HCL mode
...
fix #8781
2020-03-12 15:41:40 +01:00
Adrien Delorme
d2964d59e9
document that the `-var-file` option still expects JSON files for now
2020-03-03 17:19:51 +01:00
Wilken Rivera
9ec8b67392
Add golangci-lint to project ( #8686 )
...
* Add golangci-lint as linting tool
* Disable failing staticchecks to start; GitHub issue to handle coming soon
* Run `goimports -w` to repair all source files that have improperly
formatted imports
* makefile: Add ci-lint target to run on travis
This change adds a new make target for running golangci-lint on newly
added Go files only. This target is expected to run during Packer ci builds.
* .github/contributing: Add code linting instructions
* travis: Update job configuration to run parallel builds
2020-02-14 11:42:29 -05:00
Sylvia Moss
23fa3107a3
Render variables one time on prepare method ( #8727 )
2020-02-13 17:35:23 +01:00
Adrien Delorme
193dad46e6
Hcl2 input variables, local variables and functions ( #8588 )
...
Mainly redefine or reused what Terraform did.
* allow to used `variables`, `variable` and `local` blocks
* import the following functions and their docs from Terraform: abs, abspath, basename, base64decode, base64encode, bcrypt, can, ceil, chomp, chunklist, cidrhost, cidrnetmask, cidrsubnet, cidrsubnets, coalesce, coalescelist, compact, concat, contains, convert, csvdecode, dirname, distinct, element, file, fileexists, fileset, flatten, floor, format, formatdate, formatlist, indent, index, join, jsondecode, jsonencode, keys, length, log, lookup, lower, max, md5, merge, min, parseint, pathexpand, pow, range, reverse, rsadecrypt, setintersection, setproduct, setunion, sha1, sha256, sha512, signum, slice, sort, split, strrev, substr, timestamp, timeadd, title, trim, trimprefix, trimspace, trimsuffix, try, upper, urlencode, uuidv4, uuidv5, values, yamldecode, yamlencode, zipmap.
2020-02-06 11:49:21 +01:00
Megan Marsh
073eda76aa
remove extraneous files from when vsphere builder was a plugin, and move README into packer website as separated docs for vsphere-clone and vsphere-iso. Move option descriptions into struct code, and generate documentation directly from those structs as we do inside of the other builders
2020-01-07 16:59:31 -08:00
Megan Marsh
5bacd37014
fix pps
2019-12-17 16:13:21 -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
nywilken
3d56f8ac80
command/build: Fix URL to HCL2 syntax guide
...
* small typo fixes
2019-12-17 15:36:04 -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
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
mingsheng.su
2c513fce64
update ucloud packer
2019-10-29 16:11:43 -07:00
mingsheng.su
61f9d3a9fe
add ucloud import
2019-10-29 16:11:43 -07:00
Paul Meyer
7297d74c98
Add azure-chroot builder plugin
2019-10-15 21:13:37 +00:00
Megan Marsh
59efa0faee
rename option to error-cleanup-privisoner, which I think is clearer
2019-09-25 13:43:29 -07:00
Megan Marsh
0683bc409b
add test for error-cleanup provisioner, and fix tests by fixing null builder to use an actual none communicator instead of skipping communicator generation altogether
2019-09-25 13:39:09 -07:00
Megan Marsh
6688f436dd
Merge pull request #7960 from guidodobboletta/master
...
Fix console help text
2019-08-12 16:32:29 -07:00
xiaohan.liang
f4fc9dd09a
Rewrite all files, remove sensitive information
2019-08-09 15:00:23 +08:00
Guido Dobboletta
e79d62d006
Fix text
2019-08-08 13:22:59 -05:00
Thomas Meckel
d3202497ae
First working version of virtualbox/vm builder
2019-07-26 12:29:44 +02:00
Thomas Meckel
2a531f8ad6
Merged changes from local branch
2019-07-26 12:29:44 +02:00
Brendan Devenney
2b16b5cae4
Move fixer test to fix package
...
Signed-off-by: Brendan Devenney <brendan.devenney@form3.tech>
2019-07-24 18:04:17 +01:00
Brendan Devenney
6520814a6c
Ensure help output is consistently formatted
...
Signed-off-by: Brendan Devenney <brendan.devenney@form3.tech>
2019-07-24 17:41:57 +01:00
Brendan Devenney
75d8d7fce5
Update and futureproof fix command usage
...
* Dynamically generate the fixer documentation (in order) from
FixerOrder
* Update fixers which used linebreaks in their Synopsis
Signed-off-by: Brendan Devenney <brendan.devenney@form3.tech>
2019-07-24 17:18:07 +01:00
Brendan Devenney
91b7d8c572
Add test to ensure all fixers are enabled
...
Signed-off-by: Brendan Devenney <brendan.devenney@form3.tech>
2019-07-24 16:52:07 +01:00
Brendan Devenney
9f0bc29db5
Test that Fixers and FixerOrder are equal length
...
Signed-off-by: Brendan Devenney <brendan.devenney@form3.tech>
2019-07-24 16:51:39 +01:00
Marin Salinas
80dadaf3f1
feature: add bsuvolume builder and acceptance test
2019-07-18 09:39:08 -07:00
Marin Salinas
0c47ee55e6
feature: add chroot builder structure
2019-07-18 09:39:07 -07:00
Marin Salinas
c4e69d3169
wip: add bsu plugin acc testing
2019-07-18 09:39:07 -07:00
Marin Salinas
1281f28f6d
add prevalidate step
2019-07-18 09:39:07 -07:00
Marc Falzon
00c2df24df
Add Exoscale Import post-processor
...
This change adds a new `exoscale-import` post-processor allowing users
to create Private Templates on Exoscale.
2019-07-01 08:40:26 +02:00
mingsheng.su
6109ad79a3
Merge branch 'master' into feature/ucloud_builder
2019-06-26 10:09:28 +08:00
Adrien Delorme
5efab58ed8
allow to have timestamped colorless ui messages
2019-06-19 15:04:13 +02:00
mingsheng.su
d1b9ad90c8
Merge remote-tracking branch 'origin' into feature/ucloud_builder
2019-06-18 18:17:19 +08:00
mingsheng.su
c8bab9b382
add ucloud packer
2019-06-13 15:16:49 +08:00
Megan Marsh
f7bf80724c
document what a REPL is
2019-06-10 11:39:42 -07:00
Megan Marsh
53a5e90d78
Update command/console.go
...
Co-Authored-By: Adrien Delorme <azr@users.noreply.github.com>
2019-06-10 11:38:29 -07:00
Megan Marsh
7cce3157a8
Update command/console.go
...
Co-Authored-By: Adrien Delorme <azr@users.noreply.github.com>
2019-06-10 11:38:14 -07:00
Megan Marsh
668e92f2ca
add docs and the option to list variables from inside the console
2019-06-06 14:26:12 -07:00
Megan Marsh
df916e805e
borrow wrappedreadline workarounds from terraform and implement a similar check for piped commands; this makes the cli experience much cleaner
2019-06-06 13:26:07 -07:00
Megan Marsh
b8ac1a800d
implement a packer console analogous to the terraform console
2019-06-05 16:35:22 -07:00
Adrien Delorme
cb2d89af6f
simplify path parsing by making at string instead of an array + add tests
2019-05-07 11:51:21 +02:00
Adrien Delorme
a4b8570991
refactor arg parsing into it's own cfg maker & test it
2019-05-07 11:43:18 +02:00
Adrien Delorme
7e8c42d243
BuildCommand: put config in a local struct
2019-05-07 11:15:35 +02:00
Adrien Delorme
cdbb742496
add more cancellation tests
2019-05-06 16:29:35 +02:00
Adrien Delorme
73a55631c4
fix testfile call
2019-05-06 15:47:53 +02:00
Adrien Delorme
2890687b2b
fix race condition in BuildCommand
...
a map[string]error was being written on unprotectedly
2019-05-06 15:42:23 +02:00
Adrien Delorme
af15ed3583
nil signals are probably just a cancellation in disguise
2019-05-06 15:29:59 +02:00
Adrien Delorme
583d93790f
add tests for cancellation while building
2019-05-06 15:07:57 +02:00
Adrien Delorme
dd2785ff08
BuildCommand.Run: avoid triggering a cancellation on termination
2019-05-06 12:26:22 +02:00
Adrien Delorme
0094d2878c
Build: move BuildCommand.Run into a RunContext command to allow testing for cancellation, put cancellation in `Run`
2019-05-06 12:19:59 +02:00
Adrien Delorme
a2cc2532ea
add TestBuildParallel_Timeout to test errors on parallel builds
2019-05-03 09:02:56 +02:00
Adrien Delorme
d40d3eca88
swap semaquire and wg.Add to avoid a deadlock
2019-05-03 08:19:33 +02:00
Adrien Delorme
263f318e82
be true to docs
2019-05-02 17:48:34 +02:00
Adrien Delorme
1dca416f87
move the semacquire to the main build loop so that the build order is kept
...
* a goroutine could start before another !
2019-05-02 16:58:28 +02:00
Adrien Delorme
852af993e6
BuildParallel: test with 3 parallel builds
2019-05-02 16:24:28 +02:00
Adrien Delorme
9281fada2d
prevent a breaking change so that we can merge the `-parallel-builds` option first.
2019-05-02 16:24:28 +02:00
Adrien Delorme
14486003a1
fix test to be race free
2019-05-02 15:04:02 +02:00
Adrien Delorme
c1527d9b47
fix text
2019-05-02 14:41:44 +02:00
Adrien Delorme
ae71a81c1e
Merge remote-tracking branch 'origin/master' into pr/7501
2019-05-02 11:47:43 +02:00
Brett Wandel
aaf56ffd26
added: testing
2019-05-02 08:38:56 +10:00
Brett Wandel
76b5c1995f
fixed: small changes to cancellation on ctrl-c
2019-04-19 17:10:36 +10:00
Marques Johansson
99987c2d56
Add Linode Images builder
...
Packer Builder for [Linode Images](https://www.linode.com/docs/platform/disk-images/linode-images/ )
Adds the following builder:
* `linode`
Based on https://github.com/linode/packer-builder-linode (MPL/2)
(formerly maintained by @dradtke). Includes website docs and tests.
Relates to #174 , #3131
2019-04-15 20:40:59 -04:00
Adrien Delorme
97f2914c6a
Merge pull request #7484 from yandex-cloud/yandex-cloud-builder
...
Builder for Yandex.Cloud
2019-04-15 14:02:43 +02:00
Brett Wandel
92e75f838a
added the ability to limit number of builds running in parallel
2019-04-13 22:31:54 +10:00
Adrien Delorme
d2f036ec44
Revert "Revert "Merge pull request #7391 from carlpett/proxmox-builder""
...
This reverts commit 032527ecfe
.
2019-04-12 12:26:34 +02:00
Gennady Lipenkov
8f53ca5e5e
Add 'yandex' plugin as Builder
2019-04-12 01:00:54 +03:00
Adrien Delorme
032527ecfe
Revert "Merge pull request #7391 from carlpett/proxmox-builder"
...
This reverts commit b7d62b2ae0
, reversing
changes made to c36eaf16f7
.
2019-04-11 14:19:25 +02:00
Adrien Delorme
0b4ada9690
make sleep provisioner available to packer
2019-04-08 20:09:22 +02:00
Adrien Delorme
d7b1b597a7
test provisionning timeout
2019-04-08 20:09:21 +02:00
Adrien Delorme
a81abd297b
Merge remote-tracking branch 'origin/master' into context_provisioner
2019-04-08 20:09:01 +02:00