Documentation
¶
Index ¶
- Constants
- func ActionHaltWithError(state multistep.StateBag, err error) multistep.StepAction
- func ActionHaltWithErrorf(state multistep.StateBag, format string, args ...any) multistep.StepAction
- func CommHost(state multistep.StateBag) (string, error)
- type Artifact
- type Builder
- type Config
- type Driver
- type FlatConfig
- type StepCreateImage
- type StepCreateVirtualMachine
- type StepCreateVirtualMachineDriver
Constants ¶
View Source
const ( DriverKey = "driver" HookKey = "hook" UIKey = "ui" CommunicatorKey = "communicator" PrefixKey = "prefix" ErrorKey = "error" DiskNameKey = "disk_name" ExternalAddressNameKey = "external_address_name" NetworkNameKey = "network_name" SubnetNameKey = "subnet_name" VirtualMachineNameKey = "virtual_machine_name" FirewallRuleNameKey = "firewall_rule_name" DiskRefKey = "disk_ref" ImageKey = "image" GeneratedDataKey = "generated_data" InstanceIPKey = "instance_ip" InstanceIDKey = "instance_id" )
View Source
const (
//nolint:revive // Very special constant for packer
BuilderId = "packer.mws"
)
View Source
const (
FirewallRuleName = "access-from-internet-ssh"
)
Variables ¶
This section is empty.
Functions ¶
func ActionHaltWithError ¶ added in v0.3.0
func ActionHaltWithError(state multistep.StateBag, err error) multistep.StepAction
func ActionHaltWithErrorf ¶ added in v0.3.0
Types ¶
type Artifact ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) ConfigSpec ¶
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type Config ¶
type Config struct {
common.PackerConfig `mapstructure:",squash"`
Communicator communicator.Config `mapstructure:",squash" json:"-"`
commonconfig.AccessConfig `mapstructure:",squash"`
commonconfig.ImageConfig `mapstructure:",squash"`
commonconfig.VirtualMachineConfig `mapstructure:",squash"`
// contains filtered or unexported fields
}
func (*Config) FlatMapstructure ¶
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.
func (*Config) SetDefaults ¶
func (c *Config) SetDefaults()
type Driver ¶
type Driver interface {
StepCreateVirtualMachineDriver
CreateImage(context.Context, drivermws.CreateImageParams) (*computemodel.ImageOptionalResponse, error)
DeleteImage(context.Context, string) error
}
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"`
Type *string `mapstructure:"communicator" cty:"communicator" hcl:"communicator"`
PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting" hcl:"pause_before_connecting"`
SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host" hcl:"ssh_host"`
SSHPort *int `mapstructure:"ssh_port" cty:"ssh_port" hcl:"ssh_port"`
SSHUsername *string `mapstructure:"ssh_username" cty:"ssh_username" hcl:"ssh_username"`
SSHPassword *string `mapstructure:"ssh_password" cty:"ssh_password" hcl:"ssh_password"`
SSHKeyPairName *string `mapstructure:"ssh_keypair_name" undocumented:"true" cty:"ssh_keypair_name" hcl:"ssh_keypair_name"`
SSHTemporaryKeyPairName *string `mapstructure:"temporary_key_pair_name" undocumented:"true" cty:"temporary_key_pair_name" hcl:"temporary_key_pair_name"`
SSHTemporaryKeyPairType *string `mapstructure:"temporary_key_pair_type" cty:"temporary_key_pair_type" hcl:"temporary_key_pair_type"`
SSHTemporaryKeyPairBits *int `mapstructure:"temporary_key_pair_bits" cty:"temporary_key_pair_bits" hcl:"temporary_key_pair_bits"`
SSHCiphers []string `mapstructure:"ssh_ciphers" cty:"ssh_ciphers" hcl:"ssh_ciphers"`
SSHClearAuthorizedKeys *bool `mapstructure:"ssh_clear_authorized_keys" cty:"ssh_clear_authorized_keys" hcl:"ssh_clear_authorized_keys"`
SSHKEXAlgos []string `mapstructure:"ssh_key_exchange_algorithms" cty:"ssh_key_exchange_algorithms" hcl:"ssh_key_exchange_algorithms"`
SSHPrivateKeyFile *string `mapstructure:"ssh_private_key_file" undocumented:"true" cty:"ssh_private_key_file" hcl:"ssh_private_key_file"`
SSHCertificateFile *string `mapstructure:"ssh_certificate_file" cty:"ssh_certificate_file" hcl:"ssh_certificate_file"`
SSHPty *bool `mapstructure:"ssh_pty" cty:"ssh_pty" hcl:"ssh_pty"`
SSHTimeout *string `mapstructure:"ssh_timeout" cty:"ssh_timeout" hcl:"ssh_timeout"`
SSHWaitTimeout *string `mapstructure:"ssh_wait_timeout" undocumented:"true" cty:"ssh_wait_timeout" hcl:"ssh_wait_timeout"`
SSHAgentAuth *bool `mapstructure:"ssh_agent_auth" undocumented:"true" cty:"ssh_agent_auth" hcl:"ssh_agent_auth"`
SSHDisableAgentForwarding *bool `mapstructure:"ssh_disable_agent_forwarding" cty:"ssh_disable_agent_forwarding" hcl:"ssh_disable_agent_forwarding"`
SSHHandshakeAttempts *int `mapstructure:"ssh_handshake_attempts" cty:"ssh_handshake_attempts" hcl:"ssh_handshake_attempts"`
SSHBastionHost *string `mapstructure:"ssh_bastion_host" cty:"ssh_bastion_host" hcl:"ssh_bastion_host"`
SSHBastionPort *int `mapstructure:"ssh_bastion_port" cty:"ssh_bastion_port" hcl:"ssh_bastion_port"`
SSHBastionAgentAuth *bool `mapstructure:"ssh_bastion_agent_auth" cty:"ssh_bastion_agent_auth" hcl:"ssh_bastion_agent_auth"`
SSHBastionUsername *string `mapstructure:"ssh_bastion_username" cty:"ssh_bastion_username" hcl:"ssh_bastion_username"`
SSHBastionPassword *string `mapstructure:"ssh_bastion_password" cty:"ssh_bastion_password" hcl:"ssh_bastion_password"`
SSHBastionInteractive *bool `mapstructure:"ssh_bastion_interactive" cty:"ssh_bastion_interactive" hcl:"ssh_bastion_interactive"`
SSHBastionPrivateKeyFile *string `mapstructure:"ssh_bastion_private_key_file" cty:"ssh_bastion_private_key_file" hcl:"ssh_bastion_private_key_file"`
SSHBastionCertificateFile *string `mapstructure:"ssh_bastion_certificate_file" cty:"ssh_bastion_certificate_file" hcl:"ssh_bastion_certificate_file"`
SSHFileTransferMethod *string `mapstructure:"ssh_file_transfer_method" cty:"ssh_file_transfer_method" hcl:"ssh_file_transfer_method"`
SSHProxyHost *string `mapstructure:"ssh_proxy_host" cty:"ssh_proxy_host" hcl:"ssh_proxy_host"`
SSHProxyPort *int `mapstructure:"ssh_proxy_port" cty:"ssh_proxy_port" hcl:"ssh_proxy_port"`
SSHProxyUsername *string `mapstructure:"ssh_proxy_username" cty:"ssh_proxy_username" hcl:"ssh_proxy_username"`
SSHProxyPassword *string `mapstructure:"ssh_proxy_password" cty:"ssh_proxy_password" hcl:"ssh_proxy_password"`
SSHKeepAliveInterval *string `mapstructure:"ssh_keep_alive_interval" cty:"ssh_keep_alive_interval" hcl:"ssh_keep_alive_interval"`
SSHReadWriteTimeout *string `mapstructure:"ssh_read_write_timeout" cty:"ssh_read_write_timeout" hcl:"ssh_read_write_timeout"`
SSHRemoteTunnels []string `mapstructure:"ssh_remote_tunnels" cty:"ssh_remote_tunnels" hcl:"ssh_remote_tunnels"`
SSHLocalTunnels []string `mapstructure:"ssh_local_tunnels" cty:"ssh_local_tunnels" hcl:"ssh_local_tunnels"`
SSHPublicKey []byte `mapstructure:"ssh_public_key" undocumented:"true" cty:"ssh_public_key" hcl:"ssh_public_key"`
SSHPrivateKey []byte `mapstructure:"ssh_private_key" undocumented:"true" cty:"ssh_private_key" hcl:"ssh_private_key"`
WinRMUser *string `mapstructure:"winrm_username" cty:"winrm_username" hcl:"winrm_username"`
WinRMPassword *string `mapstructure:"winrm_password" cty:"winrm_password" hcl:"winrm_password"`
WinRMHost *string `mapstructure:"winrm_host" cty:"winrm_host" hcl:"winrm_host"`
WinRMNoProxy *bool `mapstructure:"winrm_no_proxy" cty:"winrm_no_proxy" hcl:"winrm_no_proxy"`
WinRMPort *int `mapstructure:"winrm_port" cty:"winrm_port" hcl:"winrm_port"`
WinRMTimeout *string `mapstructure:"winrm_timeout" cty:"winrm_timeout" hcl:"winrm_timeout"`
WinRMUseSSL *bool `mapstructure:"winrm_use_ssl" cty:"winrm_use_ssl" hcl:"winrm_use_ssl"`
WinRMInsecure *bool `mapstructure:"winrm_insecure" cty:"winrm_insecure" hcl:"winrm_insecure"`
WinRMUseNTLM *bool `mapstructure:"winrm_use_ntlm" cty:"winrm_use_ntlm" hcl:"winrm_use_ntlm"`
Project *string `mapstructure:"project" required:"true" cty:"project" hcl:"project"`
Zone *string `mapstructure:"zone" required:"false" cty:"zone" hcl:"zone"`
BaseEndpoint *string `mapstructure:"base_endpoint" required:"false" cty:"base_endpoint" hcl:"base_endpoint"`
ServiceAccountAuthorizedKeyPath *string `` /* 151-byte string literal not displayed */
Token *string `mapstructure:"token" required:"false" cty:"token" hcl:"token"`
ImageName *string `mapstructure:"image_name" required:"false" cty:"image_name" hcl:"image_name"`
ImageDisplayName *string `mapstructure:"image_display_name" required:"false" cty:"image_display_name" hcl:"image_display_name"`
ImageDescription *string `mapstructure:"image_description" required:"false" cty:"image_description" hcl:"image_description"`
DiskName *string `mapstructure:"disk_name" required:"false" cty:"disk_name" hcl:"disk_name"`
DiskType *string `mapstructure:"disk_type" required:"false" cty:"disk_type" hcl:"disk_type"`
DiskSize *string `mapstructure:"disk_size" required:"false" cty:"disk_size" hcl:"disk_size"`
DiskIOPS *int64 `mapstructure:"disk_iops" required:"false" cty:"disk_iops" hcl:"disk_iops"`
SourceProject *string `mapstructure:"source_project" required:"false" cty:"source_project" hcl:"source_project"`
SourceImage *string `mapstructure:"source_image" required:"false" cty:"source_image" hcl:"source_image"`
SourceSnapshot *string `mapstructure:"source_snapshot" required:"false" cty:"source_snapshot" hcl:"source_snapshot"`
NetworkName *string `mapstructure:"network_name" required:"false" cty:"network_name" hcl:"network_name"`
SubnetName *string `mapstructure:"subnet_name" required:"false" cty:"subnet_name" hcl:"subnet_name"`
SubnetCidr *string `mapstructure:"subnet_cidr" required:"false" cty:"subnet_cidr" hcl:"subnet_cidr"`
UseExternalAddress *bool `mapstructure:"use_external_address" required:"false" cty:"use_external_address" hcl:"use_external_address"`
ExternalAddressName *string `mapstructure:"external_address_name" required:"false" cty:"external_address_name" hcl:"external_address_name"`
VirtualMachineName *string `mapstructure:"virtual_machine_name" required:"false" cty:"virtual_machine_name" hcl:"virtual_machine_name"`
VMType *string `mapstructure:"vm_type" required:"false" cty:"vm_type" hcl:"vm_type"`
CloudConfig *string `mapstructure:"cloud_config" required:"false" cty:"cloud_config" hcl:"cloud_config"`
CleanupTimeout *string `mapstructure:"cleanup_timeout" required:"false" cty:"cleanup_timeout" hcl:"cleanup_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 StepCreateImage ¶
type StepCreateImage struct {
Project string
ImageName string
ImageDisplayName string
ImageDescription string
GeneratedData *packerbuilderdata.GeneratedData
}
func (*StepCreateImage) Cleanup ¶
func (*StepCreateImage) Cleanup(multistep.StateBag)
func (*StepCreateImage) Run ¶
func (s *StepCreateImage) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepCreateVirtualMachine ¶
type StepCreateVirtualMachine struct {
Communicator *communicator.Config
commonconfig.AccessConfig
commonconfig.VirtualMachineConfig
GeneratedData *packerbuilderdata.GeneratedData
}
func (*StepCreateVirtualMachine) Cleanup ¶
func (s *StepCreateVirtualMachine) Cleanup(state multistep.StateBag)
func (*StepCreateVirtualMachine) Run ¶
func (s *StepCreateVirtualMachine) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepCreateVirtualMachineDriver ¶ added in v0.3.0
type StepCreateVirtualMachineDriver interface {
CreateDisk(context.Context, drivermws.CreateDiskParams) error
CreateExternalAddress(context.Context, drivermws.CreateExternalAddressParams) (string, error)
CreateNetwork(context.Context, drivermws.CreateNetworkParams) error
CreateSubnet(context.Context, drivermws.CreateSubnetParams) error
CreateVirtualMachine(context.Context, drivermws.CreateVirtualMachineParams) (string, error)
CreateFirewallRule(context.Context, drivermws.CreateFirewallRuleParams) error
DeleteDisk(context.Context, string) error
DeleteExternalAddress(context.Context, string) error
DeleteNetwork(context.Context, string) error
DeleteSubnet(context.Context, string, string) error
DeleteVirtualMachine(context.Context, string) error
DeleteFirewallRule(context.Context, string, string) error
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.