Documentation ¶
Overview ¶
Package oci contains a packer.Builder implementation that builds Oracle Bare Metal Cloud Services (OCI) images.
Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT.
Index ¶
Constants ¶
const BuilderId = "packer.oracle.oci"
BuilderId uniquely identifies the builder
Variables ¶
This section is empty.
Functions ¶
func NewRawConfigurationProvider ¶ added in v1.2.3
func NewRawConfigurationProvider(tenancy, user, region, fingerprint, privateKey string, privateKeyPassphrase *string) common.ConfigurationProvider
NewRawConfigurationProvider will create a rawConfigurationProvider.
Types ¶
type Artifact ¶
Artifact is an artifact implementation that contains a built Custom Image.
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is a builder implementation that creates Oracle OCI custom images.
func (*Builder) ConfigSpec ¶ added in v1.5.0
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type Config ¶
type Config struct { common.PackerConfig `mapstructure:",squash"` Comm communicator.Config `mapstructure:",squash"` AccessCfgFile string `mapstructure:"access_cfg_file"` AccessCfgFileAccount string `mapstructure:"access_cfg_file_account"` // Access config overrides UserID string `mapstructure:"user_ocid"` TenancyID string `mapstructure:"tenancy_ocid"` Region string `mapstructure:"region"` Fingerprint string `mapstructure:"fingerprint"` KeyFile string `mapstructure:"key_file"` PassPhrase string `mapstructure:"pass_phrase"` UsePrivateIP bool `mapstructure:"use_private_ip"` AvailabilityDomain string `mapstructure:"availability_domain"` CompartmentID string `mapstructure:"compartment_ocid"` // Image BaseImageID string `mapstructure:"base_image_ocid"` Shape string `mapstructure:"shape"` ImageName string `mapstructure:"image_name"` // Instance InstanceName string `mapstructure:"instance_name"` // Metadata optionally contains custom metadata key/value pairs provided in the // configuration. While this can be used to set metadata["user_data"] the explicit // "user_data" and "user_data_file" values will have precedence. // An instance's metadata can be obtained from at http://169.254.169.254 on the // launched instance. Metadata map[string]string `mapstructure:"metadata"` // UserData and UserDataFile file are both optional and mutually exclusive. UserData string `mapstructure:"user_data"` UserDataFile string `mapstructure:"user_data_file"` // Networking SubnetID string `mapstructure:"subnet_ocid"` // Tagging Tags map[string]string `mapstructure:"tags"` DefinedTags map[string]map[string]interface{} `mapstructure:"defined_tags"` // contains filtered or unexported fields }
func (*Config) ConfigProvider ¶ added in v1.2.3
func (c *Config) ConfigProvider() ocicommon.ConfigurationProvider
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 Driver ¶
type Driver interface { CreateInstance(ctx context.Context, publicKey string) (string, error) CreateImage(ctx context.Context, id string) (core.Image, error) DeleteImage(ctx context.Context, id string) error GetInstanceIP(ctx context.Context, id string) (string, error) TerminateInstance(ctx context.Context, id string) error WaitForImageCreation(ctx context.Context, id string) error WaitForInstanceState(ctx context.Context, id string, waitStates []string, terminalState string) error }
Driver interfaces between the builder steps and the OCI SDK.
func NewDriverOCI ¶
NewDriverOCI Creates a new driverOCI with a connected compute client and a connected vcn client.
type FlatConfig ¶ added in v1.4.5
type FlatConfig struct { PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name"` PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type"` PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug"` PackerForce *bool `mapstructure:"packer_force" cty:"packer_force"` PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error"` PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables"` PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables"` Type *string `mapstructure:"communicator" cty:"communicator"` PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting"` SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host"` SSHPort *int `mapstructure:"ssh_port" cty:"ssh_port"` SSHUsername *string `mapstructure:"ssh_username" cty:"ssh_username"` SSHPassword *string `mapstructure:"ssh_password" cty:"ssh_password"` SSHKeyPairName *string `mapstructure:"ssh_keypair_name" cty:"ssh_keypair_name"` SSHTemporaryKeyPairName *string `mapstructure:"temporary_key_pair_name" cty:"temporary_key_pair_name"` SSHClearAuthorizedKeys *bool `mapstructure:"ssh_clear_authorized_keys" cty:"ssh_clear_authorized_keys"` SSHPrivateKeyFile *string `mapstructure:"ssh_private_key_file" cty:"ssh_private_key_file"` SSHPty *bool `mapstructure:"ssh_pty" cty:"ssh_pty"` SSHTimeout *string `mapstructure:"ssh_timeout" cty:"ssh_timeout"` SSHAgentAuth *bool `mapstructure:"ssh_agent_auth" cty:"ssh_agent_auth"` SSHDisableAgentForwarding *bool `mapstructure:"ssh_disable_agent_forwarding" cty:"ssh_disable_agent_forwarding"` SSHHandshakeAttempts *int `mapstructure:"ssh_handshake_attempts" cty:"ssh_handshake_attempts"` SSHBastionHost *string `mapstructure:"ssh_bastion_host" cty:"ssh_bastion_host"` SSHBastionPort *int `mapstructure:"ssh_bastion_port" cty:"ssh_bastion_port"` SSHBastionAgentAuth *bool `mapstructure:"ssh_bastion_agent_auth" cty:"ssh_bastion_agent_auth"` SSHBastionUsername *string `mapstructure:"ssh_bastion_username" cty:"ssh_bastion_username"` SSHBastionPassword *string `mapstructure:"ssh_bastion_password" cty:"ssh_bastion_password"` SSHBastionPrivateKeyFile *string `mapstructure:"ssh_bastion_private_key_file" cty:"ssh_bastion_private_key_file"` SSHFileTransferMethod *string `mapstructure:"ssh_file_transfer_method" cty:"ssh_file_transfer_method"` SSHProxyHost *string `mapstructure:"ssh_proxy_host" cty:"ssh_proxy_host"` SSHProxyPort *int `mapstructure:"ssh_proxy_port" cty:"ssh_proxy_port"` SSHProxyUsername *string `mapstructure:"ssh_proxy_username" cty:"ssh_proxy_username"` SSHProxyPassword *string `mapstructure:"ssh_proxy_password" cty:"ssh_proxy_password"` SSHKeepAliveInterval *string `mapstructure:"ssh_keep_alive_interval" cty:"ssh_keep_alive_interval"` SSHReadWriteTimeout *string `mapstructure:"ssh_read_write_timeout" cty:"ssh_read_write_timeout"` SSHRemoteTunnels []string `mapstructure:"ssh_remote_tunnels" cty:"ssh_remote_tunnels"` SSHLocalTunnels []string `mapstructure:"ssh_local_tunnels" cty:"ssh_local_tunnels"` SSHPublicKey []byte `mapstructure:"ssh_public_key" cty:"ssh_public_key"` SSHPrivateKey []byte `mapstructure:"ssh_private_key" cty:"ssh_private_key"` WinRMUser *string `mapstructure:"winrm_username" cty:"winrm_username"` WinRMPassword *string `mapstructure:"winrm_password" cty:"winrm_password"` WinRMHost *string `mapstructure:"winrm_host" cty:"winrm_host"` WinRMPort *int `mapstructure:"winrm_port" cty:"winrm_port"` WinRMTimeout *string `mapstructure:"winrm_timeout" cty:"winrm_timeout"` WinRMUseSSL *bool `mapstructure:"winrm_use_ssl" cty:"winrm_use_ssl"` WinRMInsecure *bool `mapstructure:"winrm_insecure" cty:"winrm_insecure"` WinRMUseNTLM *bool `mapstructure:"winrm_use_ntlm" cty:"winrm_use_ntlm"` AccessCfgFile *string `mapstructure:"access_cfg_file" cty:"access_cfg_file"` AccessCfgFileAccount *string `mapstructure:"access_cfg_file_account" cty:"access_cfg_file_account"` UserID *string `mapstructure:"user_ocid" cty:"user_ocid"` TenancyID *string `mapstructure:"tenancy_ocid" cty:"tenancy_ocid"` Region *string `mapstructure:"region" cty:"region"` Fingerprint *string `mapstructure:"fingerprint" cty:"fingerprint"` KeyFile *string `mapstructure:"key_file" cty:"key_file"` PassPhrase *string `mapstructure:"pass_phrase" cty:"pass_phrase"` UsePrivateIP *bool `mapstructure:"use_private_ip" cty:"use_private_ip"` AvailabilityDomain *string `mapstructure:"availability_domain" cty:"availability_domain"` CompartmentID *string `mapstructure:"compartment_ocid" cty:"compartment_ocid"` BaseImageID *string `mapstructure:"base_image_ocid" cty:"base_image_ocid"` Shape *string `mapstructure:"shape" cty:"shape"` ImageName *string `mapstructure:"image_name" cty:"image_name"` InstanceName *string `mapstructure:"instance_name" cty:"instance_name"` Metadata map[string]string `mapstructure:"metadata" cty:"metadata"` UserData *string `mapstructure:"user_data" cty:"user_data"` UserDataFile *string `mapstructure:"user_data_file" cty:"user_data_file"` SubnetID *string `mapstructure:"subnet_ocid" cty:"subnet_ocid"` Tags map[string]string `mapstructure:"tags" cty:"tags"` DefinedTags map[string]map[string]interface{} `mapstructure:"defined_tags" cty:"defined_tags"` }
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.