131 lines
4.4 KiB
Plaintext
131 lines
4.4 KiB
Plaintext
---
|
|
description: |
|
|
The Packer DigitalOcean Import post-processor takes an image artifact
|
|
from various builders and imports it to DigitalOcean.
|
|
page_title: DigitalOcean Import - Post-Processors
|
|
sidebar_title: DigitalOcean Import
|
|
---
|
|
|
|
# DigitalOcean Import Post-Processor
|
|
|
|
Type: `digitalocean-import`
|
|
|
|
The Packer DigitalOcean Import post-processor is used to import images created by other Packer builders to DigitalOcean.
|
|
|
|
~> Note: Users looking to create custom images, and reusable snapshots, directly on DigitalOcean can use
|
|
the [DigitalOcean builder](/docs/builders/digitalocean) without this post-processor.
|
|
|
|
## How Does it Work?
|
|
|
|
The import process operates uploading a temporary copy of the image to
|
|
DigitalOcean Spaces and then importing it as a custom image via the
|
|
DigialOcean API. The temporary copy in Spaces can be discarded after the
|
|
import is complete.
|
|
|
|
For information about the requirements to use an image for a DigitalOcean
|
|
Droplet, see DigitalOcean's [Custom Images documentation](https://www.digitalocean.com/docs/images/custom-images/overview/).
|
|
|
|
## Configuration
|
|
|
|
There are some configuration options available for the post-processor.
|
|
|
|
Required:
|
|
|
|
- `api_token` (string) - A personal access token used to communicate with
|
|
the DigitalOcean v2 API. This may also be set using the
|
|
`DIGITALOCEAN_API_TOKEN` environmental variable.
|
|
|
|
- `spaces_key` (string) - The access key used to communicate with Spaces.
|
|
This may also be set using the `DIGITALOCEAN_SPACES_ACCESS_KEY`
|
|
environmental variable.
|
|
|
|
- `spaces_secret` (string) - The secret key used to communicate with Spaces.
|
|
This may also be set using the `DIGITALOCEAN_SPACES_SECRET_KEY`
|
|
environmental variable.
|
|
|
|
- `spaces_region` (string) - The name of the region, such as `nyc3`, in which
|
|
to upload the image to Spaces.
|
|
|
|
- `space_name` (string) - The name of the specific Space where the image file
|
|
will be copied to for import. This Space must exist when the
|
|
post-processor is run.
|
|
|
|
- `image_name` (string) - The name to be used for the resulting DigitalOcean
|
|
custom image.
|
|
|
|
- `image_regions` (array of string) - A list of DigitalOcean regions, such
|
|
as `nyc3`, where the resulting image will be available for use in creating
|
|
Droplets.
|
|
|
|
Optional:
|
|
|
|
- `image_description` (string) - The description to set for the resulting
|
|
imported image.
|
|
|
|
- `image_distribution` (string) - The name of the distribution to set for
|
|
the resulting imported image.
|
|
|
|
- `image_tags` (array of strings) - A list of tags to apply to the resulting
|
|
imported image.
|
|
|
|
- `keep_input_artifact` (boolean) - if true, do not delete the source virtual
|
|
machine image after importing it to the cloud. Defaults to false.
|
|
|
|
- `skip_clean` (boolean) - Whether we should skip removing the image file
|
|
uploaded to Spaces after the import process has completed. "true" means
|
|
that we should leave it in the Space, "false" means to clean it out.
|
|
Defaults to `false`.
|
|
|
|
- `space_object_name` (string) - The name of the key used in the Space where
|
|
the image file will be copied to for import. This is treated as a
|
|
[template engine](/docs/templates/legacy_json_templates/engine). Therefore, you
|
|
may use user variables and template functions in this field.
|
|
If not specified, this will default to `packer-import-{{timestamp}}`.
|
|
|
|
- `timeout` (number) - The length of time in minutes to wait for individual
|
|
steps in the process to successfully complete. This includes both importing
|
|
the image from Spaces as well as distributing the resulting image to
|
|
additional regions. If not specified, this will default to 20.
|
|
|
|
## Basic Example
|
|
|
|
Here is a basic example:
|
|
|
|
<Tabs>
|
|
<Tab heading="JSON">
|
|
|
|
```json
|
|
{
|
|
"type": "digitalocean-import",
|
|
"api_token": "{{user `token`}}",
|
|
"spaces_key": "{{user `key`}}",
|
|
"spaces_secret": "{{user `secret`}}",
|
|
"spaces_region": "nyc3",
|
|
"space_name": "import-bucket",
|
|
"image_name": "ubuntu-18.10-minimal-amd64",
|
|
"image_description": "Packer import {{timestamp}}",
|
|
"image_regions": ["nyc3", "nyc2"],
|
|
"image_tags": ["custom", "packer"]
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
<Tab heading="HCL2">
|
|
|
|
```hcl
|
|
post-processor "digitalocean-import" {
|
|
api_token = "{{user `token`}}"
|
|
spaces_key = "{{user `key`}}"
|
|
spaces_secret = "{{user `secret`}}"
|
|
spaces_region = "nyc3"
|
|
space_name = "import-bucket"
|
|
image_name = "ubuntu-18.10-minimal-amd64"
|
|
image_description = "Packer import {{timestamp}}"
|
|
image_regions = ["nyc3", "nyc2"]
|
|
image_tags = ["custom", "packer"]
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
</Tabs>
|