Documentation
¶
Index ¶
- Constants
- Variables
- func GetCidrHostNum(maskLen int) uint
- func GetCidrIpMask(maskLen int) string
- func GetCidrIpRange(cidr string) (string, string, string)
- func GetIpSeg3Range(ipSegs []string, maskLen int) (int, int)
- func GetIpSeg4Range(ipSegs []string, maskLen int) (int, int)
- func GetIpSegRange(userSegIp, offset uint8) (int, int)
- func GetSdkValue(stateBag multistep.StateBag, keyPattern string, obj interface{}) interface{}
- func Halt(stateBag multistep.StateBag, err error, prefix string) multistep.StepAction
- func SSHHost() func(multistep.StateBag) (string, error)
- func StringInSlice(v string, valid []string, ignoreCase bool) bool
- func WaitEcsStatus(stateBag multistep.StateBag, ecsId, status string) (*ecs.DescribeInstancesOutput, error)
- func WaitEipStatus(stateBag multistep.StateBag, eipId, status string) (*vpc.DescribeEipAddressesOutput, error)
- func WaitFor(param *WaitForParam) (interface{}, error)
- func WaitImageStatus(stateBag multistep.StateBag, imageId, status string) (*ecs.DescribeImagesOutput, error)
- func WaitSgClean(stateBag multistep.StateBag, sgId string) error
- func WaitSubnetStatus(stateBag multistep.StateBag, subnetId, status string) (*vpc.DescribeSubnetsOutput, error)
- func WaitVpcStatus(stateBag multistep.StateBag, vpcId, status string) (*vpc.DescribeVpcsOutput, error)
- type Artifact
- type Builder
- type Config
- type FlatConfig
- type FlatVolcengineDataDiskConfig
- type ProcessResult
- type VolcengineAuthenticationConfig
- type VolcengineClientConfig
- type VolcengineClientWrapper
- type VolcengineDataDiskConfig
- type VolcengineEcsConfig
- type WaitForParam
Constants ¶
const BuilderId = "volcengine.ecs"
Variables ¶
var ( WaitForSuccess = ProcessResult{ Complete: true, StopRetry: true, } WaitForRetry = ProcessResult{ Complete: false, StopRetry: false, } )
Functions ¶
func GetCidrHostNum ¶
func GetCidrIpMask ¶
func GetIpSegRange ¶
func GetSdkValue ¶
func WaitEcsStatus ¶
func WaitEipStatus ¶
func WaitFor ¶
func WaitFor(param *WaitForParam) (interface{}, error)
func WaitImageStatus ¶
func WaitSubnetStatus ¶
func WaitVpcStatus ¶
Types ¶
type Artifact ¶
type Artifact struct {
VolcengineImageId string
BuilderIdValue string
Client *VolcengineClientWrapper
}
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"`
VolcengineClientConfig `mapstructure:",squash"`
VolcengineEcsConfig `mapstructure:",squash"`
// 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"`
VolcengineAccessKey *string `mapstructure:"access_key" required:"true" cty:"access_key" hcl:"access_key"`
VolcengineSecretKey *string `mapstructure:"secret_key" required:"true" cty:"secret_key" hcl:"secret_key"`
VolcengineSessionKey *string `mapstructure:"session_key" required:"false" cty:"session_key" hcl:"session_key"`
VolcengineEndpoint *string `mapstructure:"endpoint" required:"false" cty:"endpoint" hcl:"endpoint"`
VolcengineDisableSSL *bool `mapstructure:"disable_ssl" required:"false" cty:"disable_ssl" hcl:"disable_ssl"`
VolcengineRegion *string `mapstructure:"region" required:"true" cty:"region" hcl:"region"`
VpcId *string `mapstructure:"vpc_id" required:"false" cty:"vpc_id" hcl:"vpc_id"`
VpcName *string `mapstructure:"vpc_name" required:"false" cty:"vpc_name" hcl:"vpc_name"`
VpcCidrBlock *string `mapstructure:"vpc_cidr_block" required:"false" cty:"vpc_cidr_block" hcl:"vpc_cidr_block"`
DNS1 *string `mapstructure:"dns1" required:"false" cty:"dns1" hcl:"dns1"`
DNS2 *string `mapstructure:"dns2" required:"false" cty:"dns2" hcl:"dns2"`
SubnetId *string `mapstructure:"subnet_id" required:"false" cty:"subnet_id" hcl:"subnet_id"`
SubnetName *string `mapstructure:"subnet_name" required:"false" cty:"subnet_name" hcl:"subnet_name"`
SubnetCidrBlock *string `mapstructure:"subnet_cidr_block" required:"false" cty:"subnet_cidr_block" hcl:"subnet_cidr_block"`
AvailabilityZone *string `mapstructure:"availability_zone" required:"false" cty:"availability_zone" hcl:"availability_zone"`
SecurityGroupId *string `mapstructure:"security_group_id" required:"false" cty:"security_group_id" hcl:"security_group_id"`
SecurityGroupName *string `mapstructure:"security_group_name" required:"false" cty:"security_group_name" hcl:"security_group_name"`
PublicIpId *string `mapstructure:"public_ip_id" required:"false" cty:"public_ip_id" hcl:"public_ip_id"`
AssociatePublicIpAddress *bool `` /* 127-byte string literal not displayed */
PublicIpBandWidth *int64 `mapstructure:"public_ip_band_width" required:"false" cty:"public_ip_band_width" hcl:"public_ip_band_width"`
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"`
InstanceType *string `mapstructure:"instance_type" required:"true" cty:"instance_type" hcl:"instance_type"`
SourceImageId *string `mapstructure:"source_image_id" required:"true" cty:"source_image_id" hcl:"source_image_id"`
TargetImageName *string `mapstructure:"target_image_name" required:"true" cty:"target_image_name" hcl:"target_image_name"`
SystemDiskType *string `mapstructure:"system_disk_type" required:"true" cty:"system_disk_type" hcl:"system_disk_type"`
SystemDiskSize *int32 `mapstructure:"system_disk_size" required:"true" cty:"system_disk_size" hcl:"system_disk_size"`
DataDisks []FlatVolcengineDataDiskConfig `mapstructure:"data_disks" required:"false" cty:"data_disks" hcl:"data_disks"`
InstanceName *string `mapstructure:"instance_name" required:"false" cty:"instance_name" hcl:"instance_name"`
UserData *string `mapstructure:"user_data" required:"false" cty:"user_data" hcl:"user_data"`
HpcClusterId *string `mapstructure:"hpc_cluster_id" required:"false" cty:"hpc_cluster_id" hcl:"hpc_cluster_id"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatVolcengineDataDiskConfig ¶
type FlatVolcengineDataDiskConfig struct {
DataDiskType *string `mapstructure:"data_disk_type" required:"true" cty:"data_disk_type" hcl:"data_disk_type"`
DataDiskSize *int32 `mapstructure:"data_disk_size" required:"true" cty:"data_disk_size" hcl:"data_disk_size"`
}
FlatVolcengineDataDiskConfig is an auto-generated flat version of VolcengineDataDiskConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatVolcengineDataDiskConfig) HCL2Spec ¶
func (*FlatVolcengineDataDiskConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a VolcengineDataDiskConfig. This spec is used by HCL to read the fields of VolcengineDataDiskConfig. The decoded values from this spec will then be applied to a FlatVolcengineDataDiskConfig.
type ProcessResult ¶
type VolcengineAuthenticationConfig ¶
type VolcengineAuthenticationConfig struct {
VolcengineAccessKey string `mapstructure:"access_key" required:"true"`
VolcengineSecretKey string `mapstructure:"secret_key" required:"true"`
VolcengineSessionKey string `mapstructure:"session_key" required:"false"`
VolcengineEndpoint string `mapstructure:"endpoint" required:"false"`
VolcengineDisableSSL *bool `mapstructure:"disable_ssl" required:"false"`
VolcengineRegion string `mapstructure:"region" required:"true"`
}
func (*VolcengineAuthenticationConfig) Config ¶
func (v *VolcengineAuthenticationConfig) Config() error
func (*VolcengineAuthenticationConfig) Prepare ¶
func (v *VolcengineAuthenticationConfig) Prepare(ctx *interpolate.Context) []error
type VolcengineClientConfig ¶
type VolcengineClientConfig struct {
VolcengineAuthenticationConfig `mapstructure:",squash"`
// contains filtered or unexported fields
}
func (*VolcengineClientConfig) Client ¶
func (v *VolcengineClientConfig) Client(stateBag *multistep.BasicStateBag) *VolcengineClientWrapper
type VolcengineClientWrapper ¶
type VolcengineDataDiskConfig ¶
type VolcengineDataDiskConfig struct {
DataDiskType string `mapstructure:"data_disk_type" required:"true"`
DataDiskSize int32 `mapstructure:"data_disk_size" required:"true"`
}
func (*VolcengineDataDiskConfig) FlatMapstructure ¶
func (*VolcengineDataDiskConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatVolcengineDataDiskConfig. FlatVolcengineDataDiskConfig is an auto-generated flat version of VolcengineDataDiskConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type VolcengineEcsConfig ¶
type VolcengineEcsConfig struct {
//vpc
VpcId string `mapstructure:"vpc_id" required:"false"`
VpcName string `mapstructure:"vpc_name" required:"false"`
VpcCidrBlock string `mapstructure:"vpc_cidr_block" required:"false"`
DNS1 string `mapstructure:"dns1" required:"false"`
DNS2 string `mapstructure:"dns2" required:"false"`
//subnet
SubnetId string `mapstructure:"subnet_id" required:"false"`
SubnetName string `mapstructure:"subnet_name" required:"false"`
SubnetCidrBlock string `mapstructure:"subnet_cidr_block" required:"false"`
AvailabilityZone string `mapstructure:"availability_zone" required:"false"`
//sg
SecurityGroupId string `mapstructure:"security_group_id" required:"false"`
SecurityGroupName string `mapstructure:"security_group_name" required:"false"`
//eip
PublicIpId string `mapstructure:"public_ip_id" required:"false"`
AssociatePublicIpAddress bool `mapstructure:"associate_public_ip_address" required:"false"`
PublicIpBandWidth int64 `mapstructure:"public_ip_band_width" required:"false"`
//ssh
Comm communicator.Config `mapstructure:",squash"`
//ecs
InstanceType string `mapstructure:"instance_type" required:"true"`
SourceImageId string `mapstructure:"source_image_id" required:"true"`
TargetImageName string `mapstructure:"target_image_name" required:"true"`
SystemDiskType string `mapstructure:"system_disk_type" required:"true"`
SystemDiskSize int32 `mapstructure:"system_disk_size" required:"true"`
DataDisks []VolcengineDataDiskConfig `mapstructure:"data_disks" required:"false"`
InstanceName string `mapstructure:"instance_name" required:"false"`
UserData string `mapstructure:"user_data" required:"false"`
//hpc
HpcClusterId string `mapstructure:"hpc_cluster_id" required:"false"`
}
type WaitForParam ¶
Source Files
¶
- artifact.go
- builder.go
- builder.hcl2spec.go
- step_config_volcengine_ecs.go
- step_config_volcengine_ecs_stop.go
- step_config_volcengine_key_pair.go
- step_config_volcengine_public_ip.go
- step_config_volcengine_sg.go
- step_config_volcengine_subnet.go
- step_config_volcengine_vpc.go
- step_create_volcengine_image.go
- step_valid_volcengine_image.go
- volcengine_authentication_config.go
- volcengine_client.go
- volcengine_client_config.go
- volcengine_ecs_config.go
- volcengine_resource_wait.go
- volcengine_utils.go