release-full has been added to the Packer release
artifacts. The release-full image includes Packer and all the official
plugins pre-installed in its environment. This image is being offered as an
alternative option for those users who may still be relying on the plugin
versions bundled into the Packer binary.
GH-12532packer init command for HCL2
template builds.GH-12535packer:release-full has been added for all
supported architectures. The release-full image includes Packer and all the
official plugins pre-installed in its environment.
GH-12532Vendored plugins within Packer have not been updated. Plugin releases occur on
a regular basis to address issues and feature requests.
Please note that in an upcoming version of Packer, we will remove the last
bundled plugins from Packer.
Users are encouraged to use packer init for HCL2 templates or
packer plugins install with legacy JSON templates for installing external
plugins.
Packer will now warn when using bundled plugins. This feature will be removed in a future version of the tool, so this warning is meant to bring awareness of the upcoming change, and to help users update their environment/templates to be ready for this. GH-12495
Fixed a bug with how Packer was discovering plugins: in order to load
plugins, Packer would recursively scan all the known directories in which
we could have installed plugins. This caused unnecessary directory
walks and slowdowns upon invocation. Packer will now only check
for nested plugins within the directories used by commands such as packer init, or packer plugins install, or as defined in PACKER_PLUGIN_PATH.
Refer to
Packer's plugin directory documentation
for details on how loading works.
GH-12414
The packer init subcommand now bundles all the missing installed plugins into one
condensed warning, as opposed to one warning per missing plugin.
GH-12506
required_plugins block to use the new plugin source address.
GH-12476
required_plugins {
parallels = {
source = "github.com/parallels/parallels"
version = "~> 1"
}
}
hcl2_upgrade subcommand will now add required_plugins to the template
generated from JSON for all our officially supported plugins.
GH-12504HCP_PROJECT_ID environment variable. If no project ID is specified,
Packer will pick the project with the oldest creation date. Older versions of Packer are
incompatible with multi-project support on HCP, and builds will fail for HCP
organizations with multiple projects on versions before 1.9.1.
GH-12453Breaking Change: Iteration fingerprints used to be computed from the Git SHA of the
repository where the template is located when running packer build. This
changes with this release, and now fingerprints are automatically generated
as a ULID. This implies that continuing an existing iteration will require
users to define the fingerprint in the environment manually in order to
adopt this behaviour, otherwise, by default, a new iteration will be
created. This does not impact workflows where the fingerprint was defined
through the HCP_PACKER_ITERATION_FINGERPRINT environment variable, and
these builds will work exactly as they did before.
GH-12172
Breaking Change: Community-maintained plugins bundled with the Packer binary have been removed.
These external plugin components are released independently of Packer core and can be installed
directly by the user. Users relying on the external plugin components listed below should refer
to the packer plugins sub-command and, if using HCL2, a required_plugins block to define a
list of plugins for building a template.
Remove provisioner plugins for Chef, Converge, Puppet, Salt, and Inspec as
vendored plugins. These plugins have been previously archived and not
updated in release since being archived. These plugins can be installed
using packer init or with the Packer plugins sub-command packer plugins install github.com/hashicorp/chef.
GH-12374
The following community plugins won't be bundled with Packer anymore:
Users relying on these external plugin components should refer to the packer plugins sub-command and,
if using HCL2, a required_plugins block to define a list of plugins to use for building a template.
Fix LDFLAGS for release pipelines: Between Packer 1.8.5 and Packer 1.8.7, changes to the LDFLAGS in use for building the binaries for Packer had mistakenly removed some compilation flags, leading to the final binaries not being stripped. This change raised the size of the built binaries by as much as 45%. In this release, we fixed the LDFLAGS during compilation, yielding leaner binaries.
Bumped gopsutil to v3. This fixes a macOS intermittent crash reported by the community GH-12430
Warning The version/version.go file tagged in this release refers to 1.8.6. If you are building Packer from source please make sure to set the version information using ldflags at build time.
LD_FLAGS="-X github.com/hashicorp/packer/version.Version=1.8.7 -X github.com/hashicorp/packer/version.VersionPrerelease=" go build -o "$BIN_PATH" --ldflags=$LD_FLAGS
Vendored plugins within Packer have not been updated. Plugin releases occur on
a regular basis to address issues and feature requests. Users are encouraged
to use packer init for HCL2 templates or packer plugins install with
legacy JSON templates for installing external plugins.
packer-plugin-digitalocean: The Digital Ocean Packer plugin has been handed over to the Digital Ocean team. New releases for this plugin are available at https://github.com/digitalocean/packer-plugin-digitalocean.
required_plugins {
digitalocean = {
source = "github.com/digitalocean/digitalocean"
version = ">=1.1.1"
}
}
packer-plugin-linode: The Linode plugin has been handed over to the Linode
team. New releases for this plugin are available at
https://github.com/linode/packer-plugin-linode. This plugin is is no longer
being bundled in the Packer binary release. Existing references to the
plugin will continue to work but users are advised to update the
required_plugins block to use the new plugin source address.
GH-12329
required_plugins {
linode = {
source = "github.com/linode/linode"
version = ">=1.0.5"
}
}
packer-plugin-ucloud: The UCloud plugin has been handed over to the UCloud
team. New releases for this plugin are available at
https://github.com/ucloud/packer-plugin-ucloud. This plugin is is no longer
being bundled in the Packer binary release. Existing references to the
plugin will continue to work but users are advised to update the
required_plugins block to use the new plugin source address.
GH-12335
required_plugins {
ucloud = {
source = "github.com/ucloud/ucloud"
version = ">=1.0.8"
}
}
packer-plugin-profitbricks: The Profitbricks plugin has been removed as a
bundled plugin in Packer. New releases for this plugin are available at
https://github.com/hashicorp/packer-plugin-profitbricks. This plugin is is
no longer being bundled in the Packer binary release. Existing references
to the plugin will continue to work but users are advised to update the
required_plugins block to use the new plugin source address.
GH-12385
required_plugins {
ucloud = {
source = "github.com/hashicorp/profitbricks"
version = ">=1.0.2"
}
}
"name":"mybuilder") the builder's type and name will be displayed (i.e
"<type>.mybuilder". This does not impact the behavior of options such as
only or except, they will continue to work as they did before.)-only/exlude filters for running select builds.
GH-12187packer build the type of
template used during execution will be sent along to the registry as
additional build metadata.GH-12132The following external plugins have been updated and pinned to address open issues. Please see their respective changelogs for details on plugin specific bug fixes and improvements.
-evaluate-datasources flag to evaluate
the data sources from a template during validation time.
GH-12106
GH-12152-no-warn-undeclared-var flag to the validate command.
GH-12104
GH-12109xorriso package for
supporting the creation of ISO files.GH-12081plugins install sub-command will try to fallback to the
next available version for a plugin, if the most recent version is not
available or has a missing checksum file. This should prevent Packer from
trying to install versions that have a GitHub tag but no actual assets.
GH-12103keep_input_artifacts to
false.GH-11462Packer user documentation has been moved to the new HashiCorp developer documentation portal. The main Packer site (https://www.packer.io) will continue to be the home for Packer but all requests for general documentation and binary downloads will be redirected to https://developer.hashicorp.com/packer. Users are encouraged to visit the developer documentation portal for access to all Packer related documentation; including integrations with HCP Packer.
The Oracle builder and post-processor are no longer vendored with Packer
core. Users of the Oracle plugin should use packer init to install the
latest version of the plugin. See the Oracle Plugin
Documentation for more
information. GH-11983
HCP Packer environment variables: The behaviour of some HCP Packer-specific environment variables has changed slightly. Refer to HCP Packer in the Packer documentation for a full list of HCP Packer environment variables. GH-12059
HCP_PACKER_REGISTRY environment variable was
previously required to enable the HCP Packer integration. In this release,
the environment variable is now optional, and can be used for disabling the
publishing of metadata for any HCP Packer enabled configuration template.HCP_PACKER_REGISTRY environment variable can be used
to disable publishing to a HCP Packer registry even if the template defines a
hcp_packer_registry block. This can be useful for testing that a template
works as intended prior to pushing metadata to HCP Packer.HCP_PACKER_BUCKET_NAME environment variable is now the only
requirement to push metadata to a HCP Packer registry, in both JSON
and HCL2 templates without a hcp_packer_registry block.use_pwsh configuration argument to support pwsh
in powershell provisioner. GH-11950fieldname type <no value> is invalid. Before executing a
build with the upgraded template you are encouraged to run packer validate
against the template and fix any invalid <no value> references.
GH-12068happycloud.windows-srv-2019),
as opposed to just the build name field (e.g "name"="windows-srv-2019").
Builders with no defined name will continue to publish build
metadate using the builder type as the build name (e.g happycloud).
GH-12059There's been a change in the way the ssh_timeout and the
ssh_handshake_attempts configuration arguments work together. The
behaviour is unchanged if both or none are specified. However, if only one
of the two is set the other won't have a default value anymore and will be
ignored. See Packer Plugin SDK change for details
packer-plugin-digitalocean: The Digital Ocean Packer plugin has been handed over to the Digital Ocean team. New releases for this plugin are available at https://github.com/digitalocean/packer-plugin-digitalocean. This plugin is still being bundled in the Packer binary but will be removed in a future release. Existing references to the plugin will continue to work but users are advised to update the required_plugins block to use the new plugin source address. GH-11912
required_plugins {
digitalocean = {
source = "github.com/digitalocean/digitalocean"
version = ">=1.0.8"
}
}
packer-plugin-outscale: The Outscale Packer plugin managed by the Outscale
team, since Packer 1.7.9, has been removed from the Packer binary. Users are
advised to install the latest version of the plugin by running
packer plugins install github.com/outscale/outscale. GH-11912
packer-plugin-outscale: The Scaleway Packer plugin managed by the Scaleway
team, since Packer 1.7.7, has been removed from the Packer binary. Users are
advised to install the latest version of the plugin by running
packer plugins install github.com/scaleway/scaleway. GH-11912
hcp_packer_image and hcp_packer_iteration data
source for setting a builder's source image.
GH-11861The following external plugins have been updated and pinned to address open issues. Please see their respective changelogs for details on plugin specific bug fixes and improvements.
ssh_timeout
and ssh_handshake_attempts configuration arguments in the SSH
communicator. GH-11909component_type configuration argument to
support specifying an exact build image when multiple images exist in the
same provider and region for a given HCP Packer bucket iteration.
GH-11872channel as input argument to
retrieve an image from the associated iteration. If
using several images from a single iteration, you may prefer sourcing an
iteration first, and referencing it for subsequent uses, as every
hcp_packer_image with the channel set will generate a potentially
billable HCP Packer request, but if several hcp_packer_images use a
shared hcp_packer_iteration that will only generate one potentially
billable request.
GH-11865The Packer plugin SDK includes the latest version of the go-getter library, which has been updated to address the vulnerabilities listed in HCSEC-2022-13.
The updated SDK contains changes that can be breaking for some plugins as the updated go-getter settings in the SDK prevent reading/writing through symlinks and to sub-directories that require upward path traversal (e.g /tmp/.../etc/hosts). The updates also includes a 30 minute maximum timeout for file downloading, which can be an issue for very large or slow downloads if they exceed more than 30 minutes to complete.
hcp_packer_image data source for setting a
builder's source image.
GH-11832External plugins have been pinned to the following versions. Please see their respective changelogs for details on plugin specific bug fixes and improvements.
pause_after configuration argument to Powershell provisioner.
GH-11792env configuration argument in remote shell
provisioners. GH-11819External plugins have been pinned to the following versions. Please see their respective changelogs for details on plugin specific bug fixes and improvements.
packer plugins install command will now
automatically load for builds using HCL2 templates without a
required_plugins block.
GH-11712packer plugins install command will now
automatically load for builds using JSON templates.
GH-11712Nightly releases are snapshots of the development activity on the Packer project that may include new features and bug fixes scheduled for upcoming releases. These releases are made available to make it easier for users to test their existing build configurations against the latest Packer code base for potential issues or to experiment with new features, with a chance to provide feedback on ways to improve the changes before being released.
As these releases are snapshots of the latest code, you may encounter an issue compared to the latest stable release. Users are encouraged to run nightly releases in a non production environment. If you encounter an issue, please check our issue tracker to see if the issue has already been reported; if a report hasn't been made, please report it so we can review the issue and make any needed fixes.
Note: Nightly releases are only available via GitHub Releases, and artifacts are not codesigned or notarized. Distribution via other Release Channels such as the Releases Site or Homebrew is not yet supported.
packer-plugin-check(github.com/hashicorp/packer/cmd/packer-plugins-check) has been replaced by the packer-sdc plugin-check command. Plugin maintainers who may be using the packer-plugin-check as part of their release pipeline are encouraged to move to the packer-sdc command. As an alternative, maintainers can continue to use the packer-plugin-check by pinning the command to Packer 1.7.10. GH-11317env argument to provisioner blocks that allow for setting a
map of key/value pairs to inject prior to the execute_command. The env argument
is an alternative to using environment_vars for setting environment variables,
which has the added ability to read from Packer datasources. GH-11569packer-sdc plugin- check command. GH-11317--debug argument has been passed.
GH-11537Packer patch release version 1.7.10
Packer patch release version 1.7.9
Packer patch release version 1.7.8
Packer release version 1.7.7 with improved HCP Packer registry support