Documentation
¶
Index ¶
Constants ¶
View Source
const BuilderId = "packer.post-processor.digitalocean-import"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
common.PackerConfig `mapstructure:",squash"`
// A personal access token used to communicate with the DigitalOcean v2 API.
// This may also be set using the `DIGITALOCEAN_TOKEN` or
// `DIGITALOCEAN_ACCESS_TOKEN` environmental variables.
APIToken string `mapstructure:"api_token" required:"true"`
// The access key used to communicate with Spaces. This may also be set using
// the `DIGITALOCEAN_SPACES_ACCESS_KEY` environmental variable.
SpacesKey string `mapstructure:"spaces_key" required:"true"`
// The secret key used to communicate with Spaces. This may also be set using
// the `DIGITALOCEAN_SPACES_SECRET_KEY` environmental variable.
SpacesSecret string `mapstructure:"spaces_secret" required:"true"`
// The maximum number of retries for requests that fail with a 429 or 500-level error.
// The default value is 5. Set to 0 to disable reties.
HTTPRetryMax *int `mapstructure:"http_retry_max" required:"false"`
// The maximum wait time (in seconds) between failed API requests. Default: 30.0
HTTPRetryWaitMax *float64 `mapstructure:"http_retry_wait_max" required:"false"`
// The minimum wait time (in seconds) between failed API requests. Default: 1.0
HTTPRetryWaitMin *float64 `mapstructure:"http_retry_wait_min" required:"false"`
// The name of the region, such as `nyc3`, in which to upload the image to Spaces.
SpacesRegion string `mapstructure:"spaces_region" required:"true"`
// 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.
SpaceName string `mapstructure:"space_name" required:"true"`
// 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}}`.
ObjectName string `mapstructure:"space_object_name"`
// 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`.
SkipClean bool `mapstructure:"skip_clean"`
// A list of tags to apply to the resulting imported image.
Tags []string `mapstructure:"image_tags"`
// The name to be used for the resulting DigitalOcean custom image.
Name string `mapstructure:"image_name" required:"true"`
// The description to set for the resulting imported image.
Description string `mapstructure:"image_description"`
// The name of the distribution to set for the resulting imported image.
Distribution string `mapstructure:"image_distribution"`
// A list of DigitalOcean regions, such as `nyc3`, where the resulting image
// will be available for use in creating Droplets.
ImageRegions []string `mapstructure:"image_regions" required:"true"`
// 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.
Timeout time.Duration `mapstructure:"timeout"`
// contains filtered or unexported fields
}
type FlatConfig ¶
type FlatConfig struct {
PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"`
PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"`
PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"`
PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"`
PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"`
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
APIToken *string `mapstructure:"api_token" required:"true" cty:"api_token" hcl:"api_token"`
SpacesKey *string `mapstructure:"spaces_key" required:"true" cty:"spaces_key" hcl:"spaces_key"`
SpacesSecret *string `mapstructure:"spaces_secret" required:"true" cty:"spaces_secret" hcl:"spaces_secret"`
HTTPRetryMax *int `mapstructure:"http_retry_max" required:"false" cty:"http_retry_max" hcl:"http_retry_max"`
HTTPRetryWaitMax *float64 `mapstructure:"http_retry_wait_max" required:"false" cty:"http_retry_wait_max" hcl:"http_retry_wait_max"`
HTTPRetryWaitMin *float64 `mapstructure:"http_retry_wait_min" required:"false" cty:"http_retry_wait_min" hcl:"http_retry_wait_min"`
SpacesRegion *string `mapstructure:"spaces_region" required:"true" cty:"spaces_region" hcl:"spaces_region"`
SpaceName *string `mapstructure:"space_name" required:"true" cty:"space_name" hcl:"space_name"`
ObjectName *string `mapstructure:"space_object_name" cty:"space_object_name" hcl:"space_object_name"`
SkipClean *bool `mapstructure:"skip_clean" cty:"skip_clean" hcl:"skip_clean"`
Tags []string `mapstructure:"image_tags" cty:"image_tags" hcl:"image_tags"`
Name *string `mapstructure:"image_name" required:"true" cty:"image_name" hcl:"image_name"`
Description *string `mapstructure:"image_description" cty:"image_description" hcl:"image_description"`
Distribution *string `mapstructure:"image_distribution" cty:"image_distribution" hcl:"image_distribution"`
ImageRegions []string `mapstructure:"image_regions" required:"true" cty:"image_regions" hcl:"image_regions"`
Timeout *string `mapstructure:"timeout" cty:"timeout" hcl:"timeout"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type PostProcessor ¶
type PostProcessor struct {
// contains filtered or unexported fields
}
func (*PostProcessor) ConfigSpec ¶
func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec
func (*PostProcessor) Configure ¶
func (p *PostProcessor) Configure(raws ...interface{}) error
Click to show internal directories.
Click to hide internal directories.