100 lines
2.9 KiB
Markdown
100 lines
2.9 KiB
Markdown
---
|
|
description: |
|
|
Within the template, the push section configures how a template can be pushed
|
|
to a remote build service.
|
|
layout: docs
|
|
page_title: 'Push - Templates'
|
|
sidebar_current: 'docs-templates-push'
|
|
---
|
|
|
|
# Template Push
|
|
|
|
!> The Packer and Artifact Registry features of Atlas will no longer be
|
|
actively developed or maintained and will be fully decommissioned.
|
|
Please see our [guide on building immutable infrastructure with
|
|
Packer on CI/CD](/guides/packer-on-cicd/) for ideas on implementing these
|
|
features yourself.
|
|
|
|
Within the template, the push section configures how a template can be
|
|
[pushed](/docs/commands/push.html) to a remote build service.
|
|
|
|
Push configuration is responsible for defining what files are required to build
|
|
this template, what the name of build configuration is in the build service,
|
|
etc.
|
|
|
|
The only build service that Packer can currently push to is
|
|
[Atlas](https://atlas.hashicorp.com) by HashiCorp. Support for other build
|
|
services will come in the form of plugins in the future.
|
|
|
|
Within a template, a push configuration section looks like this:
|
|
|
|
``` json
|
|
{
|
|
"push": {
|
|
// ... push configuration here
|
|
}
|
|
}
|
|
```
|
|
|
|
## Configuration Reference
|
|
|
|
There are many configuration options available for the builder. They are
|
|
segmented below into two categories: required and optional parameters. Within
|
|
each category, the available configuration keys are alphabetized.
|
|
|
|
### Required
|
|
|
|
- `name` (string) - Name of the build configuration in the build service. If
|
|
this doesn't exist, it will be created (by default). Note that the name
|
|
cannot contain dots. `[a-zA-Z0-9-_/]+` are safe.
|
|
|
|
### Optional
|
|
|
|
- `address` (string) - The address of the build service to use. By default
|
|
this is `https://atlas.hashicorp.com`.
|
|
|
|
- `base_dir` (string) - The base directory of the files to upload. This will
|
|
be the current working directory when the build service executes
|
|
your template. This path is relative to the template.
|
|
|
|
- `include` (array of strings) - Glob patterns to include relative to the
|
|
`base_dir`. If this is specified, only files that match the include pattern
|
|
are included.
|
|
|
|
- `exclude` (array of strings) - Glob patterns to exclude relative to the
|
|
`base_dir`.
|
|
|
|
- `token` (string) - An access token to use to authenticate to the
|
|
build service.
|
|
|
|
- `vcs` (boolean) - If true, Packer will detect your VCS (if there is one) and
|
|
only upload the files that are tracked by the VCS. This is useful for
|
|
automatically excluding ignored files. This defaults to false.
|
|
|
|
## Examples
|
|
|
|
A push configuration section with minimal options:
|
|
|
|
``` json
|
|
{
|
|
"push": {
|
|
"name": "hashicorp/precise64"
|
|
}
|
|
}
|
|
```
|
|
|
|
A push configuration specifying Packer to inspect the VCS and list individual
|
|
files to include:
|
|
|
|
``` json
|
|
{
|
|
"push": {
|
|
"name": "hashicorp/precise64",
|
|
"vcs": true,
|
|
"include": [
|
|
"other_file/outside_of.vcs"
|
|
]
|
|
}
|
|
}
|
|
```
|