Hello, Packer Community!

Packer version 1.7.0 has been released, and it's a big one with a lot of
exciting news to communicate. There are some current and upcoming
backward-incompatibilities associated with this release, so it's worth
reading this email.

*Packer and HCL*
We're thrilled to announce that HCL Packer templates are officially out of
beta and are now our preferred and recommended way for you to interact with
Packer. This isn't to say that we don't have a few lingering tweaks to make
or enhancements to add, but we're confident that the template format is
stable and we think that the user experience improvement that comes with
using HCL is huge.  If you have not already tried HCL, give it a go by
automatically converting your JSON template using the packer
hcl2_upgrade command.
Full details on this command and how to use it can be found here
<https://www.packer.io/docs/commands/hcl2_upgrade>.
What does this mean for JSON templates? Their current functionality is
still supported. However, as we add new features to the Packer core, we may
not add them to JSON templates.

*Packer Plugin SDK*
The Packer project wants to make it easier for community members to create
and maintain third-party plugins, so we have extracted plugin-related code
into a standalone SDK with better documentation, organization, and testing
frameworks. We have created a command line tool to help maintainers of
current plugins migrate from the old import paths within the Packer core to
the new import paths in the packer-plugin-sdk. The tool and instructions
can be found here <https://github.com/hashicorp/packer-sdk-migrator>. You
will need to upgrade to use this SDK in order for your plugin to be
compatible with the Packer v1.7.0 core. Please reach out if you have any
questions or issues upgrading your plugin.

*Multi-component Packer Plugins*
Historically, Packer has had a 1:1 relationship between a plugin (installed
binary) and a single component (either a builder, provisioner, or a
post-processor). We are adding a new plugin type that allows maintainers to
bundle together multiple different components that use the same SDK or API
into single plugins. Instructions for how to convert your single-component
plugin into a multi-component plugin can be found here
<https://www.packer.io/guides/1.7-plugin-upgrade>. You do not need to
convert your plugin to keep it working with the Packer core;
single-component plugins are still supported. However, the new packer init
command introduced below will only work with plugins that use the
multi-component server type, even if the plugin only serves one component.

*New Packer Init Command*
Enabling community plugin maintainers is not enough without also improving
the story around plugin installation for end users. That's why we've
created a packer init command. This command allows users to declare the
third party plugins, and their versions, required by a specific Packer
template. The command is limited to plugins released on GitHub using a
custom release workflow: for full details on how to release a compatible
plugin, see our docs here <https://www.packer.io/guides/1.7-plugin-upgrade>.
For instructions on how to use packer init to download a compatible plugin,
see the init docs here <https://www.packer.io/docs/commands/init>.
Community plugins installed the old way will still work, as long as they
are upgraded to use the new API version defined with the packer-plugin-sdk
release. If you are only using plugins bundled with the Packer core,
nothing changes for you right now and you do not need to worry about packer
init yet. Packer init is only supported in HCL templates. For a step by
step guide with more information on updating your template to work with
packer init, see our guide here
<https://www.packer.io/guides/1.7-template-upgrade>.

*Packer Data Sources*
We're introducing another Terraform-inspired feature this release: a new
"data source" component type. This component will be used to retrieve
information using API calls and store that information in HCL variables
that can be used in your Packer templates. So far, we've created the
scaffolding for how to implement a data source in a multi-component plugin
and created an "aws-secrets-manager" data source that is essentially an
abstracted re-implementation of the same-named template engine. We expect
that this pattern will be a powerful and flexible new tool for our users.
These are only supported in HCL templates, giving you another reason to
upgrade. For full details, see our data source documentation here
<https://www.packer.io/docs/datasources>.

*General Bug Fixes and Enhancements*
We've also got the usual improvements and bug fixes, though the changelog
is a little lighter this release because of all the new architectural
features. Take a look at the changelog
<https://github.com/hashicorp/packer/blob/master/CHANGELOG.md> for more
details about other updates bundled into this release.

As always, we want to hear from you if you have any issues or ideas. We're
really excited for this next phase of Packer and hope you are too.

Thanks,
The Packer team

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/hashicorp/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/CAJY8qhsXurcOoh0WAswryGZtGz8CnA5XQWmKqMkaGEzV_mcpKQ%40mail.gmail.com.

Reply via email to