Documentation
¶
Index ¶
- Constants
- Variables
- func CheckRequiredStates(state multistep.StateBag, keys ...string) error
- type Builder
- type Config
- type ConnectSupervisorConfig
- type CreateSourceConfig
- type FlatConfig
- type FlatConnectSupervisorConfig
- type FlatCreateSourceConfig
- type FlatImportImageConfig
- type FlatPublishSourceConfig
- type FlatValidatePublishConfig
- type FlatWatchSourceConfig
- type ImportImageConfig
- type PackerLogger
- type PublishSourceConfig
- type StepConnectSupervisor
- type StepCreateSource
- type StepImportImage
- type StepPublishSource
- type StepValidatePublish
- type StepWatchSource
- type ValidatePublishConfig
- type WatchSourceConfig
Constants ¶
const ( StateKeySupervisorNamespace = "supervisor_namespace" StateKeyKubeClient = "kube_client" )
const ( DefaultSourceNamePrefix = "source" VMSelectorLabelKey = DefaultSourceNamePrefix + "-selector" StateKeySourceName = "source_name" StateKeyVMCreated = "vm_created" StateKeyVMServiceCreated = "vm_service_created" StateKeyVMMetadataSecretCreated = "vm_metadata_secret_created" StateKeyKeepInputArtifact = "keep_input_artifact" ProviderCloudInit = string(vmopv1alpha1.VirtualMachineMetadataCloudInitTransport) ProviderSysprep = string(vmopv1alpha1.VirtualMachineMetadataSysprepTransport) ProviderVAppConfig = string(vmopv1alpha1.VirtualMachineMetadataVAppConfigTransport) )
const ( ImportTargetKind = "ContentLibrary" ImportTargetAPIVersion = "imageregistry.vmware.com/v1alpha1" DefaultWatchImageImportTimeoutSec = 600 ImportRequestDefaultNamePrefix = "packer-vsphere-supervisor-import-req-" StateKeyImageImportRequestCreated = "item_import_req_created" StateKeyImportedImageName = "imported_image_name" )
const ( DefaultWatchPublishTimeoutSec = 600 StateKeyVMPublishRequestCreated = "vm_pub_req_created" )
const ( DefaultWatchTimeoutSec = 1800 StateKeyVMIP = "vm_ip" StateKeyCommunicateIP = "ip" )
const (
DefaultCommUsername = "packer"
)
const (
StateKeyPublishLocationName = "publish_location_name"
)
Variables ¶
var ( Mu sync.Mutex IsWatchingVM bool )
var InitKubeClientFunc = func(s *StepConnectSupervisor) (client.WithWatch, error) { config, err := clientcmd.BuildConfigFromFlags("", s.Config.KubeconfigPath) if err != nil { return nil, err } scheme := runtime.NewScheme() _ = corev1.AddToScheme(scheme) _ = vmopv1alpha1.AddToScheme(scheme) _ = imgregv1alpha1.AddToScheme(scheme) return client.NewWithWatch(config, client.Options{Scheme: scheme}) }
Setting this function as a variable so that it can be mocked in test.
var IsWatchingVMPublish bool
Functions ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) ConfigSpec ¶
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type Config ¶
type Config struct {
packercommon.PackerConfig `mapstructure:",squash"`
CommunicatorConfig communicator.Config `mapstructure:",squash"`
ValidatePublishConfig `mapstructure:",squash"`
ConnectSupervisorConfig `mapstructure:",squash"`
ImportImageConfig `mapstructure:",squash"`
CreateSourceConfig `mapstructure:",squash"`
WatchSourceConfig `mapstructure:",squash"`
PublishSourceConfig `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.
type ConnectSupervisorConfig ¶
type ConnectSupervisorConfig struct {
// The path to kubeconfig file for accessing to the vSphere Supervisor cluster. Defaults to the value of `KUBECONFIG` envvar or `$HOME/.kube/config` if the envvar is not set.
KubeconfigPath string `mapstructure:"kubeconfig_path"`
// The Supervisor namespace to deploy the source VM. Defaults to the current context's namespace in kubeconfig.
SupervisorNamespace string `mapstructure:"supervisor_namespace"`
}
func (*ConnectSupervisorConfig) FlatMapstructure ¶
func (*ConnectSupervisorConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatConnectSupervisorConfig. FlatConnectSupervisorConfig is an auto-generated flat version of ConnectSupervisorConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*ConnectSupervisorConfig) Prepare ¶
func (c *ConnectSupervisorConfig) Prepare() []error
type CreateSourceConfig ¶
type CreateSourceConfig struct {
// Name of the VM class that describes virtual hardware settings.
ClassName string `mapstructure:"class_name" required:"true"`
// Name of the storage class that configures storage-related attributes.
StorageClass string `mapstructure:"storage_class" required:"true"`
// Name of the source virtual machine (VM) image. If it is specified, the image with the name will be used for the
// source VM, otherwise the image name from imported image will be used.
ImageName string `mapstructure:"image_name"`
// Name of the source VM. Limited to 15 characters. Defaults to `source-<random-5-digit-suffix>`.
SourceName string `mapstructure:"source_name"`
// Name of the network type to attach to the source VM's network interface. Defaults to empty.
NetworkType string `mapstructure:"network_type"`
// Name of the network to attach to the source VM's network interface. Defaults to empty.
NetworkName string `mapstructure:"network_name"`
// Preserve all the created objects in Supervisor cluster after the build finishes. Defaults to `false`.
KeepInputArtifact bool `mapstructure:"keep_input_artifact"`
// Name of the bootstrap provider to use for configuring the source VM.
// Supported values are `CloudInit`, `Sysprep`, and `vAppConfig`. Defaults to `CloudInit`.
BootstrapProvider string `mapstructure:"bootstrap_provider"`
// Path to a file with bootstrap configuration data. Required if `bootstrap_provider` is not set to `CloudInit`.
// Defaults to a basic cloud config that sets up the user account from the SSH communicator config.
BootstrapDataFile string `mapstructure:"bootstrap_data_file"`
}
func (*CreateSourceConfig) FlatMapstructure ¶
func (*CreateSourceConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatCreateSourceConfig. FlatCreateSourceConfig is an auto-generated flat version of CreateSourceConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*CreateSourceConfig) Prepare ¶
func (c *CreateSourceConfig) Prepare() []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"`
PublishLocationName *string `mapstructure:"publish_location_name" cty:"publish_location_name" hcl:"publish_location_name"`
KubeconfigPath *string `mapstructure:"kubeconfig_path" cty:"kubeconfig_path" hcl:"kubeconfig_path"`
SupervisorNamespace *string `mapstructure:"supervisor_namespace" cty:"supervisor_namespace" hcl:"supervisor_namespace"`
ImportSourceURL *string `mapstructure:"import_source_url" cty:"import_source_url" hcl:"import_source_url"`
ImportSourceSSLCertificate *string `mapstructure:"import_source_ssl_certificate" cty:"import_source_ssl_certificate" hcl:"import_source_ssl_certificate"`
ImportTargetLocationName *string `mapstructure:"import_target_location_name" cty:"import_target_location_name" hcl:"import_target_location_name"`
ImportTargetImageType *string `mapstructure:"import_target_image_type" cty:"import_target_image_type" hcl:"import_target_image_type"`
ImportTargetImageName *string `mapstructure:"import_target_image_name" cty:"import_target_image_name" hcl:"import_target_image_name"`
ImportRequestName *string `mapstructure:"import_request_name" cty:"import_request_name" hcl:"import_request_name"`
WatchImportTimeoutSec *int `mapstructure:"watch_import_timeout_sec" cty:"watch_import_timeout_sec" hcl:"watch_import_timeout_sec"`
KeepImportRequest *bool `mapstructure:"keep_import_request" cty:"keep_import_request" hcl:"keep_import_request"`
CleanImportedImage *bool `mapstructure:"clean_imported_image" cty:"clean_imported_image" hcl:"clean_imported_image"`
ClassName *string `mapstructure:"class_name" required:"true" cty:"class_name" hcl:"class_name"`
StorageClass *string `mapstructure:"storage_class" required:"true" cty:"storage_class" hcl:"storage_class"`
ImageName *string `mapstructure:"image_name" cty:"image_name" hcl:"image_name"`
SourceName *string `mapstructure:"source_name" cty:"source_name" hcl:"source_name"`
NetworkType *string `mapstructure:"network_type" cty:"network_type" hcl:"network_type"`
NetworkName *string `mapstructure:"network_name" cty:"network_name" hcl:"network_name"`
KeepInputArtifact *bool `mapstructure:"keep_input_artifact" cty:"keep_input_artifact" hcl:"keep_input_artifact"`
BootstrapProvider *string `mapstructure:"bootstrap_provider" cty:"bootstrap_provider" hcl:"bootstrap_provider"`
BootstrapDataFile *string `mapstructure:"bootstrap_data_file" cty:"bootstrap_data_file" hcl:"bootstrap_data_file"`
WatchSourceTimeoutSec *int `mapstructure:"watch_source_timeout_sec" cty:"watch_source_timeout_sec" hcl:"watch_source_timeout_sec"`
PublishImageName *string `mapstructure:"publish_image_name" cty:"publish_image_name" hcl:"publish_image_name"`
WatchPublishTimeoutSec *int `mapstructure:"watch_publish_timeout_sec" cty:"watch_publish_timeout_sec" hcl:"watch_publish_timeout_sec"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatConnectSupervisorConfig ¶
type FlatConnectSupervisorConfig struct {
KubeconfigPath *string `mapstructure:"kubeconfig_path" cty:"kubeconfig_path" hcl:"kubeconfig_path"`
SupervisorNamespace *string `mapstructure:"supervisor_namespace" cty:"supervisor_namespace" hcl:"supervisor_namespace"`
}
FlatConnectSupervisorConfig is an auto-generated flat version of ConnectSupervisorConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatConnectSupervisorConfig) HCL2Spec ¶
func (*FlatConnectSupervisorConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a ConnectSupervisorConfig. This spec is used by HCL to read the fields of ConnectSupervisorConfig. The decoded values from this spec will then be applied to a FlatConnectSupervisorConfig.
type FlatCreateSourceConfig ¶
type FlatCreateSourceConfig struct {
ClassName *string `mapstructure:"class_name" required:"true" cty:"class_name" hcl:"class_name"`
StorageClass *string `mapstructure:"storage_class" required:"true" cty:"storage_class" hcl:"storage_class"`
ImageName *string `mapstructure:"image_name" cty:"image_name" hcl:"image_name"`
SourceName *string `mapstructure:"source_name" cty:"source_name" hcl:"source_name"`
NetworkType *string `mapstructure:"network_type" cty:"network_type" hcl:"network_type"`
NetworkName *string `mapstructure:"network_name" cty:"network_name" hcl:"network_name"`
KeepInputArtifact *bool `mapstructure:"keep_input_artifact" cty:"keep_input_artifact" hcl:"keep_input_artifact"`
BootstrapProvider *string `mapstructure:"bootstrap_provider" cty:"bootstrap_provider" hcl:"bootstrap_provider"`
BootstrapDataFile *string `mapstructure:"bootstrap_data_file" cty:"bootstrap_data_file" hcl:"bootstrap_data_file"`
}
FlatCreateSourceConfig is an auto-generated flat version of CreateSourceConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatCreateSourceConfig) HCL2Spec ¶
func (*FlatCreateSourceConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a CreateSourceConfig. This spec is used by HCL to read the fields of CreateSourceConfig. The decoded values from this spec will then be applied to a FlatCreateSourceConfig.
type FlatImportImageConfig ¶ added in v1.4.0
type FlatImportImageConfig struct {
ImportSourceURL *string `mapstructure:"import_source_url" cty:"import_source_url" hcl:"import_source_url"`
ImportSourceSSLCertificate *string `mapstructure:"import_source_ssl_certificate" cty:"import_source_ssl_certificate" hcl:"import_source_ssl_certificate"`
ImportTargetLocationName *string `mapstructure:"import_target_location_name" cty:"import_target_location_name" hcl:"import_target_location_name"`
ImportTargetImageType *string `mapstructure:"import_target_image_type" cty:"import_target_image_type" hcl:"import_target_image_type"`
ImportTargetImageName *string `mapstructure:"import_target_image_name" cty:"import_target_image_name" hcl:"import_target_image_name"`
ImportRequestName *string `mapstructure:"import_request_name" cty:"import_request_name" hcl:"import_request_name"`
WatchImportTimeoutSec *int `mapstructure:"watch_import_timeout_sec" cty:"watch_import_timeout_sec" hcl:"watch_import_timeout_sec"`
KeepImportRequest *bool `mapstructure:"keep_import_request" cty:"keep_import_request" hcl:"keep_import_request"`
CleanImportedImage *bool `mapstructure:"clean_imported_image" cty:"clean_imported_image" hcl:"clean_imported_image"`
}
FlatImportImageConfig is an auto-generated flat version of ImportImageConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatImportImageConfig) HCL2Spec ¶ added in v1.4.0
func (*FlatImportImageConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a ImportImageConfig. This spec is used by HCL to read the fields of ImportImageConfig. The decoded values from this spec will then be applied to a FlatImportImageConfig.
type FlatPublishSourceConfig ¶ added in v1.2.0
type FlatPublishSourceConfig struct {
PublishImageName *string `mapstructure:"publish_image_name" cty:"publish_image_name" hcl:"publish_image_name"`
WatchPublishTimeoutSec *int `mapstructure:"watch_publish_timeout_sec" cty:"watch_publish_timeout_sec" hcl:"watch_publish_timeout_sec"`
}
FlatPublishSourceConfig is an auto-generated flat version of PublishSourceConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatPublishSourceConfig) HCL2Spec ¶ added in v1.2.0
func (*FlatPublishSourceConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a PublishSourceConfig. This spec is used by HCL to read the fields of PublishSourceConfig. The decoded values from this spec will then be applied to a FlatPublishSourceConfig.
type FlatValidatePublishConfig ¶ added in v1.2.0
type FlatValidatePublishConfig struct {
PublishLocationName *string `mapstructure:"publish_location_name" cty:"publish_location_name" hcl:"publish_location_name"`
}
FlatValidatePublishConfig is an auto-generated flat version of ValidatePublishConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatValidatePublishConfig) HCL2Spec ¶ added in v1.2.0
func (*FlatValidatePublishConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a ValidatePublishConfig. This spec is used by HCL to read the fields of ValidatePublishConfig. The decoded values from this spec will then be applied to a FlatValidatePublishConfig.
type FlatWatchSourceConfig ¶
type FlatWatchSourceConfig struct {
WatchSourceTimeoutSec *int `mapstructure:"watch_source_timeout_sec" cty:"watch_source_timeout_sec" hcl:"watch_source_timeout_sec"`
}
FlatWatchSourceConfig is an auto-generated flat version of WatchSourceConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatWatchSourceConfig) HCL2Spec ¶
func (*FlatWatchSourceConfig) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a WatchSourceConfig. This spec is used by HCL to read the fields of WatchSourceConfig. The decoded values from this spec will then be applied to a FlatWatchSourceConfig.
type ImportImageConfig ¶ added in v1.4.0
type ImportImageConfig struct {
// The remote URL where the to-be-imported image is hosted.
ImportSourceURL string `mapstructure:"import_source_url"`
// The SSL certificate of the remote HTTP server that hosts the to-be-imported image.
ImportSourceSSLCertificate string `mapstructure:"import_source_ssl_certificate"`
// Name of a writable and import-allowed ContentLibrary resource in the namespace where the image will be imported.
ImportTargetLocationName string `mapstructure:"import_target_location_name"`
// The type of imported image.
// Defaults to `ovf`. Available options include `ovf`.
ImportTargetImageType string `mapstructure:"import_target_image_type"`
// Name of the imported image.
// Defaults to the file name of the image referenced in the source URL.
ImportTargetImageName string `mapstructure:"import_target_image_name"`
// The name of the image import request.
// Defaults to `packer-vsphere-supervisor-import-req-<random-suffix>`.
ImportRequestName string `mapstructure:"import_request_name"`
// The timeout in seconds to wait for the image to be imported.
// Defaults to `600`.
WatchImportTimeoutSec int `mapstructure:"watch_import_timeout_sec"`
// Preserve the import request in the Supervisor cluster after the build finishes.
// Defaults to `false`.
KeepImportRequest bool `mapstructure:"keep_import_request"`
// Clean the imported image after the build finishes. If set to `true`, the imported image will be deleted.
// Defaults to `false`.
CleanImportedImage bool `mapstructure:"clean_imported_image"`
}
func (*ImportImageConfig) FlatMapstructure ¶ added in v1.4.0
func (*ImportImageConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatImportImageConfig. FlatImportImageConfig is an auto-generated flat version of ImportImageConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*ImportImageConfig) Prepare ¶ added in v1.4.0
func (c *ImportImageConfig) Prepare() []error
type PackerLogger ¶
func (*PackerLogger) Error ¶
func (pl *PackerLogger) Error(msg string, args ...interface{})
func (*PackerLogger) Info ¶
func (pl *PackerLogger) Info(msg string, args ...interface{})
type PublishSourceConfig ¶ added in v1.2.0
type PublishSourceConfig struct {
// The name of the published VM image. If not specified, the vm-operator API will set a default name.
PublishImageName string `mapstructure:"publish_image_name"`
// The timeout in seconds to wait for the VM to be published. Defaults to `600`.
WatchPublishTimeoutSec int `mapstructure:"watch_publish_timeout_sec"`
}
func (*PublishSourceConfig) FlatMapstructure ¶ added in v1.2.0
func (*PublishSourceConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatPublishSourceConfig. FlatPublishSourceConfig is an auto-generated flat version of PublishSourceConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*PublishSourceConfig) Prepare ¶ added in v1.2.0
func (c *PublishSourceConfig) Prepare() []error
type StepConnectSupervisor ¶
type StepConnectSupervisor struct {
Config *ConnectSupervisorConfig
}
func (*StepConnectSupervisor) Cleanup ¶
func (s *StepConnectSupervisor) Cleanup(multistep.StateBag)
func (*StepConnectSupervisor) Run ¶
func (s *StepConnectSupervisor) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepCreateSource ¶
type StepCreateSource struct {
Config *CreateSourceConfig
CommunicatorConfig *communicator.Config
Namespace string
KubeClient client.Client
}
func (*StepCreateSource) Cleanup ¶
func (s *StepCreateSource) Cleanup(state multistep.StateBag)
func (*StepCreateSource) Run ¶
func (s *StepCreateSource) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepImportImage ¶ added in v1.4.0
type StepImportImage struct {
ImportImageConfig *ImportImageConfig
ImportItemResourceName, Namespace string
TargetItemType imgregv1.ContentLibraryItemType
KubeWatchClient client.WithWatch
// The lock and bool are mainly used to help testing.
Mu sync.Mutex
IsWatchingImageImport bool
}
func (*StepImportImage) Cleanup ¶ added in v1.4.0
func (s *StepImportImage) Cleanup(state multistep.StateBag)
func (*StepImportImage) Run ¶ added in v1.4.0
func (s *StepImportImage) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepPublishSource ¶ added in v1.2.0
type StepPublishSource struct {
Config *PublishSourceConfig
PublishLocationName, SourceName, Namespace string
KeepInputArtifact bool
KubeWatchClient client.WithWatch
}
func (*StepPublishSource) Cleanup ¶ added in v1.2.0
func (s *StepPublishSource) Cleanup(state multistep.StateBag)
func (*StepPublishSource) Run ¶ added in v1.2.0
func (s *StepPublishSource) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepValidatePublish ¶ added in v1.2.0
type StepValidatePublish struct {
Config *ValidatePublishConfig
Namespace string
KubeClient client.Client
}
func (*StepValidatePublish) Cleanup ¶ added in v1.2.0
func (s *StepValidatePublish) Cleanup(state multistep.StateBag)
func (*StepValidatePublish) Run ¶ added in v1.2.0
func (s *StepValidatePublish) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepWatchSource ¶
type StepWatchSource struct {
Config *WatchSourceConfig
SourceName, Namespace string
KubeWatchClient client.WithWatch
}
func (*StepWatchSource) Cleanup ¶
func (s *StepWatchSource) Cleanup(state multistep.StateBag)
func (*StepWatchSource) Run ¶
func (s *StepWatchSource) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type ValidatePublishConfig ¶ added in v1.2.0
type ValidatePublishConfig struct {
// Name of a writable ContentLibrary resource associated with namespace where the source VM will be published.
PublishLocationName string `mapstructure:"publish_location_name"`
}
func (*ValidatePublishConfig) FlatMapstructure ¶ added in v1.2.0
func (*ValidatePublishConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatValidatePublishConfig. FlatValidatePublishConfig is an auto-generated flat version of ValidatePublishConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*ValidatePublishConfig) Prepare ¶ added in v1.2.0
func (c *ValidatePublishConfig) Prepare() []error
type WatchSourceConfig ¶
type WatchSourceConfig struct {
// The timeout in seconds to wait for the source VM to be ready. Defaults to `1800`.
WatchSourceTimeoutSec int `mapstructure:"watch_source_timeout_sec"`
}
func (*WatchSourceConfig) FlatMapstructure ¶
func (*WatchSourceConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatWatchSourceConfig. FlatWatchSourceConfig is an auto-generated flat version of WatchSourceConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*WatchSourceConfig) Prepare ¶
func (c *WatchSourceConfig) Prepare() []error
Source Files
¶
- builder.go
- config.go
- config.hcl2spec.go
- step_connect_supervisor.go
- step_connect_supervisor.hcl2spec.go
- step_create_source.go
- step_create_source.hcl2spec.go
- step_import_image.go
- step_import_image.hcl2spec.go
- step_publish_source.go
- step_publish_source.hcl2spec.go
- step_validate_publish.go
- step_validate_publish.hcl2spec.go
- step_watch_source.go
- step_watch_source.hcl2spec.go
- utils.go