Add manifest hcl2 examples (#9721)

This commit is contained in:
Sylvia Moss 2020-08-06 19:43:35 +02:00 committed by GitHub
parent 25f2ec48d3
commit 78ce1dbde9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 76 additions and 28 deletions

View File

@ -1,9 +1,7 @@
--- ---
description: > description: >
The manifest post-processor writes a JSON file with the build artifacts and The manifest post-processor writes a JSON file with the build artifacts and
IDs IDs from a packer run.
from a packer run.
layout: docs layout: docs
page_title: Manifest - Post-Processors page_title: Manifest - Post-Processors
sidebar_title: Manifest sidebar_title: Manifest
@ -38,17 +36,37 @@ post-processors such as Docker and Artifice.
@include 'post-processor/manifest/Config-not-required.mdx' @include 'post-processor/manifest/Config-not-required.mdx'
- `keep_input_artifact` (boolean) - Unlike most other post-processors, the
keep_input_artifact option will have no effect for the manifest
post-processor. We will always retain the input artifact for manifest,
since deleting the files we just recorded is not a behavior anyone should
ever expect. `keep_input_artifact will` therefore always be evaluated as
true, regardless of the value you enter into this field.
### Example Configuration ### Example Configuration
You can simply add `{"type":"manifest"}` to your post-processor section. Below The minimal way to use the manifest post-processor is by just writing its definition, like:
is a more complete example:
<Tabs>
<Tab heading="JSON">
```json
{
"post-processors": [
{
"type": "manifest"
}
]
}
```
</Tab>
<Tab heading="HCL2">
```hcl
post-processor "manifest" {}
```
</Tab>
</Tabs>
A more complete example:
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
@ -65,6 +83,22 @@ is a more complete example:
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
post-processor "manifest" {
output = "manifest.json"
strip_path = true
custom_data = {
my_custom_data = "example"
}
}
```
</Tab>
</Tabs>
An example manifest file looks like: An example manifest file looks like:
```json ```json
@ -95,7 +129,10 @@ If the build is run again, the new build artifacts will be added to the
manifest file rather than replacing it. It is possible to grab specific build manifest file rather than replacing it. It is possible to grab specific build
artifacts from the manifest by using `packer_run_uuid`. artifacts from the manifest by using `packer_run_uuid`.
The above manifest was generated with this packer.json: The above manifest was generated with the following template:
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
@ -107,21 +144,6 @@ The above manifest was generated with this packer.json:
"run_command": ["-d", "-i", "-t", "--entrypoint=/bin/bash", "{{.Image}}"] "run_command": ["-d", "-i", "-t", "--entrypoint=/bin/bash", "{{.Image}}"]
} }
], ],
"provisioners": [
{
"type": "shell",
"inline": "mkdir /Setup"
},
{
"type": "file",
"source": "../scripts/dummy_bash.sh",
"destination": "/Setup"
},
{
"type": "shell",
"inline": ["ls -alh /Setup/"]
}
],
"post-processors": [ "post-processors": [
{ {
"type": "manifest", "type": "manifest",
@ -135,6 +157,32 @@ The above manifest was generated with this packer.json:
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
source "docker" "docker"{
image = "ubuntu:latest"
export_path = "packer_example"
run_command = ["-d", "-i", "-t", "--entrypoint=/bin/bash", "{{.Image}}"]
}
build {
sources = ["docker.docker"]
post-processor "manifest" {
output = "manifest.json"
strip_path = true
custom_data = {
my_custom_data = "example"
}
}
}
```
</Tab>
</Tabs>
Example usage: Example usage:
The manifest can be very useful for cleaning up old artifacts, or printing The manifest can be very useful for cleaning up old artifacts, or printing