Having only one test suite for the whole of Packer makes it harder to segregate between test types, and makes for a longer runtime as no tests run in parallel by default. This commit splits the packer_test suite into several components in order to make extension easier. First we have `lib`: this package embeds the core for running Packer test suites. This ships facilities to build your own test suite for Packer core, and exposes convenience methods and structures for building plugins, packer core, and use it to run a test suite in a temporary directory. Then we have two separate test suites: one for plugins, and one for core itself, the latter of which does not depend on plugins being compiled at all. This sets the stage for more specialised test suites in the future, each of which can run in parallel on different parts of the code.
Scaffolding Plugins
Installation
Using pre-built releases
Using the packer init command
Starting from version 1.7, Packer supports a new packer init command allowing
automatic installation of Packer plugins. Read the
Packer documentation for more information.
To install this plugin, copy and paste this code into your Packer configuration .
Then, run packer init.
packer {
required_plugins {
name = {
version = ">= 0.0.1"
source = "github.com/hashicorp/name"
}
}
}
Manual installation
You can find pre-built binary releases of the plugin here. Once you have downloaded the latest archive corresponding to your target OS, uncompress it to retrieve the plugin binary file corresponding to your platform. To install the plugin, please follow the Packer documentation on installing a plugin.
From Source
If you prefer to build the plugin from its source code, clone the GitHub
repository locally and run the command go build from the root
directory. Upon successful compilation, a packer-plugin-name plugin
binary file can be found in the root directory.
To install the compiled plugin, please follow the official Packer documentation
on installing a plugin.
Plugin Contents
The Scaffolding plugin is intended as a starting point for creating Packer plugins, containing:
Builders
- builder - The scaffolding builder is used to create endless Packer plugins using a consistent plugin structure.
Provisioners
- provisioner - The scaffolding provisioner is used to provisioner Packer builds.
Post-processors
- post-processor - The scaffolding post-processor is used to export scaffolding builds.
Data Sources
- data source - The scaffolding data source is used to export scaffolding data.