digitaloceanimport

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2024 License: MPL-2.0 Imports: 23 Imported by: 1

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
}

func (*Config) FlatMapstructure

func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }

FlatMapstructure returns a new FlatConfig. FlatConfig is an auto-generated flat version of Config. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.

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.

func (*FlatConfig) HCL2Spec

func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a Config. This spec is used by HCL to read the fields of Config. The decoded values from this spec will then be applied to a FlatConfig.

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

func (*PostProcessor) PostProcess

func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL