Packer
HCP Packer Iteration Data Source
Official
HCP Packer Ready
Type: hcp-packer-iteration
The HCP Packer Iteration
Data Source retrieves information about an
iteration from the HCP Packer registry. This information can be used to query
HCP for a source image for various Packer builders.
Note: HCP Packer is under active development, and we are currently offering a public beta version to collect feedback and continue improving the product. To get started, visit the HCP Packer documentation or try the Get Started with HCP Packer collection on HashiCorp Learn.
Basic Example
Below is a fully functioning example. It stores information about an image iteration, which can then be accessed as a variable.
data "hcp-packer-iteration" "hardened-source" {
bucket_name = "hardened-ubuntu-16-04"
channel = "packer-test"
}
Full Example
This data source can be used in conjunction with the hcp-packer-image data source to retrieve an image ID using a channel. You provide the channel name to the iteration data source, then use the iteration source inside the image data source, then use the image data source inside your source block.
# Retrieves information about the HCP Packer "iteration"; an "iteration" can be
# thought of as all the metadata created by a single call of `packer build`.
data "hcp-packer-iteration" "hardened-source" {
bucket_name = "hardened-ubuntu-16-04"
channel = "packer-test"
}
# Retrieves information about the HCP Packer "image"; an image can be thought
# of as all the metadata (including the artifact names) created by a single
# "source" builder; this can include multiple images so we provide a cloud
# region to disambiguate.
data "hcp-packer-image" "foo" {
bucket_name = "hardened-ubuntu-16-04"
iteration_id = data.hcp-packer-iteration.hardened-source.id
cloud_provider = "aws"
region = "us-east-1"
}
# This source uses the output from a previous Packer build. By using the
# HCP Packer registry in this way, you can easily create build pipelines where
# a single base image can be customized in multiple secondary layers.
source "amazon-ebs" "packer-secondary" {
source_ami = data.hcp-packer-image.foo.id
...
}
Configuration Reference
Configuration options are organized below into two categories: required and optional. Within each category, the available options are alphabetized and described.
Required:
bucket_name
(string) - The name of the bucket your image is in.channel
(string) - The name of the channel to use when retrieving your image
There are currently no optional fields for this datasource, though we intend to add filtering fields in the future.
Output Fields:
author_id
(string) - who created the iterationbucket_name
(string) - Name of the bucket that the iteration was retrieved fromcomplete
(bool) - If true, this iteration is considered "ready to use" and will be returned even if the include_incomplete flag is "false" in the list iterations request. Note that if you are retrieving an iteration using a channel, this will always be "true"; channels cannot be assigned to incomplete iterations.created_at
(string) - The date the iteration was created.fingerprint
(string) - The fingerprint of the build; this could be a git sha or other unique identifier as set by the Packer build that created this iteration.id
(string) - The iteration id. This is a ULID, which is a unique identifier similar to a UUID. It is created by the HCP Packer Registry when an iteration is first created, and is unique to this iteration.incremental_version
(int32) - The version number assigned to an iteration. This number is an integer, and is created by the HCP Packer Registry once an iteration is marked "complete". If a new iteration is marked "complete", the version that HCP Packer assigns to it will always be the highest previous iteration version plus one.updated_at
(string) - The date when this iteration was last updated.