packer/command
Lucas Bajolet ec1d2e68f5 hcp: generate fingerprints on each new build
Fingerprints are how we link a packer build to an iteration on HCP.
These are computed automatically from the Git SHA in the current state,
and are unique to the bucket/iteration.

The main problem with this approach is that while sound in theory, it
quickly falls apart when users want to run the same build configuration
twice, but expect a new image to be created.

With the current model, this fails, as the iteration with the current
SHA already exists.

While this is solvable through environment variables, or by committing a
change to the repository, we think this is not clear enough, and causes
an extra step to what should otherwise be a simple process.

Therefore, to lower the barrier of entry into HCP, we change this
behaviour with this commit.

Now, fingerprints are randomly generated ULIDs instead of a git SHA, and
a new one is always generated, unless one is already specified in the
environment.

This makes continuation of an existing iteration a conscious choice
rather than something automatic, and virtually eliminates conflicts such
as the ones described above.
2023-01-25 15:29:26 -05:00
..
enumflag move the various flag packages from helper to command, since command is the only package that uses them. 2020-11-16 14:23:35 -08:00
flag-kv move the various flag packages from helper to command, since command is the only package that uses them. 2020-11-16 14:23:35 -08:00
flag-slice move the various flag packages from helper to command, since command is the only package that uses them. 2020-11-16 14:23:35 -08:00
test-fixtures hcl2: don't warn on excluded post-processor (#12187) 2023-01-11 14:30:02 -05:00
build.go hcp: generate fingerprints on each new build 2023-01-25 15:29:26 -05:00
build_cancellation_test.go pin packer to golang 1.16 (#10702) 2021-03-02 11:43:58 +01:00
build_cleanup_script_test.go Packer SVC acc tests (#11274) 2021-12-01 15:58:33 +01:00
build_parallel_test.go HCL2 Parse packer.required_plugins block + packer init (#10304) 2021-02-02 18:05:04 +01:00
build_test.go hcl2: don't warn on excluded post-processor (#12187) 2023-01-11 14:30:02 -05:00
build_timeout_test.go HCL2 Parse packer.required_plugins block + packer init (#10304) 2021-02-02 18:05:04 +01:00
build_windows_test.go add possibility to use variables everywhere in post-processor blocks (#11094) 2021-06-15 18:29:26 +02:00
cli.go command/validate: add option to eval datasources 2022-11-17 09:29:55 -05:00
command_test.go command: move func to extract stdout/err in tests 2022-09-23 12:07:32 -04:00
config_file_unix.go update all plugins + pin go to go 1.17 (#11237) 2021-09-02 12:15:13 +02:00
config_file_windows.go update all plugins + pin go to go 1.17 (#11237) 2021-09-02 12:15:13 +02:00
configtype_enumer.go packer console for HCL2 (#9359) 2020-06-05 17:23:54 +02:00
console.go (2) Implement datasources (#10440) 2021-01-20 10:37:16 +01:00
console_test.go console: allow to use console when there are untyped vars (#9864) 2020-09-02 17:19:56 +02:00
exec_test.go hcl2_upgrade: add share_image_gallery workaround (#12087) 2022-10-27 18:09:40 -04:00
fix.go packer fix: state that the command does not work for hcl files (#11238) 2021-08-31 16:12:47 +02:00
fix_test.go remove sdk 2020-12-17 13:29:25 -08:00
fmt.go fix TEMPATE to TEMPLATE in fmt cmd 2021-04-19 14:07:22 +02:00
fmt_test.go fix: print unchanged formatted file when using stdin (#11047) 2021-06-03 14:02:42 +02:00
hcl2_upgrade.go cmd/hcl2_upgrade: Generate variable block for all referenced user input variables (#12136) 2022-11-30 15:25:25 -05:00
hcl2_upgrade_test.go cmd/hcl2_upgrade: Generate variable block for all referenced user input variables (#12136) 2022-11-30 15:25:25 -05:00
init.go packer init: better error handling with a special care for gh rate limit errors (#11330) 2021-10-14 13:57:59 +02:00
init_test.go test: use T.Setenv to set env vars in tests 2022-09-20 14:54:20 -04:00
inspect.go (2) Implement datasources (#10440) 2021-01-20 10:37:16 +01:00
inspect_test.go HCL2: allow calling env as input var default value (#10240) 2020-11-11 11:27:32 +01:00
meta.go core: Update validation options for undeclared variables (#12104) 2022-11-14 17:06:45 -05:00
plugin.go feat: add http datasource (#11658) 2022-05-17 19:26:34 +02:00
plugins.go Add packer plugins command and subcommands to interact with plugins (#11553) 2022-02-10 16:53:50 -05:00
plugins_install.go Add tests for the packer plugins subcommand (#11660) 2022-03-15 16:32:49 -04:00
plugins_install_test.go test: use T.Setenv to set env vars in tests 2022-09-20 14:54:20 -04:00
plugins_installed.go Add packer plugins command and subcommands to interact with plugins (#11553) 2022-02-10 16:53:50 -05:00
plugins_remove.go Set default file extension for binary removal on Windows (#11627) 2022-03-04 10:50:26 +01:00
plugins_remove_test.go test: use T.Setenv to set env vars in tests 2022-09-20 14:54:20 -04:00
plugins_required.go Add packer plugins command and subcommands to interact with plugins (#11553) 2022-02-10 16:53:50 -05:00
signal.go remove sdk 2020-12-17 13:29:25 -08:00
test_utils.go command: move func to extract stdout/err in tests 2022-09-23 12:07:32 -04:00
utils.go build using HCL2 (#8423) 2019-12-17 11:25:56 +01:00
utils_test.go simplify fmt test case a little 2021-03-12 11:07:26 +01:00
validate.go hcp: remove superfluous return value on GetBuilds 2022-12-22 16:06:34 -05:00
validate_test.go Update BuildBlock with valid HCL2Ref (#12167) 2022-12-20 15:37:59 -05:00
vendored_plugins.go Remove Oracle plugin from the list of vendored plugins (#11983) 2022-09-15 12:31:52 -04:00
version.go packer.io prefix removal, html extension remove for in-code errors 2020-04-07 17:53:22 -04:00
version_test.go command: version tests 2014-10-27 20:58:44 -07:00