Documentation ¶
Overview ¶
vagrant implements the packersdk.PostProcessor interface and adds a post-processor that turns artifacts of known builders into Vagrant boxes.
Index ¶
- Constants
- Variables
- func CopyContents(dst, src string) error
- func CreateDummyBox(ui packersdk.Ui, level int) error
- func DecompressOva(dir, src string) error
- func DirToBox(dst, dir string, ui packersdk.Ui, level int) error
- func LinkFile(dst, src string) error
- func WriteMetadata(dir string, contents interface{}) error
- type AWSProvider
- type Artifact
- type AzureProvider
- type Config
- type DigitalOceanProvider
- type DockerProvider
- type FlatConfig
- type GoogleProvider
- type HypervProvider
- type LXCProvider
- type LibVirtProvider
- type ParallelsProvider
- type PostProcessor
- func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec
- func (p *PostProcessor) Configure(raws ...interface{}) error
- func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error)
- func (p *PostProcessor) PostProcessProvider(name string, provider Provider, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, error)
- type Provider
- type ScalewayProvider
- type VBoxProvider
- type VMwareProvider
Constants ¶
const BuilderId = "mitchellh.post-processor.vagrant"
Variables ¶
var ( // ErrInvalidCompressionLevel is returned when the compression level passed // to gzip is not in the expected range. See compress/flate for details. ErrInvalidCompressionLevel = fmt.Errorf( "Invalid compression level. Expected an integer from -1 to 9.") )
var UnnecessaryFilesPatterns = []string{"\\.log$", "\\.backup$", "\\.Backup$", "\\.app/", "/Windows Disks/"}
These are the extensions of files and directories that are unnecessary for the function of a Parallels virtual machine.
Functions ¶
func CopyContents ¶ added in v0.1.5
Copies a file by copying the contents of the file to another place.
func CreateDummyBox ¶ added in v1.5.2
CreateDummyBox create a dummy Vagrant-compatible box under temporary dir This function is mainly used to check cases such as the host system having a GNU tar incompatible uname that will cause the actual Vagrant box creation to fail later
func DecompressOva ¶ added in v0.3.5
DecompressOva takes an ova file and decompresses it into the target directory.
func DirToBox ¶
DirToBox takes the directory and compresses it into a Vagrant-compatible box. This function does not perform checks to verify that dir is actually a proper box. This is an expected precondition.
func LinkFile ¶ added in v1.1.1
Creates a (hard) link to a file, ensuring that all parent directories also exist.
func WriteMetadata ¶
WriteMetadata writes the "metadata.json" file for a Vagrant box.
Types ¶
type AWSProvider ¶ added in v0.5.0
type AWSProvider struct{}
func (*AWSProvider) KeepInputArtifact ¶ added in v0.5.2
func (p *AWSProvider) KeepInputArtifact() bool
type Artifact ¶
func NewArtifact ¶
type AzureProvider ¶ added in v1.3.0
type AzureProvider struct{}
func (*AzureProvider) KeepInputArtifact ¶ added in v1.3.0
func (p *AzureProvider) KeepInputArtifact() bool
type Config ¶
type Config struct { common.PackerConfig `mapstructure:",squash"` CompressionLevel int `mapstructure:"compression_level"` Include []string `mapstructure:"include"` OutputPath string `mapstructure:"output"` Override map[string]interface{} VagrantfileTemplate string `mapstructure:"vagrantfile_template"` VagrantfileTemplateGenerated bool `mapstructure:"vagrantfile_template_generated"` ProviderOverride string `mapstructure:"provider_override"` // contains filtered or unexported fields }
func (*Config) FlatMapstructure ¶ added in v1.4.5
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 DigitalOceanProvider ¶ added in v0.5.0
type DigitalOceanProvider struct{}
func (*DigitalOceanProvider) KeepInputArtifact ¶ added in v0.5.2
func (p *DigitalOceanProvider) KeepInputArtifact() bool
type DockerProvider ¶ added in v1.3.0
type DockerProvider struct{}
func (*DockerProvider) KeepInputArtifact ¶ added in v1.3.0
func (p *DockerProvider) KeepInputArtifact() bool
type FlatConfig ¶ added in v1.4.5
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"` CompressionLevel *int `mapstructure:"compression_level" cty:"compression_level" hcl:"compression_level"` Include []string `mapstructure:"include" cty:"include" hcl:"include"` OutputPath *string `mapstructure:"output" cty:"output" hcl:"output"` Override map[string]interface{} `cty:"override" hcl:"override"` VagrantfileTemplate *string `mapstructure:"vagrantfile_template" cty:"vagrantfile_template" hcl:"vagrantfile_template"` VagrantfileTemplateGenerated *bool `mapstructure:"vagrantfile_template_generated" cty:"vagrantfile_template_generated" hcl:"vagrantfile_template_generated"` ProviderOverride *string `mapstructure:"provider_override" cty:"provider_override" hcl:"provider_override"` }
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type GoogleProvider ¶ added in v1.2.0
type GoogleProvider struct{}
func (*GoogleProvider) KeepInputArtifact ¶ added in v1.2.0
func (p *GoogleProvider) KeepInputArtifact() bool
type HypervProvider ¶ added in v0.6.1
type HypervProvider struct{}
func (*HypervProvider) KeepInputArtifact ¶ added in v0.6.1
func (p *HypervProvider) KeepInputArtifact() bool
type LXCProvider ¶ added in v1.2.2
type LXCProvider struct{}
func (*LXCProvider) KeepInputArtifact ¶ added in v1.2.2
func (p *LXCProvider) KeepInputArtifact() bool
type LibVirtProvider ¶ added in v0.7.2
type LibVirtProvider struct{}
func (*LibVirtProvider) KeepInputArtifact ¶ added in v0.7.2
func (p *LibVirtProvider) KeepInputArtifact() bool
type ParallelsProvider ¶ added in v0.6.0
type ParallelsProvider struct{}
func (*ParallelsProvider) KeepInputArtifact ¶ added in v0.6.0
func (p *ParallelsProvider) KeepInputArtifact() bool
type PostProcessor ¶
type PostProcessor struct {
// contains filtered or unexported fields
}
func (*PostProcessor) ConfigSpec ¶ added in v1.5.0
func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec
func (*PostProcessor) Configure ¶
func (p *PostProcessor) Configure(raws ...interface{}) error
func (*PostProcessor) PostProcess ¶
type Provider ¶ added in v0.5.0
type Provider interface { // KeepInputArtifact should return true/false whether this provider // requires the input artifact to be kept by default. KeepInputArtifact() bool // Process is called to process an artifact into a Vagrant box. The // artifact is given as well as the temporary directory path to // put things. // // The Provider should return the contents for the Vagrantfile, // any metadata (including the provider type in that), and an error // if any. Process(packersdk.Ui, packersdk.Artifact, string) (vagrantfile string, metadata map[string]interface{}, err error) }
Provider is the interface that each provider must implement in order to package the artifacts into a Vagrant-compatible box.
type ScalewayProvider ¶ added in v1.2.0
type ScalewayProvider struct{}
func (*ScalewayProvider) KeepInputArtifact ¶ added in v1.2.0
func (p *ScalewayProvider) KeepInputArtifact() bool
type VBoxProvider ¶ added in v0.5.0
type VBoxProvider struct{}
func (*VBoxProvider) KeepInputArtifact ¶ added in v0.5.2
func (p *VBoxProvider) KeepInputArtifact() bool
type VMwareProvider ¶ added in v0.5.0
type VMwareProvider struct{}
func (*VMwareProvider) KeepInputArtifact ¶ added in v0.5.2
func (p *VMwareProvider) KeepInputArtifact() bool