Documentation
¶
Overview ¶
The alicloud contains a packersdk.Builder implementation that builds ecs images for alicloud.
Index ¶
- Constants
- Variables
- func ContainsInArray(arr []string, value string) bool
- func SSHHost(e alicloudSSHHelper) func(multistep.StateBag) (string, error)
- type AlicloudAccessConfig
- type AlicloudImageConfig
- type Artifact
- type Builder
- type ClientWrapper
- func (c *ClientWrapper) CheckImageExist(image_id string) bool
- func (c *ClientWrapper) CheckImageOk(image_id string) (*api.GetImageDetailResult, error)
- func (c *ClientWrapper) EvalCouldRetryCheckImageOk(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
- func (c *ClientWrapper) EvalCouldRetryImageCreateResponse(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
- func (c *ClientWrapper) ListImages(imageType string, imageName string) ([]string, error)
- func (c *ClientWrapper) WaitForExpected(args *WaitForExpectArgs) (interface{}, error)
- type Config
- type DiskSpec
- type EvalErrorType
- type FlatConfig
- type InstanceInfo
- type InstanceNetWork
- type InstancePurchaseSpec
- type InstanceSpec
- type PurchaseProgress
- type PurchaseRet
- type RsClientWrapper
- func (c *RsClientWrapper) CreateInstance(request *iam.BceRequest) (*iam.BceResponse, error)
- func (c *RsClientWrapper) EvalCouldRetryResponse(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
- func (c *RsClientWrapper) GetOkInstances(purchaseOrderId string, expectedCount int) ([]InstanceInfo, error)
- func (c *RsClientWrapper) GetPurchaseId(resp *iam.BceResponse) (string, error)
- func (c *RsClientWrapper) WaitForExpected(args *WaitForExpectArgs) (interface{}, error)
- type RunConfig
- type WaitForExpectArgs
- type WaitForExpectEvalResult
Constants ¶
View Source
const ( ALICLOUD_DEFAULT_SHORT_TIMEOUT = 180 ALICLOUD_DEFAULT_TIMEOUT = 1800 ALICLOUD_DEFAULT_LONG_TIMEOUT = 3600 )
View Source
const ( InstanceStatusRunning = "Running" InstanceStatusStarting = "Starting" InstanceStatusStopped = "Stopped" InstanceStatusStopping = "Stopping" )
View Source
const ( ImageStatusWaiting = "Waiting" ImageStatusCreating = "Creating" ImageStatusCreateFailed = "CreateFailed" ImageStatusAvailable = "Available" )
View Source
const ( SnapshotStatusAll = "all" SnapshotStatusProgressing = "progressing" SnapshotStatusAccomplished = "accomplished" SnapshotStatusFailed = "failed" )
View Source
const ( DiskStatusInUse = "In_use" DiskStatusAvailable = "Available" DiskStatusAttaching = "Attaching" DiskStatusDetaching = "Detaching" DiskStatusCreating = "Creating" DiskStatusReIniting = "ReIniting" )
View Source
const ( VpcStatusPending = "Pending" VpcStatusAvailable = "Available" )
View Source
const ( VSwitchStatusPending = "Pending" VSwitchStatusAvailable = "Available" )
View Source
const ( EipStatusAssociating = "Associating" EipStatusUnassociating = "Unassociating" EipStatusInUse = "InUse" EipStatusAvailable = "Available" )
View Source
const ( ImageOwnerSystem = "system" ImageOwnerSelf = "self" ImageOwnerOthers = "others" ImageOwnerMarketplace = "marketplace" )
View Source
const ( IOOptimizedNone = "none" IOOptimizedOptimized = "optimized" )
View Source
const ( InstanceNetworkClassic = "classic" InstanceNetworkVpc = "vpc" )
View Source
const ( DiskTypeSystem = "system" DiskTypeData = "data" )
View Source
const ( TagResourceImage = "image" TagResourceInstance = "instance" TagResourceSnapshot = "snapshot" TagResourceDisk = "disk" )
View Source
const ( IpProtocolAll = "all" IpProtocolTCP = "tcp" IpProtocolUDP = "udp" IpProtocolICMP = "icmp" IpProtocolGRE = "gre" )
View Source
const ( NicTypeInternet = "internet" NicTypeIntranet = "intranet" )
View Source
const ( DefaultPortRange = "-1/-1" DefaultCidrIp = "0.0.0.0/0" DefaultCidrBlock = "172.16.0.0/24" )
View Source
const ( EvalRetryErrorType = EvalErrorType(true) EvalNotRetryErrorType = EvalErrorType(false) )
View Source
const BuilderId = "baidu.bdcloud"
The unique ID for this builder
View Source
const DefaultRequestReadTimeout = 10 * time.Second
View Source
const Packer = "HashiCorp-Packer"
Variables ¶
View Source
var ( WaitForExpectSuccess = WaitForExpectEvalResult{ // contains filtered or unexported fields } WaitForExpectToRetry = WaitForExpectEvalResult{ // contains filtered or unexported fields } WaitForExpectFailToStop = WaitForExpectEvalResult{ // contains filtered or unexported fields } )
View Source
var ImageStatusQueried = fmt.Sprintf("%s,%s,%s,%s", ImageStatusWaiting, ImageStatusCreating, ImageStatusCreateFailed, ImageStatusAvailable)
Functions ¶
func ContainsInArray ¶
Types ¶
type AlicloudAccessConfig ¶
type AlicloudAccessConfig struct {
RsAccessKey string `mapstructure:"rs_access_key" required:"true"`
RsSecretKey string `mapstructure:"rs_secret_key" required:"true"`
RsEndpoint string `mapstructure:"rs_endpoint" required:"false"`
BceAccessKey string `mapstructure:"bce_access_key" required:"true"`
BceSecretKey string `mapstructure:"bce_secret_key" required:"true"`
Region string `mapstructure:"region" required:"false"`
Endpoint string `mapstructure:"endpoint" required:"false"`
// contains filtered or unexported fields
}
Config of alicloud
func (*AlicloudAccessConfig) Client ¶
func (c *AlicloudAccessConfig) Client() (*ClientWrapper, error)
Client for AlicloudClient
func (*AlicloudAccessConfig) Config ¶
func (c *AlicloudAccessConfig) Config() error
func (*AlicloudAccessConfig) Prepare ¶
func (c *AlicloudAccessConfig) Prepare(ctx *interpolate.Context) []error
func (*AlicloudAccessConfig) RsClient ¶
func (c *AlicloudAccessConfig) RsClient() (*RsClientWrapper, error)
Client for AlicloudClient
type AlicloudImageConfig ¶
type AlicloudImageConfig struct {
SrcImageId string `mapstructure:"src_image_id" required:"false"`
SrcImageType string `mapstructure:"src_image_type" required:"false"`
SrcImageName string `mapstructure:"src_image_name" required:"false"`
DstImageName string `mapstructure:"dst_image_name" required:"true"`
DstImageVersion string `mapstructure:"dst_image_version" required:"true"`
}
func (*AlicloudImageConfig) Prepare ¶
func (c *AlicloudImageConfig) Prepare(ctx *interpolate.Context) []error
func (*AlicloudImageConfig) ValidImageType ¶
func (c *AlicloudImageConfig) ValidImageType() error
type Artifact ¶
type Artifact struct {
// A map of regions to alicloud image IDs.
Region string
ImageId string
// BuilderId is the unique ID for the builder that created this alicloud image
BuilderIdValue string
// Alcloud connection for performing API stuff.
Client *ClientWrapper
}
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) ConfigSpec ¶
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type ClientWrapper ¶
func (*ClientWrapper) CheckImageExist ¶
func (c *ClientWrapper) CheckImageExist(image_id string) bool
func (*ClientWrapper) CheckImageOk ¶
func (c *ClientWrapper) CheckImageOk(image_id string) (*api.GetImageDetailResult, error)
func (*ClientWrapper) EvalCouldRetryCheckImageOk ¶
func (c *ClientWrapper) EvalCouldRetryCheckImageOk(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
func (*ClientWrapper) EvalCouldRetryImageCreateResponse ¶
func (c *ClientWrapper) EvalCouldRetryImageCreateResponse(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
func (*ClientWrapper) ListImages ¶
func (c *ClientWrapper) ListImages(imageType string, imageName string) ([]string, error)
func (*ClientWrapper) WaitForExpected ¶
func (c *ClientWrapper) WaitForExpected(args *WaitForExpectArgs) (interface{}, error)
type Config ¶
type Config struct {
common.PackerConfig `mapstructure:",squash"`
AlicloudAccessConfig `mapstructure:",squash"`
AlicloudImageConfig `mapstructure:",squash"`
RunConfig `mapstructure:",squash"`
// contains filtered or unexported fields
}
type EvalErrorType ¶
type EvalErrorType bool
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"`
RsAccessKey *string `mapstructure:"rs_access_key" required:"true" cty:"rs_access_key" hcl:"rs_access_key"`
RsSecretKey *string `mapstructure:"rs_secret_key" required:"true" cty:"rs_secret_key" hcl:"rs_secret_key"`
RsEndpoint *string `mapstructure:"rs_endpoint" required:"false" cty:"rs_endpoint" hcl:"rs_endpoint"`
BceAccessKey *string `mapstructure:"bce_access_key" required:"true" cty:"bce_access_key" hcl:"bce_access_key"`
BceSecretKey *string `mapstructure:"bce_secret_key" required:"true" cty:"bce_secret_key" hcl:"bce_secret_key"`
Region *string `mapstructure:"region" required:"false" cty:"region" hcl:"region"`
Endpoint *string `mapstructure:"endpoint" required:"false" cty:"endpoint" hcl:"endpoint"`
SrcImageId *string `mapstructure:"src_image_id" required:"false" cty:"src_image_id" hcl:"src_image_id"`
SrcImageType *string `mapstructure:"src_image_type" required:"false" cty:"src_image_type" hcl:"src_image_type"`
SrcImageName *string `mapstructure:"src_image_name" required:"false" cty:"src_image_name" hcl:"src_image_name"`
DstImageName *string `mapstructure:"dst_image_name" required:"true" cty:"dst_image_name" hcl:"dst_image_name"`
DstImageVersion *string `mapstructure:"dst_image_version" required:"true" cty:"dst_image_version" hcl:"dst_image_version"`
AvailableZone *string `mapstructure:"available_zone" required:"true" cty:"available_zone" hcl:"available_zone"`
InstanceSpec *string `mapstructure:"instance_spec" required:"true" cty:"instance_spec" hcl:"instance_spec"`
RootDiskType *string `mapstructure:"root_disk_type" required:"true" cty:"root_disk_type" hcl:"root_disk_type"`
RootDiskSize *int `mapstructure:"root_disk_size" required:"true" cty:"root_disk_size" hcl:"root_disk_size"`
MountBns *string `mapstructure:"mount_bns" required:"true" cty:"mount_bns" hcl:"mount_bns"`
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"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type InstanceInfo ¶
type InstanceNetWork ¶
type InstanceNetWork string
type InstancePurchaseSpec ¶
type InstanceSpec ¶
type PurchaseProgress ¶
type PurchaseProgress struct {
MachineList []InstanceInfo
}
type PurchaseRet ¶
type PurchaseRet struct {
PurchaseOrderUuid string
}
type RsClientWrapper ¶
type RsClientWrapper struct {
*client.AuthApiClient
}
func (*RsClientWrapper) CreateInstance ¶
func (c *RsClientWrapper) CreateInstance(request *iam.BceRequest) (*iam.BceResponse, error)
func (*RsClientWrapper) EvalCouldRetryResponse ¶
func (c *RsClientWrapper) EvalCouldRetryResponse(evalErrors []string, evalErrorType EvalErrorType) func(response interface{}, err error) WaitForExpectEvalResult
func (*RsClientWrapper) GetOkInstances ¶
func (c *RsClientWrapper) GetOkInstances(purchaseOrderId string, expectedCount int) ([]InstanceInfo, error)
func (*RsClientWrapper) GetPurchaseId ¶
func (c *RsClientWrapper) GetPurchaseId(resp *iam.BceResponse) (string, error)
func (*RsClientWrapper) WaitForExpected ¶
func (c *RsClientWrapper) WaitForExpected(args *WaitForExpectArgs) (interface{}, error)
type RunConfig ¶
type RunConfig struct {
AvailableZone string `mapstructure:"available_zone" required:"true"`
InstanceSpec string `mapstructure:"instance_spec" required:"true"`
RootDiskType string `mapstructure:"root_disk_type" required:"true"`
RootDiskSize int `mapstructure:"root_disk_size" required:"true"`
MountBns string `mapstructure:"mount_bns" required:"true"`
// Communicator settings
Comm communicator.Config `mapstructure:",squash"`
}
type WaitForExpectArgs ¶
type WaitForExpectEvalResult ¶
type WaitForExpectEvalResult struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.