The Packer Plugin Repository, What’s init?
This week's release of Packer 1.7 includes two major changes: A new plugin repository and the packer init command.
The Packer team has been working on two new projects to solve the challenges of plugin discovery and maintainability with an improved Packer experience. The first project is the Packer Plugin Repository, and the second is the packer init
command. They were released recently along with Packer 1.7. In this talk, senior Packer engineer Wilken Rivera will demo the packer init
command and share Packer’s new plugin development process.
Some Background
Packer plugins, like Terraform providers, are broad.
There are currently three major plugin categories: - Builders for creating artifacts on major cloud services - Provisioners for modifying vms using shell or configuration management tools - Post-processors for managing build artifacts after they have been created.
When used together, plugins can build images or containers for most infrastructure used today.
Packer’s plugin architecture is easily extendable using custom plugins to meet your specific infrastructure needs. But there are two challenges with the current plugin ecosystem:
- Discoverability
- Maintainability
There are over 60 plugins bundled into Packer. These 60+ plugins represent most of the commonly used plugins, but there are other commonly used community-built plugins available that users need to search for, download, and install on their own.
In the past, the solution to the discovery problem was to bring requested community plugins into the hashicorp/packer
repository so that they could be bundled with Packer. But over time and with the addition of new plugins, the cost of maintaining Packer plugins alongside the Packer core has increased, with the Packer team acting as the gatekeepers for all new plugin changes. While there is a constant cadence or merging-in and releasing of new changes for community plugins, there are still changes, bugs, enhancements that go unaddressed because of competing priorities or lack of experience with the plugin. The two projects mentioned above are our current solutions to these challenges.
Watch this talk to learn more about what these changes mean for you.