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