Documentation
¶
Index ¶
- Variables
- func AddInstanceStorageVolumes(vmCtx pkgctx.VirtualMachineContext, is vmopv1.InstanceStorage) (bool, bool)
- func DefaultGuestIDIfEmpty(vmSpecGuestID, imgGuestID string, ...) bool
- func GetAdditionalResourcesForBackup(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) ([]ctrlclient.Object, error)
- func GetAttachedClassicDiskUUIDs(vmCtx pkgctx.VirtualMachineContext) map[string]struct{}
- func GetAttachedDiskUUIDToPVC(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (map[string]corev1.PersistentVolumeClaim, error)
- func GetVMClassConfigSpec(ctx context.Context, raw json.RawMessage) (vimtypes.VirtualMachineConfigSpec, error)
- func GetVMSetResourcePolicy(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (*vmopv1.VirtualMachineSetResourcePolicy, error)
- func GetVirtualMachineBootstrap(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (vmlifecycle.BootstrapData, error)
- func GetVirtualMachineClass(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (vmopv1.VirtualMachineClass, error)
- func GetVirtualMachineImageSpecAndStatus(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (ctrlclient.Object, vmopv1.VirtualMachineImageSpec, ...)
- func NewVSphereVMProviderFromClient(ctx context.Context, client ctrlclient.Client, recorder record.Recorder) providers.VirtualMachineProviderInterface
- func NormalizeVAppConfigExpressionProperties(configSpec *vimtypes.VirtualMachineConfigSpec)
- func ReconcileCurrentSnapshot(vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client, ...) error
- type VMCreateArgs
Constants ¶
This section is empty.
Variables ¶
var ( ErrSetPowerState = res.ErrSetPowerState ErrUpgradeSchema = upgradevm.ErrUpgradeSchema ErrUpgradeObject = upgradevm.ErrUpgradeObject ErrBackup = virtualmachine.ErrBackingUp ErrBootstrapReconfigure = vmlifecycle.ErrBootstrapReconfigure ErrBootstrapCustomize = vmlifecycle.ErrBootstrapCustomize ErrReconfigure = session.ErrReconfigure ErrRestart = pkgerr.NoRequeueNoErr("restarted vm") ErrUpgradeHardwareVersion = session.ErrUpgradeHardwareVersion ErrIsPaused = pkgerr.NoRequeueNoErr("is paused") ErrHasTask = pkgerr.NoRequeueNoErr("has outstanding task") ErrPromoteDisks = vmconfdiskpromo.ErrPromoteDisks ErrCreate = pkgerr.NoRequeueNoErr("created vm") ErrUpdate = pkgerr.NoRequeueNoErr("updated vm") ErrSnapshotRevert = pkgerr.NoRequeueNoErr("reverted snapshot") ErrPolicyNotReady = vmconfpolicy.ErrPolicyNotReady ErrRegisterVolumes = vmconfunmanagedvolsreg.ErrPendingRegister ErrAddedInstanceStorageVols = pkgerr.NoRequeueNoErr("added instance storage volumes") )
var ( // ErrVMGroupPlacementConfigSpec is the error returned when not all VMs in the group // placement were able to get their placement ConfigSpec, so group placement could not // be done. ErrVMGroupPlacementConfigSpec = errors.New("failed to get all VM placement ConfigSpecs") )
var ( // SkipVMImageCLProviderCheck skips the checks that a VM Image has a Content Library item provider // since a VirtualMachineImage created for a VM template won't have either. This has been broken for // a long time but was otherwise masked on how the tests used to be organized. SkipVMImageCLProviderCheck = false )
var VMUpdatePropertiesSelector = []string{
"config",
"guest",
"layoutEx",
"recentTask",
"resourcePool",
"runtime",
"snapshot",
"summary",
}
VMUpdatePropertiesSelector is the set of VM properties fetched at the start of updateVirtualMachine.
Functions ¶
func AddInstanceStorageVolumes ¶
func AddInstanceStorageVolumes( vmCtx pkgctx.VirtualMachineContext, is vmopv1.InstanceStorage) (bool, bool)
AddInstanceStorageVolumes checks if VM class is configured with instance storage volumes and appends the volumes to the VM's Spec if not already done. Return true if the VM had or now has instance storage volumes.
func DefaultGuestIDIfEmpty ¶ added in v1.10.0
func DefaultGuestIDIfEmpty( vmSpecGuestID, imgGuestID string, configSpec *vimtypes.VirtualMachineConfigSpec) bool
DefaultGuestIDIfEmpty sets configSpec.GuestId to otherGuest when no guest ID is specified by the VM spec, image, or class. VM classes created via the vSphere UI default to otherGuest64; this is treated as unset and overridden so that OVFs without an OperatingSystemSection can power on successfully. Returns true if the guest ID was updated.
func GetAdditionalResourcesForBackup ¶
func GetAdditionalResourcesForBackup( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) ([]ctrlclient.Object, error)
GetAdditionalResourcesForBackup returns a list of Kubernetes client objects that are relevant for VM backup (e.g. bootstrap referenced resources).
func GetAttachedClassicDiskUUIDs ¶
func GetAttachedClassicDiskUUIDs(vmCtx pkgctx.VirtualMachineContext) map[string]struct{}
func GetAttachedDiskUUIDToPVC ¶
func GetAttachedDiskUUIDToPVC( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (map[string]corev1.PersistentVolumeClaim, error)
GetAttachedDiskUUIDToPVC returns a map of disk UUID to PVC object for all attached disks by checking for volumes that have a PersistentVolumeClaim.
func GetVMClassConfigSpec ¶
func GetVMClassConfigSpec( ctx context.Context, raw json.RawMessage) (vimtypes.VirtualMachineConfigSpec, error)
func GetVMSetResourcePolicy ¶
func GetVMSetResourcePolicy( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (*vmopv1.VirtualMachineSetResourcePolicy, error)
func GetVirtualMachineBootstrap ¶
func GetVirtualMachineBootstrap( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (vmlifecycle.BootstrapData, error)
func GetVirtualMachineClass ¶
func GetVirtualMachineClass( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (vmopv1.VirtualMachineClass, error)
func GetVirtualMachineImageSpecAndStatus ¶
func GetVirtualMachineImageSpecAndStatus( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client) (ctrlclient.Object, vmopv1.VirtualMachineImageSpec, vmopv1.VirtualMachineImageStatus, error)
GetVirtualMachineImageSpecAndStatus returns either the VirtualMachineImage or ClusterVirtualMachineImage resource, as well as its spec and status, for the resource used to deploy a VM.
Please note, this function is *not* designed to be invoked in the "update" VM workflow. This function assumes it is only ever invoked as part of the "create" workflow. For example, spec.image *can* be nil during the update workflow for imported VMs, and that is perfectly legal. However, this function marks a VM in error during the create workflow if spec.image is nil.
func NewVSphereVMProviderFromClient ¶
func NewVSphereVMProviderFromClient( ctx context.Context, client ctrlclient.Client, recorder record.Recorder) providers.VirtualMachineProviderInterface
func NormalizeVAppConfigExpressionProperties ¶ added in v1.10.0
func NormalizeVAppConfigExpressionProperties(configSpec *vimtypes.VirtualMachineConfigSpec)
NormalizeVAppConfigExpressionProperties converts vAppProperty types from expression and ip:network to string so they can be configured via vApp bootstrap templating. Supervisor does not support vApp network expressions.
func ReconcileCurrentSnapshot ¶ added in v1.10.0
func ReconcileCurrentSnapshot( vmCtx pkgctx.VirtualMachineContext, k8sClient ctrlclient.Client, vcVM *object.VirtualMachine) error
ReconcileCurrentSnapshot reconciles the current snapshot owned by the VM.
Types ¶
type VMCreateArgs ¶
type VMCreateArgs struct {
vmlifecycle.CreateArgs
vmlifecycle.BootstrapData
VMClass vmopv1.VirtualMachineClass
ResourcePolicy *vmopv1.VirtualMachineSetResourcePolicy
ImageObj ctrlclient.Object
ImageSpec vmopv1.VirtualMachineImageSpec
ImageStatus vmopv1.VirtualMachineImageStatus
Storage storage.VMStorageData
HasInstanceStorage bool
ChildResourcePoolName string
ChildFolderName string
ClusterMoRef vimtypes.ManagedObjectReference
NetworkResults network.NetworkInterfaceResults
}
VMCreateArgs contains the arguments needed to create a VM on VC.