Adrien Delorme
db6c3adbba
add hcl2 provisioner type that reprepares itself
2020-07-02 18:02:19 +02:00
Adrien Delorme
7969b690de
Revert "Share build info with Provisioner and Post-Processor via HCL2 variables ( #9444 )"
...
This reverts commit 99046c9178
.
2020-07-02 15:07:29 +02:00
Sylvia Moss
99046c9178
Share build info with Provisioner and Post-Processor via HCL2 variables ( #9444 )
2020-06-29 13:44:57 +02:00
Adrien Delorme
c2975140cf
HCL2: allow to use keep_input_artifact in post processors ( #9477 )
...
* HCL2: allow to use keep_input_artifact in post processors
* add basic test
* add docs
2020-06-25 09:36:48 +02:00
Adrien Delorme
51d02f8c2d
hcl2: inspect command
2020-06-23 11:58:57 +02:00
Megan Marsh
42e98f15ae
make sure the no-op progress bar gets used for machine readable uis
2020-06-17 11:57:12 -07:00
Moss
daaeccd8b0
Skip consecutives post-processors
2020-06-09 17:35:53 +02:00
Moss
bfb9df0039
fix except flag for JSON and HCL2
2020-06-09 15:26:45 +02:00
Wilken Rivera
f672f5bd9b
command/validate: Add support for HCL2 configuration files
...
* Update validate command to use FixConfig for checking against known
fixers
* Update validation command flag docs
* Add ConfigFixer method to PackerHandler Interface
* Implement ConfigFixer interface in PackerConfig
* Remove all stdout messaging (i.e calls to c.Ui.Say) in the validate
command. The command will only display hcl.Diagnotic messaging when there is an error or warning.
HCL2 Configs
```
⇶ packer validate docker_centos_shell_provisioner.pkr.hcl
```
JSON Configs
```
⇶ packer validate vmware-iso_ubuntu_minimal/vmware-iso_ubuntu_minimal.json
Error: Failed to prepare build: "vmware-iso"
1 error occurred:
* Deprecated configuration key: 'iso_checksum_type'. Please call `packer fix`
against your template to update your template to be compatable with the current
version of Packer. Visit https://www.packer.io/docs/commands/fix/ for more
detail.
Warning: Fixable configuration found.
You may need to run `packer fix` to get your build to run correctly.
See debug log for more information.
map[string]interface{}{
"builders": []interface{}{
map[string]interface{}{
... // 3 identical entries
"guest_os_type": string("ubuntu-64"),
"http_directory": string("http"),
- "iso_checksum":
string("946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"),
+ "iso_checksum":
string("sha256:946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"),
- "iso_checksum_type": string("sha256"),
"iso_url":
string("http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04.1-server-amd64.iso "),
"shutdown_command": string("echo 'vagrant' | sudo -S shutdown -P now"),
... // 4 identical entries
},
},
}
```
2020-06-05 14:24:39 -04:00
Adrien Delorme
bac9c74447
packer console for HCL2 ( #9359 )
2020-06-05 17:23:54 +02:00
Adrien Delorme
3c5a1e5878
show build block name and source name if possible
2020-06-02 11:43:27 +02:00
Adrien Delorme
b4aa71aef2
Merge remote-tracking branch 'origin/master' into pr/AdrienneCohea/9245
2020-06-02 11:36:32 +02:00
Megan Marsh
45be673c0f
move this to after the prepare() is successful so that we don't try to run builds that didn't prepare successfully.
2020-05-28 11:34:00 -07:00
Adrien Delorme
40947c2bf6
HCL2: generate hcl tags with go-cty tags too ( #9306 )
...
This will allow to generate the config files:
```go
package main
import (
"fmt"
"github.com/hashicorp/hcl/v2/gohcl"
"github.com/hashicorp/hcl/v2/hclwrite"
"github.com/hashicorp/packer/builder/alicloud/ecs"
)
func main() {
name := "name"
app := ecs.FlatConfig{
AlicloudImageName: &name,
ECSSystemDiskMapping: &ecs.FlatAlicloudDiskDevice{
DiskName: &name,
},
}
f := hclwrite.NewEmptyFile()
block := gohcl.EncodeAsBlock(&app, `source "something" "something"`)
f.Body().AppendBlock(block)
fmt.Printf("%s", f.Bytes())
}
```
Will output:
```
source "something" "something" {
packer_user_variables = null
packer_sensitive_variables = null
image_name = "name"
image_share_account = null
image_unshare_account = null
image_copy_regions = null
image_copy_names = null
tags = null
tag = null
system_disk_mapping = { disk_category = null, disk_delete_with_instance = null, disk_descri
ption = null, disk_device = null, disk_encrypted = null, disk_name = "name", disk_size = null, disk_
snapshot_id = null }
image_disk_mappings = null
ssh_remote_tunnels = null
ssh_local_tunnels = null
ssh_public_key = null
ssh_private_key = null
}
```
This is a good first step for #9015 and #9282
fix #9304
2020-05-28 11:19:00 +02:00
Megan Marsh
3dc4ba2d68
Json vs HCL2 parity refactor ( #9301 )
...
* refactor so that json and hcl2 templates are both prepared in the same place in the build call, to make code easier to reason about. Remove overly verbose error output which isn't useful in vast majority of cases
* fix tests
* check err msg
* hcl2template.PackerConfig.GetBuilds: raise a diagnostic in case the packer core build perpare call errors
Co-authored-by: Adrien Delorme <adrien.delorme@icloud.com>
2020-05-28 10:43:58 +02:00
Megan Marsh
1c214628ed
Merge pull request #9234 from hashicorp/hcl_force_and_debug
...
enable force, debug, and on-error for hcl2 builds
2020-05-19 16:02:06 -07:00
Sylvia Moss
1c30a71d09
Replace file shared state by statebag ( #9238 )
2020-05-19 11:49:48 +02:00
Adrienne Cohea
6aea8ead6a
Support named builds in HCL2 templates.
2020-05-17 22:13:35 -07:00
Megan Marsh
ee5635722b
enable force, debug, and on-error for hcl2 builds
2020-05-14 16:22:51 -07:00
Adrien Delorme
52b2151b21
go generate ./packer
2020-05-12 16:19:26 +02:00
Adrien Delorme
d147ebe79f
packer/new_stuff.go => packer/run_interfaces.go
2020-05-12 12:31:05 +02:00
Adrien Delorme
d34cecc668
Update new_stuff.go
2020-05-12 12:29:31 +02:00
Adrien Delorme
ec083083ce
Update new_stuff.go
2020-05-08 16:59:19 +02:00
Adrien Delorme
7e45a1e950
fix enum
2020-05-08 16:54:44 +02:00
Adrien Delorme
42a05e1e80
more refactoring
2020-05-08 16:41:47 +02:00
Adrien Delorme
e50eb341bf
Update core_test.go
2020-04-30 16:40:58 +02:00
Adrien Delorme
c71a792186
simplify/refactor core for build & validate
2020-04-30 16:36:01 +02:00
Sylvia Moss
553b1fb9f8
Add RetriedProvisioner to allow retry provisioners ( #9061 )
2020-04-16 11:58:54 +02:00
Megan Marsh
890d7b2ec4
Merge pull request #8875 from hashicorp/fix_8812
...
Fix user var recursion with env vars
2020-03-13 12:52:17 -07:00
Megan Marsh
32595f71cf
sort interpolation input to make the interpolation deterministic
2020-03-12 13:40:56 -07:00
Megan Marsh
17f59c4ddc
fix regex and actually test the check function
2020-03-12 10:00:56 -07:00
Megan Marsh
ad5495ac8f
Update packer/core.go
...
Co-Authored-By: Adrien Delorme <azr@users.noreply.github.com>
2020-03-12 09:50:02 -07:00
Megan Marsh
051155270f
add test for fixed behavior
2020-03-11 12:48:35 -07:00
Megan Marsh
52f03de0f0
adding tests
2020-03-11 10:49:45 -07:00
Megan Marsh
063dd5c133
fix interpolation when env vars interpolate before user vars
2020-03-11 09:55:40 -07:00
Wilken Rivera
b9f1b3c8d4
Fix gosimple S1005 linting issue ( #8870 )
...
Results before change
```
⇶ golangci-lint run ./... --disable-all --enable=gosimple | grep 1005
fix/fixer_comm_config.go:48:4: S1005: should write `sshHostPortMinRaw := builders["ssh_host_port_min"]` instead of `sshHostPortMinRaw, _ := builders["ssh_host_port_min"]` (gosimple)
fix/fixer_comm_config.go:64:4: S1005: should write `sshHostPortMaxRaw := builders["ssh_host_port_max"]` instead of `sshHostPortMaxRaw, _ := builders["ssh_host_port_max"]` (gosimple)
fix/fixer_comm_config.go:81:4: S1005: should write `sshSkipNatMappingRaw := builders["ssh_skip_nat_mapping"]` instead of `sshSkipNatMappingRaw, _ := builders["ssh_skip_nat_mapping"]` (gosimple)
packer/artifact_mock.go:47:2: S1005: should write `value := a.StateValues[name]` instead of `value, _ := a.StateValues[name]` (gosimple)
packer/artifact_test.go:31:2: S1005: should write `value := a.state[name]` instead of `value, _ := a.state[name]` (gosimple)
```
Results after change
```
```
2020-03-11 10:30:08 +01:00
Sylvia Moss
2981fd627d
Avoid calling CoreBuild.Prepare(...) for HCL2 templates ( #8742 )
2020-02-14 17:39:32 +01:00
Sylvia Moss
23fa3107a3
Render variables one time on prepare method ( #8727 )
2020-02-13 17:35:23 +01:00
Megan Marsh
00dfb79c88
Merge pull request #7627 from hashicorp/inplace_isos
...
Inplace isos
2020-02-11 11:19:10 -08:00
Wilken Rivera
a684fae28f
mapstructure-to-hcl2: Update code formatter to use golang/x/tools/imports
2020-02-07 14:15:43 -05:00
Adrien Delorme
a19214afeb
Allow to use isos in place
2020-02-06 17:07:58 +01:00
Megan Marsh
6a07d76416
Merge pull request #8654 from hashicorp/fix_8583
...
Extract http ip discover to a new step
2020-01-28 08:50:48 -08:00
Sylvia Moss
328eb8ee96
Interpolate boot_command when defined by user variable ( #8640 )
2020-01-27 19:10:16 +01:00
Moss
0566f1f999
Extract http ip discover to a new step
2020-01-27 17:06:56 +01:00
Megan Marsh
76fa85fd93
Merge pull request #8613 from hashicorp/add_pp_names
...
log name of postprocessor running to disambiguate long chains of pps
2020-01-16 13:12:02 -08:00
Adrien Delorme
c905418d4e
Avoid field confusion be naming fields in packer/build_test.go
2020-01-16 16:24:33 +01:00
Adrien Delorme
2d1a67c6cb
hcl2: allow to optionnaly name provisioners and post-processors
2020-01-16 12:08:39 +01:00
Sylvia Moss
0677b02e18
Share SourceImageName with provisioners and manifest post-processor ( #8603 )
2020-01-16 12:04:03 +01:00
Megan Marsh
b5075a35c0
fix tests
2020-01-15 15:36:52 -08:00
Megan Marsh
e228a5bcb9
log name of postprocessor running to disambiguate long chains of pps
2020-01-15 14:47:56 -08:00