Documentation
¶
Overview ¶
Package v1alpha2 is the v1alpha2 version of the API. +groupName=virtualization.deckhouse.io
+kubebuilder:object:generate=true +groupName=virtualization.deckhouse.io
+kubebuilder:object:generate=true +groupName=virtualization.deckhouse.io
+kubebuilder:object:generate=true +groupName=virtualization.deckhouse.io
Index ¶
- Constants
- Variables
- func GroupVersionResource(resource string) schema.GroupVersionResource
- func Kind(kind string) schema.GroupKind
- func NewAffinityFromVMAffinity(vmAffinity *VMAffinity) *corev1.Affinity
- func Resource(resource string) schema.GroupResource
- type AttachedVirtualMachine
- type BlockDeviceAttachmentPhase
- type BlockDeviceKind
- type BlockDeviceSpecRef
- type BlockDeviceStatusRef
- type BootloaderType
- type CPU
- type CPUSpec
- type CPUStatus
- type CPUType
- type Checksum
- type ClusterVirtualImage
- type ClusterVirtualImageContainerImage
- type ClusterVirtualImageDataSource
- type ClusterVirtualImageList
- type ClusterVirtualImageObjectRef
- type ClusterVirtualImageObjectRefKind
- type ClusterVirtualImageSpec
- type ClusterVirtualImageStatus
- type ClusterVirtualImageStatusTarget
- type CoreFractionValue
- type CpuDiscovery
- type CpuFeatures
- type DataSourceHTTP
- type DataSourceType
- type DiskPhase
- type DiskTarget
- type Disruptions
- type ImagePhase
- type ImagePullSecret
- type ImagePullSecretName
- type ImageStatusSize
- type ImageUploadURLs
- type KeepIPAddress
- type LiveMigrationPolicy
- type MachinePhase
- type MemoryMinMax
- type MemorySpec
- type MemoryStatus
- type MigrationResult
- type NameReplacement
- type NameReplacementFrom
- type NetworksSpec
- type NetworksStatus
- type NodeSelector
- type OsType
- type Provisioning
- type ProvisioningType
- type ResourceRef
- type ResourcesStatus
- type RestartApprovalMode
- type RestoreMode
- type RunPolicy
- type SizingPolicy
- type SizingPolicyCores
- type SizingPolicyMemory
- type SizingPolicyMemoryPerCore
- type StatusSpeed
- type StorageType
- type SysprepRef
- type SysprepRefKind
- type Topology
- type UserDataRef
- type UserDataRefKind
- type VMAffinity
- type VMBDAObjectRef
- type VMBDAObjectRefKind
- type VMOPPhase
- type VMOPResourceKind
- type VMOPResourceStatusPhase
- type VMOPRestoreMode
- type VMOPType
- type Versions
- type VirtualDisk
- type VirtualDiskContainerImage
- type VirtualDiskDataSource
- type VirtualDiskList
- type VirtualDiskObjectRef
- type VirtualDiskObjectRefKind
- type VirtualDiskPersistentVolumeClaim
- type VirtualDiskSnapshot
- type VirtualDiskSnapshotList
- type VirtualDiskSnapshotPhase
- type VirtualDiskSnapshotSpec
- type VirtualDiskSnapshotStatus
- type VirtualDiskSpec
- type VirtualDiskStats
- type VirtualDiskStatsCreationDuration
- type VirtualDiskStatus
- type VirtualImage
- type VirtualImageContainerImage
- type VirtualImageDataSource
- type VirtualImageList
- type VirtualImageObjectRef
- type VirtualImageObjectRefKind
- type VirtualImagePersistentVolumeClaim
- type VirtualImageSpec
- type VirtualImageStatus
- type VirtualImageStatusTarget
- type VirtualMachine
- type VirtualMachineAndPodAffinity
- type VirtualMachineAndPodAffinityTerm
- type VirtualMachineAndPodAntiAffinity
- type VirtualMachineBlockDeviceAttachment
- type VirtualMachineBlockDeviceAttachmentList
- type VirtualMachineBlockDeviceAttachmentSpec
- type VirtualMachineBlockDeviceAttachmentStatus
- type VirtualMachineClass
- type VirtualMachineClassList
- type VirtualMachineClassPhase
- type VirtualMachineClassSpec
- type VirtualMachineClassStatus
- type VirtualMachineIPAddress
- type VirtualMachineIPAddressLease
- type VirtualMachineIPAddressLeaseIpAddressRef
- type VirtualMachineIPAddressLeaseList
- type VirtualMachineIPAddressLeasePhase
- type VirtualMachineIPAddressLeaseSpec
- type VirtualMachineIPAddressLeaseStatus
- type VirtualMachineIPAddressList
- type VirtualMachineIPAddressPhase
- type VirtualMachineIPAddressSpec
- type VirtualMachineIPAddressStatus
- type VirtualMachineIPAddressType
- type VirtualMachineLaunchTimeDuration
- type VirtualMachineList
- type VirtualMachineLocation
- type VirtualMachineMACAddress
- type VirtualMachineMACAddressLease
- type VirtualMachineMACAddressLeaseList
- type VirtualMachineMACAddressLeaseMACAddressRef
- type VirtualMachineMACAddressLeasePhase
- type VirtualMachineMACAddressLeaseSpec
- type VirtualMachineMACAddressLeaseStatus
- type VirtualMachineMACAddressList
- type VirtualMachineMACAddressPhase
- type VirtualMachineMACAddressSpec
- type VirtualMachineMACAddressStatus
- type VirtualMachineMigrationState
- type VirtualMachineOperation
- type VirtualMachineOperationList
- type VirtualMachineOperationResource
- type VirtualMachineOperationRestoreSpec
- type VirtualMachineOperationSpec
- type VirtualMachineOperationStatus
- type VirtualMachinePhaseTransitionTimestamp
- type VirtualMachinePod
- type VirtualMachineRestore
- type VirtualMachineRestoreList
- type VirtualMachineRestorePhase
- type VirtualMachineRestoreSpec
- type VirtualMachineRestoreStatus
- type VirtualMachineSnapshot
- type VirtualMachineSnapshotList
- type VirtualMachineSnapshotPhase
- type VirtualMachineSnapshotSpec
- type VirtualMachineSnapshotStatus
- type VirtualMachineSpec
- type VirtualMachineStats
- type VirtualMachineStatus
- type WeightedVirtualMachineAndPodAffinityTerm
Constants ¶
const ( ClusterVirtualImageKind = "ClusterVirtualImage" ClusterVirtualImageResource = "clustervirtualimages" )
const ( // ReasonVDAlreadyInUse is event reason that VirtualDisk was not attached to VirtualMachine, because VirtualDisk attached to another VirtualMachine. ReasonVDAlreadyInUse = "VirtualDiskAlreadyInUse" // ReasonVMChangesApplied is event reason that changes applied from VM to underlying KVVM. ReasonVMChangesApplied = "ChangesApplied" // ReasonVMStarted is event reason that VM is about to start. ReasonVMStarted = "Started" // ReasonVMStopped is event reason that VM is about to stop. ReasonVMStopped = "Stopped" // ReasonVMRestarted is event reason that VM is about to restart. ReasonVMRestarted = "Restarted" // ReasonVMEvicted is event reason that VM is about to evict. ReasonVMEvicted = "Evicted" // ReasonVMMigrated is event reason that VM is about to migrate. ReasonVMMigrated = "Migrated" // ReasonVMStartFailed is an event reason indicating that the start of the VM failed. ReasonVMStartFailed = "Failed" // ReasonVMStopFailed is an event reason indicating that the stop of the VM failed. ReasonVMStopFailed = "Failed" // ReasonVMLastAppliedSpecIsInvalid is event reason that JSON in last-applied-spec annotation is invalid. ReasonVMLastAppliedSpecIsInvalid = "LastAppliedSpecIsInvalid" // ReasonVMClassLastAppliedSpecInvalid is event reason that JSON in last-applied-spec annotation is invalid. ReasonVMClassLastAppliedSpecInvalid = "VMClassLastAppliedSpecInvalid" // ReasonErrVmNotSynced is event reason that vm is not synced. ReasonErrVmNotSynced = "VirtualMachineNotSynced" // ReasonErrVmSynced is event reason that vm is synced. ReasonErrVmSynced = "VirtualMachineSynced" // ReasonErrRestartAwaitingChanges is event reason indicating that the vm has pending changes requiring a restart. ReasonErrRestartAwaitingChanges = "RestartAwaitingChanges" // ReasonErrVMOPFailed is event reason that operation is failed ReasonErrVMOPFailed = "VirtualMachineOperationFailed" // ReasonErrVMOPPending is event reason that operation is pending ReasonErrVMOPPending = "VirtualMachineOperationPending" // ReasonVMOPSucceeded is event reason that the operation is successfully completed ReasonVMOPSucceeded = "VirtualMachineOperationSucceeded" // ReasonVMOPStarted is event reason that the operation is started ReasonVMOPStarted = "VirtualMachineOperationStarted" // ReasonVMOPInProgress is event reason that the operation is in progress ReasonVMOPInProgress = "VirtualMachineOperationInProgress" // ReasonVDSpecHasBeenChanged is event reason that spec of virtual disk has been changed. ReasonVDSpecHasBeenChanged = "VirtualDiskSpecHasBeenChanged" // ReasonVISpecHasBeenChanged is event reason that spec of virtual image has been changed. ReasonVISpecHasBeenChanged = "VirtualImageSpecHasBeenChanged" // ReasonVDContainerRegistrySecretNotFound is event reason that VDContainerRegistrySecret not found. ReasonVDContainerRegistrySecretNotFound = "VirtualDiskContainerRegistrySecretNotFound" // ReasonVDResizingStarted is event reason that VD Resizing is started. ReasonVDResizingStarted = "VirtualDiskResizingStarted" // ReasonVDResizingCompleted is event reason that VD Resizing is completed. ReasonVDResizingCompleted = "VirtualDiskResizingCompleted" // ReasonVDResizingFailed is event reason that VD Resizing is failed. ReasonVDResizingFailed = "VirtualDiskResizingFailed" // ReasonVDResizingNotAvailable is event reason that VD Resizing is not available. ReasonVDResizingNotAvailable = "VirtualDiskResizingNotAvailable" // ReasonVIStorageClassNotFound is event reason that VIStorageClass not found. ReasonVIStorageClassNotFound = "VirtualImageStorageClassNotFound" // ReasonDataSourceSyncStarted is event reason that DataSource sync is started. ReasonDataSourceSyncStarted = "DataSourceImportStarted" // ReasonDataSourceSyncInProgress is event reason that DataSource sync is in progress. ReasonDataSourceSyncInProgress = "DataSourceImportInProgress" // ReasonDataSourceSyncCompleted is event reason that DataSource sync is completed. ReasonDataSourceSyncCompleted = "DataSourceImportCompleted" // ReasonDataSourceSyncFailed is event reason that DataSource sync is failed. ReasonDataSourceSyncFailed = "DataSourceImportFailed" // ReasonDataSourceQuotaExceeded is event reason that DataSource sync is failed because quota exceed. ReasonDataSourceQuotaExceeded = "DataSourceQuotaExceed" // ReasonDataSourceDiskProvisioningFailed is event reason that DataSource disk provisioning is failed. ReasonDataSourceDiskProvisioningFailed = "DataSourceImportDiskProvisioningFailed" // ReasonVMSnapshottingStarted is event reason that VirtualMachine snapshotting is started. ReasonVMSnapshottingStarted = "VirtualMachineSnapshottingStarted" // ReasonVMSnapshottingFrozen is event reason that the file system of VirtualMachine is frozen. ReasonVMSnapshottingFrozen = "VirtualMachineSnapshottingFrozen" // ReasonVMSnapshottingInProgress is event reason that VirtualMachine snapshotting is in progress. ReasonVMSnapshottingInProgress = "VirtualMachineSnapshottingInProgress" // ReasonVMSnapshottingThawed is event reason that the file system of VirtualMachine is thawed. ReasonVMSnapshottingThawed = "VirtualMachineSnapshottingThawed" // ReasonVMSnapshottingPending is event reason that VirtualMachine is not ready for snapshotting. ReasonVMSnapshottingPending = "VirtualMachineSnapshottingPending" // ReasonVMSnapshottingCompleted is event reason that VirtualMachine snapshotting is completed. ReasonVMSnapshottingCompleted = "VirtualMachineSnapshottingCompleted" // ReasonVMSnapshottingFailed is event reason that VirtualMachine snapshotting is failed. ReasonVMSnapshottingFailed = "VirtualMachineSnapshottingFailed" // ReasonAttached is event reason that VirtualMachineIPAddress is attached to VM. ReasonAttached = "Attached" // ReasonNotAttached is event reason that VirtualMachineIPAddress is not attached to VirtualMachine. ReasonNotAttached = "NotAttached" // ReasonIPAddressHasBeenAllocated is the event reason indicating that a new IP address has been allocated. ReasonIPAddressHasBeenAllocated = "IPAddressHasBeenAllocated" // ReasonBound is the event reason indicating that a VirtualMachineIPLease is bound to a VirtualMachineIPAddress. ReasonBound = "Bound" // ReasonReleased is the event reason indicating that a VirtualMachineIPLease is released. ReasonReleased = "Released" // ReasonFailed is the event reason indicating that the binding of a VirtualMachineIPLease to a VirtualMachineIPAddress has failed. ReasonFailed = "Failed" // ReasonVMClassSizingPoliciesWereChanged is event reason indicating that VMClass sizing policies were changed. ReasonVMClassSizingPoliciesWereChanged = "SizingPoliciesWereChanged" // ReasonVMClassAvailableNodesListEmpty is event reason indicating that VMClass has no available nodes. ReasonVMClassAvailableNodesListEmpty = "AvailableNodesListEmpty" // ReasonVMClassNodesWereUpdated is event reason indicating that VMClass available nodes list was updated. ReasonVMClassNodesWereUpdated = "NodesWereUpdated" )
const ( FinalizerCVIProtection = "virtualization.deckhouse.io/cvi-protection" FinalizerVIProtection = "virtualization.deckhouse.io/vi-protection" FinalizerVDProtection = "virtualization.deckhouse.io/vd-protection" FinalizerKVVMProtection = "virtualization.deckhouse.io/kvvm-protection" FinalizerIPAddressProtection = "virtualization.deckhouse.io/vmip-protection" FinalizerPodProtection = "virtualization.deckhouse.io/pod-protection" FinalizerVDSnapshotProtection = "virtualization.deckhouse.io/vdsnapshot-protection" FinalizerVMSnapshotProtection = "virtualization.deckhouse.io/vmsnapshot-protection" FinalizerVMOPProtectionByEvacuationController = "virtualization.deckhouse.io/vmop-protection-by-evacuation-controller" FinalizerCVICleanup = "virtualization.deckhouse.io/cvi-cleanup" FinalizerVDCleanup = "virtualization.deckhouse.io/vd-cleanup" FinalizerVICleanup = "virtualization.deckhouse.io/vi-cleanup" FinalizerVMCleanup = "virtualization.deckhouse.io/vm-cleanup" FinalizerIPAddressCleanup = "virtualization.deckhouse.io/vmip-cleanup" FinalizerIPAddressLeaseCleanup = "virtualization.deckhouse.io/vmipl-cleanup" FinalizerVDSnapshotCleanup = "virtualization.deckhouse.io/vdsnapshot-cleanup" FinalizerVMOPCleanup = "virtualization.deckhouse.io/vmop-cleanup" FinalizerVMClassCleanup = "virtualization.deckhouse.io/vmclass-cleanup" FinalizerVMBDACleanup = "virtualization.deckhouse.io/vmbda-cleanup" FinalizerMACAddressCleanup = "virtualization.deckhouse.io/vmmac-cleanup" FinalizerMACAddressLeaseCleanup = "virtualization.deckhouse.io/vmmacl-cleanup" )
const ( VirtualDiskKind = "VirtualDisk" VirtualDiskResource = "virtualdisks" )
const ( VirtualDiskSnapshotKind = "VirtualDiskSnapshot" VirtualDiskSnapshotResource = "virtualdisksnapshots" )
const ( VirtualImageKind = "VirtualImage" VirtualImageResource = "virtualimages" )
const ( VirtualMachineKind = "VirtualMachine" VirtualMachineResource = "virtualmachines" )
const ( NetworksTypeMain = "Main" NetworksTypeNetwork = "Network" NetworksTypeClusterNetwork = "ClusterNetwork" )
const ( SecretTypeCloudInit corev1.SecretType = "provisioning.virtualization.deckhouse.io/cloud-init" SecretTypeSysprep corev1.SecretType = "provisioning.virtualization.deckhouse.io/sysprep" )
const ( VirtualMachineBlockDeviceAttachmentKind = "VirtualMachineBlockDeviceAttachment" VirtualMachineBlockDeviceAttachmentResource = "virtualmachineblockdeviceattachments" )
const ( VirtualMachineClassKind = "VirtualMachineClass" VirtualMachineClassResource = "virtualmachineclasses" )
const ( VirtualMachineIPAddressKind = "VirtualMachineIPAddress" VirtualMachineIPAddressResource = "virtualmachineipaddresses" )
const ( VirtualMachineIPAddressLeaseKind = "VirtualMachineIPAddressLease" VirtualMachineIPAddressLeaseResource = "virtualmachineipaddressleases" )
const ( VirtualMachineMACAddressKind = "VirtualMachineMACAddress" VirtualMachineMACAddressResource = "virtualmachinemacaddresses" )
const ( VirtualMachineMACAddressLeaseKind = "VirtualMachineMACAddressLease" VirtualMachineMACAddressLeaseResource = "virtualmachinemacaddressleases" )
const ( VirtualMachineOperationKind = "VirtualMachineOperation" VirtualmachineOperationResource = "virtualmachineoperations" )
const ( VirtualMachineRestoreKind = "VirtualMachineRestore" VirtualMachineRestoreResource = "virtualmachinerestores" )
const ( VirtualMachineSnapshotKind = "VirtualMachineSnapshot" VirtualMachineSnapshotResource = "virtualmachinesnapshots" )
const Version = "v1alpha2"
Variables ¶
var ( // SchemeBuilder tbd SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme tbd AddToScheme = SchemeBuilder.AddToScheme )
var ClusterVirtualImageGVK = schema.GroupVersionKind{Group: SchemeGroupVersion.Group, Version: SchemeGroupVersion.Version, Kind: ClusterVirtualImageKind}
ClusterVirtualImageGVK is group version kind for ClusterVirtualImage
var SchemeGroupVersion = schema.GroupVersion{Group: core.GroupName, Version: Version}
SchemeGroupVersion is group version used to register these objects
var VirtualDiskGVK = schema.GroupVersionKind{Group: SchemeGroupVersion.Group, Version: SchemeGroupVersion.Version, Kind: VirtualDiskKind}
VirtualDiskGVK is group version kind for VirtualDisk
var VirtualImageGVK = schema.GroupVersionKind{Group: SchemeGroupVersion.Group, Version: SchemeGroupVersion.Version, Kind: VirtualImageKind}
VirtualImageGVK is group version kind for VirtualImage
Functions ¶
func GroupVersionResource ¶
func GroupVersionResource(resource string) schema.GroupVersionResource
func NewAffinityFromVMAffinity ¶
func NewAffinityFromVMAffinity(vmAffinity *VMAffinity) *corev1.Affinity
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AttachedVirtualMachine ¶
type AttachedVirtualMachine struct {
// Name of attached VirtualMachine.
Name string `json:"name,omitempty"`
// Flag indicating that VirtualDisk is currently being used by this attached VirtualMachine.
Mounted bool `json:"mounted,omitempty"`
}
List of VirtualMachines that use the disk.
func (*AttachedVirtualMachine) DeepCopy ¶
func (in *AttachedVirtualMachine) DeepCopy() *AttachedVirtualMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachedVirtualMachine.
func (*AttachedVirtualMachine) DeepCopyInto ¶
func (in *AttachedVirtualMachine) DeepCopyInto(out *AttachedVirtualMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockDeviceAttachmentPhase ¶
type BlockDeviceAttachmentPhase string
BlockDeviceAttachmentPhase defines the current status of the resource: * `Pending`: The resource has been created and is on a waiting queue. * `InProgress`: The disk is being attached to the VM. * `Attached`: The disk has been attached to the VM. * `Failed`: There was an error when attaching the disk. * `Terminating`: The resource is being deleted.
+kubebuilder:validation:Enum={Pending,InProgress,Attached,Failed,Terminating}
const ( BlockDeviceAttachmentPhasePending BlockDeviceAttachmentPhase = "Pending" BlockDeviceAttachmentPhaseInProgress BlockDeviceAttachmentPhase = "InProgress" BlockDeviceAttachmentPhaseAttached BlockDeviceAttachmentPhase = "Attached" BlockDeviceAttachmentPhaseFailed BlockDeviceAttachmentPhase = "Failed" BlockDeviceAttachmentPhaseTerminating BlockDeviceAttachmentPhase = "Terminating" )
type BlockDeviceKind ¶
type BlockDeviceKind string
The BlockDeviceKind is a type of the block device. Options are:
* `ClusterVirtualImage` — Use `ClusterVirtualImage` as the disk. This type is always mounted in RO mode. If the image is an iso-image, it will be mounted as a CDROM device. * `VirtualImage` — Use `VirtualImage` as the disk. This type is always mounted in RO mode. If the image is an iso-image, it will be mounted as a CDROM device. * `VirtualDisk` — Use `VirtualDisk` as the disk. This type is always mounted in RW mode. +kubebuilder:validation:Enum:={ClusterVirtualImage,VirtualImage,VirtualDisk}
const ( ClusterImageDevice BlockDeviceKind = "ClusterVirtualImage" ImageDevice BlockDeviceKind = "VirtualImage" DiskDevice BlockDeviceKind = "VirtualDisk" )
type BlockDeviceSpecRef ¶
type BlockDeviceSpecRef struct {
Kind BlockDeviceKind `json:"kind"`
// The name of attached resource.
Name string `json:"name"`
}
func (*BlockDeviceSpecRef) DeepCopy ¶
func (in *BlockDeviceSpecRef) DeepCopy() *BlockDeviceSpecRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceSpecRef.
func (*BlockDeviceSpecRef) DeepCopyInto ¶
func (in *BlockDeviceSpecRef) DeepCopyInto(out *BlockDeviceSpecRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlockDeviceStatusRef ¶
type BlockDeviceStatusRef struct {
Kind BlockDeviceKind `json:"kind"`
// The name of attached resource.
Name string `json:"name"`
// The size of attached block device.
Size string `json:"size"`
// The block device is attached to the virtual machine.
Attached bool `json:"attached"`
// The name of attached block device.
// +kubebuilder:example=sda
Target string `json:"target,omitempty"`
// Block device is attached via hot plug connection.
Hotplugged bool `json:"hotplugged,omitempty"`
// The name of the `VirtualMachineBlockDeviceAttachment` resource that defines hot plug disk connection to the virtual machine.
VirtualMachineBlockDeviceAttachmentName string `json:"virtualMachineBlockDeviceAttachmentName,omitempty"`
}
func (*BlockDeviceStatusRef) DeepCopy ¶
func (in *BlockDeviceStatusRef) DeepCopy() *BlockDeviceStatusRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceStatusRef.
func (*BlockDeviceStatusRef) DeepCopyInto ¶
func (in *BlockDeviceStatusRef) DeepCopyInto(out *BlockDeviceStatusRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BootloaderType ¶
type BootloaderType string
The BootloaderType defines bootloader for VM. * BIOS - use legacy BIOS. * EFI - use Unified Extensible Firmware (EFI/UEFI). * EFIWithSecureBoot - use UEFI/EFI with SecureBoot support. +kubebuilder:validation:Enum={BIOS,EFI,EFIWithSecureBoot}
const ( BIOS BootloaderType = "BIOS" EFI BootloaderType = "EFI" EFIWithSecureBoot BootloaderType = "EFIWithSecureBoot" )
type CPU ¶
type CPU struct {
// +kubebuilder:validation:Required
Type CPUType `json:"type"`
// CPU model name. For more information about CPU models and topology, refer to the [libvirt docs](https://libvirt.org/formatdomain.html#cpu-model-and-topology).
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:example=IvyBridge
Model string `json:"model,omitempty"`
// List of CPU instructions (features) required when type=Features.
// For more information about CPU features, refer to the [libvirt docs](https://libvirt.org/formatdomain.html#cpu-model-and-topology).
//
// +kubebuilder:validation:MinItems=1
// +kubebuilder:example={mmx, vmx, sse2}
Features []string `json:"features,omitempty"`
// Create a CPU model based on intersecting CPU features for selected nodes.
Discovery CpuDiscovery `json:"discovery,omitempty"`
}
CPU defines the requirements for the virtual CPU model. +kubebuilder:validation:XValidation:rule="self == oldSelf",message=".spec.cpu is immutable" +kubebuilder:validation:XValidation:rule="self.type == 'HostPassthrough' || self.type == 'Host' ? !has(self.model) && !has(self.features) && !has(self.discovery) : true",message="HostPassthrough and Host cannot have model, features or discovery" +kubebuilder:validation:XValidation:rule="self.type == 'Discovery' ? !has(self.model) && !has(self.features) : true",message="Discovery cannot have model or features" +kubebuilder:validation:XValidation:rule="self.type == 'Model' ? has(self.model) && !has(self.features) && !has(self.discovery) : true",message="Model requires model and cannot have features or discovery" +kubebuilder:validation:XValidation:rule="self.type == 'Features' ? has(self.features) && !has(self.model) && !has(self.discovery): true",message="Features requires features and cannot have model or discovery"
func (*CPU) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPU.
func (*CPU) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CPUSpec ¶
type CPUSpec struct {
// Specifies the number of cores inside the VM. The value must be greater or equal 1.
// +kubebuilder:validation:Format:=int32
// +kubebuilder:validation:Minimum=1
Cores int `json:"cores"`
// Guaranteed share of CPU that will be allocated to the VM. Specified as a percentage.
// +kubebuilder:default:="100%"
// +kubebuilder:validation:Enum:={"5%", "10%", "25%", "50%", "100%"}
CoreFraction string `json:"coreFraction,omitempty"`
}
CPUSpec specifies the CPU settings for the VM.
func (*CPUSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPUSpec.
func (*CPUSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CPUStatus ¶
type CPUStatus struct {
// Current number of cores inside the VM.
Cores int `json:"cores"`
// Current CoreFraction.
CoreFraction string `json:"coreFraction,omitempty"`
// Requested cores.
RequestedCores resource.Quantity `json:"requestedCores,omitempty"`
// runtime overhead.
RuntimeOverhead resource.Quantity `json:"runtimeOverhead,omitempty"`
// Topology with Cores count and Sockets count.
Topology Topology `json:"topology,omitempty"`
}
CPUStatus defines statistics about the CPU resource usage.
func (*CPUStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPUStatus.
func (*CPUStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CPUType ¶
type CPUType string
CPUType defines the CPU type, the following options are supported: * `Host`: Uses a virtual CPU with an instruction set closely matching the platform node's CPU. This provides high performance and functionality, as well as compatibility with "live" migration for nodes with similar processor types. For example, VM migration between nodes with Intel and AMD processors will not work. This is also true for different CPU generations, as their instruction set is different. * `HostPassthrough`: Uses the platform node's physical CPU directly, without any modifications. When using this class, the guest VM can only be transferred to a target node with a CPU exactly matching the source node's CPU. * `Discovery`: Create a virtual CPU based on instruction sets of physical CPUs for a selected set of nodes. * `Model`: CPU model. A CPU model is a named and previously defined set of supported CPU instructions. * `Features`: A required set of supported instructions for the CPU.
+kubebuilder:validation:Enum={Host,HostPassthrough,Discovery,Model,Features}
type Checksum ¶
type Checksum struct {
// +kubebuilder:example:="f3b59bed9f91e32fac1210184fcff6f5"
// +kubebuilder:validation:Pattern="^[0-9a-fA-F]{32}$"
// +kubebuilder:validation:MinLength:=32
// +kubebuilder:validation:MaxLength:=32
MD5 string `json:"md5,omitempty"`
// +kubebuilder:example:="78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5"
// +kubebuilder:validation:Pattern="^[0-9a-fA-F]{64}$"
// +kubebuilder:validation:MinLength:=64
// +kubebuilder:validation:MaxLength:=64
SHA256 string `json:"sha256,omitempty"`
}
func (*Checksum) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Checksum.
func (*Checksum) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImage ¶
type ClusterVirtualImage struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ClusterVirtualImageSpec `json:"spec"`
Status ClusterVirtualImageStatus `json:"status,omitempty"`
}
Describes a virtual disk image that can be used as a data source for new VirtualDisks or an installation image (iso) to be mounted in VirtualMachines directly. This resource type is available for all namespaces in the cluster.
> This resource cannot be modified once it has been created.
With this resource in the cluster, a container image is created and stored in a dedicated Deckhouse Virtualization Container Registry (DVCR).
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization,backup.deckhouse.io/cluster-config=true} +kubebuilder:resource:categories={virtualization-cluster},scope=Cluster,shortName={cvi},singular=clustervirtualimage +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="CDROM",type=boolean,JSONPath=`.status.cdrom` +kubebuilder:printcolumn:name="Progress",type=string,JSONPath=`.status.progress` +kubebuilder:printcolumn:name="StoredSize",type=string,JSONPath=`.status.size.stored`,priority=1 +kubebuilder:printcolumn:name="UnpackedSize",type=string,JSONPath=`.status.size.unpacked`,priority=1 +kubebuilder:printcolumn:name="Registry URL",type=string,JSONPath=`.status.target.registryURL`,priority=1 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ClusterVirtualImage) DeepCopy ¶
func (in *ClusterVirtualImage) DeepCopy() *ClusterVirtualImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImage.
func (*ClusterVirtualImage) DeepCopyInto ¶
func (in *ClusterVirtualImage) DeepCopyInto(out *ClusterVirtualImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterVirtualImage) DeepCopyObject ¶
func (in *ClusterVirtualImage) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterVirtualImageContainerImage ¶
type ClusterVirtualImageContainerImage struct {
// Path to the image in the container registry.
// +kubebuilder:example:="registry.example.com/images/slackware:15"
// +kubebuilder:validation:Pattern:=`^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$`
Image string `json:"image"`
ImagePullSecret ImagePullSecret `json:"imagePullSecret,omitempty"`
// CA chain in Base64 format to verify the container registry.
// +kubebuilder:example:="YWFhCg=="
CABundle []byte `json:"caBundle,omitempty"`
}
Use an image stored in external container registry. Only registries with enabled TLS protocol are supported. To provide a custom Certificate Authority (CA) chain, use the `caBundle` field.
func (*ClusterVirtualImageContainerImage) DeepCopy ¶
func (in *ClusterVirtualImageContainerImage) DeepCopy() *ClusterVirtualImageContainerImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageContainerImage.
func (*ClusterVirtualImageContainerImage) DeepCopyInto ¶
func (in *ClusterVirtualImageContainerImage) DeepCopyInto(out *ClusterVirtualImageContainerImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImageDataSource ¶
type ClusterVirtualImageDataSource struct {
Type DataSourceType `json:"type"`
HTTP *DataSourceHTTP `json:"http,omitempty"`
ContainerImage *ClusterVirtualImageContainerImage `json:"containerImage,omitempty"`
ObjectRef *ClusterVirtualImageObjectRef `json:"objectRef,omitempty"`
}
Origin of the image. +kubebuilder:validation:XValidation:rule="self.type == 'HTTP' ? has(self.http) && !has(self.containerImage) && !has(self.objectRef) : true",message="HTTP requires http and cannot have ContainerImage or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ContainerImage' ? has(self.containerImage) && !has(self.http) && !has(self.objectRef) : true",message="ContainerImage requires containerImage and cannot have HTTP or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ObjectRef' ? has(self.objectRef) && !has(self.http) && !has(self.containerImage) : true",message="ObjectRef requires objectRef and cannot have HTTP or ContainerImage."
func (*ClusterVirtualImageDataSource) DeepCopy ¶
func (in *ClusterVirtualImageDataSource) DeepCopy() *ClusterVirtualImageDataSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageDataSource.
func (*ClusterVirtualImageDataSource) DeepCopyInto ¶
func (in *ClusterVirtualImageDataSource) DeepCopyInto(out *ClusterVirtualImageDataSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImageList ¶
type ClusterVirtualImageList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
// Items provides a list of CVIs.
Items []ClusterVirtualImage `json:"items"`
}
ClusterVirtualImageList provides the needed parameters for requesting a list of ClusterVirtualImages from the system. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ClusterVirtualImageList) DeepCopy ¶
func (in *ClusterVirtualImageList) DeepCopy() *ClusterVirtualImageList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageList.
func (*ClusterVirtualImageList) DeepCopyInto ¶
func (in *ClusterVirtualImageList) DeepCopyInto(out *ClusterVirtualImageList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterVirtualImageList) DeepCopyObject ¶
func (in *ClusterVirtualImageList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterVirtualImageObjectRef ¶
type ClusterVirtualImageObjectRef struct {
Kind ClusterVirtualImageObjectRefKind `json:"kind"`
// Name of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.
Name string `json:"name"`
// Namespace where the VirtualImage, VirtualDisk or VirtualDiskSnapshot resource is located.
Namespace string `json:"namespace,omitempty"`
}
Use an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
+kubebuilder:validation:XValidation:rule="self.kind == 'VirtualImage' || self.kind == 'VirtualDisk' || self.kind == 'VirtualDiskSnapshot' ? has(self.__namespace__) && size(self.__namespace__) > 0 : true",message="The namespace is required for VirtualDisk, VirtualImage and VirtualDiskSnapshot" +kubebuilder:validation:XValidation:rule="self.kind == 'VirtualImage' || self.kind == 'VirtualDisk' || self.kind == 'VirtualDiskSnapshot' ? has(self.__namespace__) && size(self.__namespace__) < 64 : true",message="The namespace must be no longer than 63 characters."
func (*ClusterVirtualImageObjectRef) DeepCopy ¶
func (in *ClusterVirtualImageObjectRef) DeepCopy() *ClusterVirtualImageObjectRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageObjectRef.
func (*ClusterVirtualImageObjectRef) DeepCopyInto ¶
func (in *ClusterVirtualImageObjectRef) DeepCopyInto(out *ClusterVirtualImageObjectRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImageObjectRefKind ¶
type ClusterVirtualImageObjectRefKind string
Kind of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource. +kubebuilder:validation:Enum:={ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot}
const ( ClusterVirtualImageObjectRefKindVirtualImage ClusterVirtualImageObjectRefKind = "VirtualImage" ClusterVirtualImageObjectRefKindClusterVirtualImage ClusterVirtualImageObjectRefKind = "ClusterVirtualImage" ClusterVirtualImageObjectRefKindVirtualDisk ClusterVirtualImageObjectRefKind = "VirtualDisk" ClusterVirtualImageObjectRefKindVirtualDiskSnapshot ClusterVirtualImageObjectRefKind = "VirtualDiskSnapshot" )
type ClusterVirtualImageSpec ¶
type ClusterVirtualImageSpec struct {
DataSource ClusterVirtualImageDataSource `json:"dataSource"`
}
func (*ClusterVirtualImageSpec) DeepCopy ¶
func (in *ClusterVirtualImageSpec) DeepCopy() *ClusterVirtualImageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageSpec.
func (*ClusterVirtualImageSpec) DeepCopyInto ¶
func (in *ClusterVirtualImageSpec) DeepCopyInto(out *ClusterVirtualImageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImageStatus ¶
type ClusterVirtualImageStatus struct {
// Image download speed from an external source. Appears only during the `Provisioning` phase.
DownloadSpeed *StatusSpeed `json:"downloadSpeed,omitempty"`
// Discovered image size data.
Size ImageStatusSize `json:"size,omitempty"`
// Discovered image format.
Format string `json:"format,omitempty"`
// Defines whether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
CDROM bool `json:"cdrom,omitempty"`
// Current status of the ClusterVirtualImage resource:
// * `Pending`: The resource has been created and is on a waiting queue.
// * `Provisioning`: The resource is being created: copying, downloading, or building of the image is in progress.
// * `WaitForUserUpload`: Waiting for the user to upload the image. The endpoint to upload the image is specified in `.status.uploadCommand`.
// * `Ready`: The resource has been created and is ready to use.
// * `Failed`: There was an error when creating the resource.
// * `Terminating`: The resource is being deleted.
// +kubebuilder:validation:Enum:={Pending,Provisioning,WaitForUserUpload,Ready,Failed,Terminating}
Phase ImagePhase `json:"phase,omitempty"`
// Progress of copying an image from the source to DVCR. Appears only during the `Provisioning' phase.
Progress string `json:"progress,omitempty"`
// UID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the cluster virtual image.
SourceUID *types.UID `json:"sourceUID,omitempty"`
// The latest available observations of an object's current state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Deprecated. Use `imageUploadURLs` instead.
UploadCommand string `json:"uploadCommand,omitempty"`
ImageUploadURLs *ImageUploadURLs `json:"imageUploadURLs,omitempty"`
Target ClusterVirtualImageStatusTarget `json:"target,omitempty"`
// Displays the list of namespaces where the image is currently used.
UsedInNamespaces []string `json:"usedInNamespaces,omitempty"`
}
func (*ClusterVirtualImageStatus) DeepCopy ¶
func (in *ClusterVirtualImageStatus) DeepCopy() *ClusterVirtualImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageStatus.
func (*ClusterVirtualImageStatus) DeepCopyInto ¶
func (in *ClusterVirtualImageStatus) DeepCopyInto(out *ClusterVirtualImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVirtualImageStatusTarget ¶
type ClusterVirtualImageStatusTarget struct {
// Created image in DVCR.
// +kubebuilder:example:="dvcr.<dvcr-namespace>.svc/cvi/<image-name>:latest"
RegistryURL string `json:"registryURL,omitempty"`
}
func (*ClusterVirtualImageStatusTarget) DeepCopy ¶
func (in *ClusterVirtualImageStatusTarget) DeepCopy() *ClusterVirtualImageStatusTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVirtualImageStatusTarget.
func (*ClusterVirtualImageStatusTarget) DeepCopyInto ¶
func (in *ClusterVirtualImageStatusTarget) DeepCopyInto(out *ClusterVirtualImageStatusTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CoreFractionValue ¶
type CoreFractionValue int
+kubebuilder:validation:Minimum=1 +kubebuilder:validation:Maximum=100
type CpuDiscovery ¶
type CpuDiscovery struct {
// A selection of nodes to be used as the basis for creating a universal CPU model.
NodeSelector metav1.LabelSelector `json:"nodeSelector,omitempty"`
}
func (*CpuDiscovery) DeepCopy ¶
func (in *CpuDiscovery) DeepCopy() *CpuDiscovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CpuDiscovery.
func (*CpuDiscovery) DeepCopyInto ¶
func (in *CpuDiscovery) DeepCopyInto(out *CpuDiscovery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CpuFeatures ¶
type CpuFeatures struct {
// List of CPU features for this model.
//
// +kubebuilder:example={mmx, vmx, sse2}
Enabled []string `json:"enabled,omitempty"`
// List of unused processor features additionally available for a given group of nodes.
//
// +kubebuilder:example={ssse3, vme}
NotEnabledCommon []string `json:"notEnabledCommon,omitempty"`
}
CpuFeatures Information on CPU features supported by this model. Shown only for `Features` or `Discovery` types.
func (*CpuFeatures) DeepCopy ¶
func (in *CpuFeatures) DeepCopy() *CpuFeatures
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CpuFeatures.
func (*CpuFeatures) DeepCopyInto ¶
func (in *CpuFeatures) DeepCopyInto(out *CpuFeatures)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataSourceHTTP ¶
type DataSourceHTTP struct {
// Checksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
Checksum *Checksum `json:"checksum,omitempty"`
// URL of the file for creating an image. The following file formats are supported:
// * qcow2
// * vmdk
// * vdi
// * iso
// * raw
// The file can be compressed into an archive in one of the following formats:
// * gz
// * xz
// +kubebuilder:example:="https://mirror.example.com/images/slackware-15.qcow.gz"
// +kubebuilder:validation:Pattern=`^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$`
URL string `json:"url"`
// CA chain in Base64 format to verify the URL.
// +kubebuilder:example:="YWFhCg=="
CABundle []byte `json:"caBundle,omitempty"`
}
Fill the image with data from an external URL. The following schemas are supported:
* HTTP * HTTPS
For HTTPS schema, there is an option to skip the TLS verification.
func (*DataSourceHTTP) DeepCopy ¶
func (in *DataSourceHTTP) DeepCopy() *DataSourceHTTP
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataSourceHTTP.
func (*DataSourceHTTP) DeepCopyInto ¶
func (in *DataSourceHTTP) DeepCopyInto(out *DataSourceHTTP)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataSourceType ¶
type DataSourceType string
The following image sources are available for creating an image:
* `HTTP`: From a file published on an HTTP/HTTPS service at a given URL. * `ContainerImage`: From another image stored in a container registry. * `ObjectRef`: From an existing resource. * `Upload`: From data uploaded by the user via a special interface.
+kubebuilder:validation:Enum:={HTTP,ContainerImage,ObjectRef,Upload}
const ( DataSourceTypeHTTP DataSourceType = "HTTP" DataSourceTypeContainerImage DataSourceType = "ContainerImage" DataSourceTypeObjectRef DataSourceType = "ObjectRef" DataSourceTypeUpload DataSourceType = "Upload" )
type DiskPhase ¶
type DiskPhase string
Current status of the VirtualDisk resource: * `Pending`: The resource has been created and is on a waiting queue. * `Provisioning`: The resource is being created: copying, downloading, loading data to the PVC, or extending the PVC. * `WaitForUserUpload`: Waiting for the user to upload the image. The endpoint to upload the image is specified in `.status.uploadCommand`. * `WaitForFirstConsumer`: Waiting for the virtual machine using the disk to be assigned to the node. * `Ready`: The resource has been created and is ready to use. * `Resizing`: The process of resource resizing is in progress. * `Failed`: There was an error when creating the resource. * `PVCLost`: The child PVC of the resource is missing. The resource cannot be used. * `Exporting`: The child PV of the resource is in the process of exporting. * `Terminating`: The resource is being deleted. +kubebuilder:validation:Enum:={Pending,Provisioning,WaitForUserUpload,WaitForFirstConsumer,Ready,Resizing,Failed,PVCLost,Exporting,Terminating}
const ( DiskPending DiskPhase = "Pending" DiskProvisioning DiskPhase = "Provisioning" DiskWaitForUserUpload DiskPhase = "WaitForUserUpload" DiskWaitForFirstConsumer DiskPhase = "WaitForFirstConsumer" DiskReady DiskPhase = "Ready" DiskResizing DiskPhase = "Resizing" DiskFailed DiskPhase = "Failed" DiskLost DiskPhase = "PVCLost" DiskExporting DiskPhase = "Exporting" DiskTerminating DiskPhase = "Terminating" )
type DiskTarget ¶
type DiskTarget struct {
// Created PersistentVolumeClaim name for the Kubernetes storage.
PersistentVolumeClaim string `json:"persistentVolumeClaimName,omitempty"`
}
func (*DiskTarget) DeepCopy ¶
func (in *DiskTarget) DeepCopy() *DiskTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskTarget.
func (*DiskTarget) DeepCopyInto ¶
func (in *DiskTarget) DeepCopyInto(out *DiskTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Disruptions ¶
type Disruptions struct {
RestartApprovalMode RestartApprovalMode `json:"restartApprovalMode,omitempty"`
}
Disruptions describes the policy for applying changes that require rebooting the VM Changes to some VM configuration settings require a reboot of the VM to apply them. This policy allows you to specify the behavior of how the VM will respond to such changes.
func (*Disruptions) DeepCopy ¶
func (in *Disruptions) DeepCopy() *Disruptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Disruptions.
func (*Disruptions) DeepCopyInto ¶
func (in *Disruptions) DeepCopyInto(out *Disruptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImagePhase ¶
type ImagePhase string
const ( ImagePending ImagePhase = "Pending" ImageWaitForUserUpload ImagePhase = "WaitForUserUpload" ImageProvisioning ImagePhase = "Provisioning" ImageReady ImagePhase = "Ready" ImageFailed ImagePhase = "Failed" ImageTerminating ImagePhase = "Terminating" ImageLost ImagePhase = "PVCLost" )
type ImagePullSecret ¶
type ImagePullSecret struct {
// Name of the secret keeping container registry credentials.
Name string `json:"name,omitempty"`
// Namespace where `imagePullSecret` is located.
Namespace string `json:"namespace,omitempty"`
}
func (*ImagePullSecret) DeepCopy ¶
func (in *ImagePullSecret) DeepCopy() *ImagePullSecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePullSecret.
func (*ImagePullSecret) DeepCopyInto ¶
func (in *ImagePullSecret) DeepCopyInto(out *ImagePullSecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImagePullSecretName ¶
type ImagePullSecretName struct {
// Name of the secret keeping container registry credentials, which must be located in the same namespace.
Name string `json:"name,omitempty"`
}
func (*ImagePullSecretName) DeepCopy ¶
func (in *ImagePullSecretName) DeepCopy() *ImagePullSecretName
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePullSecretName.
func (*ImagePullSecretName) DeepCopyInto ¶
func (in *ImagePullSecretName) DeepCopyInto(out *ImagePullSecretName)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageStatusSize ¶
type ImageStatusSize struct {
// Image size in human-readable format.
// +kubebuilder:example:="199M"
Stored string `json:"stored,omitempty"`
// Image size in bytes.
// +kubebuilder:example:=199001234
StoredBytes string `json:"storedBytes,omitempty"`
// Unpacked image size in human-readable format.
// +kubebuilder:example:="1G"
Unpacked string `json:"unpacked,omitempty"`
// Unpacked image size in bytes.
// +kubebuilder:example:=1000000234
UnpackedBytes string `json:"unpackedBytes,omitempty"`
}
Discovered sizes of the image.
func (*ImageStatusSize) DeepCopy ¶
func (in *ImageStatusSize) DeepCopy() *ImageStatusSize
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatusSize.
func (*ImageStatusSize) DeepCopyInto ¶
func (in *ImageStatusSize) DeepCopyInto(out *ImageStatusSize)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImageUploadURLs ¶
type ImageUploadURLs struct {
// Command to upload the image using `Ingress` from outside the cluster.
External string `json:"external,omitempty"`
// Command to upload the image using `Service` within the cluster.
InCluster string `json:"inCluster,omitempty"`
}
func (*ImageUploadURLs) DeepCopy ¶
func (in *ImageUploadURLs) DeepCopy() *ImageUploadURLs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUploadURLs.
func (*ImageUploadURLs) DeepCopyInto ¶
func (in *ImageUploadURLs) DeepCopyInto(out *ImageUploadURLs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeepIPAddress ¶
type KeepIPAddress string
KeepIPAddress defines whether to keep the IP address of a virtual machine or not:
* `Always`: When creating a snapshot, the virtual machine's IP address will be converted from `Auto` to `Static` and saved. * `Never`: When creating a snapshot, the virtual machine's IP address will not be converted.
+kubebuilder:validation:Enum={Always,Never}
const ( KeepIPAddressAlways KeepIPAddress = "Always" KeepIPAddressNever KeepIPAddress = "Never" )
type LiveMigrationPolicy ¶ added in v1.0.0
type LiveMigrationPolicy string
LiveMigrationPolicy defines policy for live migration process: * `Never` - This VM is not eligible for live migration. * `Manual` - This VM is eligible for migrations triggered by user, no automatic migrations. * `AlwaysSafe` - Use Safe options for automatic and VMOP migrations. Do not enable CPU throttling. * `PreferSafe` - Use Safe options for automatic migrations. CPU throttling can be enabled with force=true in VMOP. * `AlwaysForced` - Enable CPU throttling for automatic and VMOP migrations. No way to disable CPU throttling. * `PreferForced` - Enable CPU throttling for automatic migrations. CPU throttling can be disabled with force=false in VMOP.
+kubebuilder:validation:Enum={Manual,Never,AlwaysSafe,PreferSafe,AlwaysForced,PreferForced}
const ( ManualMigrationPolicy LiveMigrationPolicy = "Manual" NeverMigrationPolicy LiveMigrationPolicy = "Never" AlwaysSafeMigrationPolicy LiveMigrationPolicy = "AlwaysSafe" PreferSafeMigrationPolicy LiveMigrationPolicy = "PreferSafe" AlwaysForcedMigrationPolicy LiveMigrationPolicy = "AlwaysForced" PreferForcedMigrationPolicy LiveMigrationPolicy = "PreferForced" )
type MachinePhase ¶
type MachinePhase string
MachinePhase defines current phase of the virtual machine: * `Pending` - The process of starting the VM is in progress. * `Running` - VM is running. * `Degraded` - An error occurred during the startup process or while the VM is running. * `Terminating` - The VM is currently in the process of shutting down. * `Stopped` - The VM is stopped. +kubebuilder:validation:Enum:={Pending,Running,Terminating,Stopped,Stopping,Starting,Migrating,Pause,Degraded}
const ( MachinePending MachinePhase = "Pending" MachineRunning MachinePhase = "Running" MachineTerminating MachinePhase = "Terminating" MachineStopped MachinePhase = "Stopped" MachineStopping MachinePhase = "Stopping" MachineStarting MachinePhase = "Starting" MachineMigrating MachinePhase = "Migrating" MachinePause MachinePhase = "Pause" MachineDegraded MachinePhase = "Degraded" )
type MemoryMinMax ¶
type MemoryMinMax struct {
// Minimum amount of memory.
//
// +kubebuilder:example="1Gi"
Min resource.Quantity `json:"min,omitempty"`
// Maximum amount of memory.
//
// +kubebuilder:example="8Gi"
Max resource.Quantity `json:"max,omitempty"`
}
func (*MemoryMinMax) DeepCopy ¶
func (in *MemoryMinMax) DeepCopy() *MemoryMinMax
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryMinMax.
func (*MemoryMinMax) DeepCopyInto ¶
func (in *MemoryMinMax) DeepCopyInto(out *MemoryMinMax)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemorySpec ¶
MemorySpec specifies the memory settings for the VM.
func (*MemorySpec) DeepCopy ¶
func (in *MemorySpec) DeepCopy() *MemorySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemorySpec.
func (*MemorySpec) DeepCopyInto ¶
func (in *MemorySpec) DeepCopyInto(out *MemorySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemoryStatus ¶
type MemoryStatus struct {
// Current memory size.
Size resource.Quantity `json:"size"`
// Memory runtime overhead.
RuntimeOverhead resource.Quantity `json:"runtimeOverhead,omitempty"`
}
MemoryStatus defines statistics about the Memory resource usage.
func (*MemoryStatus) DeepCopy ¶
func (in *MemoryStatus) DeepCopy() *MemoryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryStatus.
func (*MemoryStatus) DeepCopyInto ¶
func (in *MemoryStatus) DeepCopyInto(out *MemoryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MigrationResult ¶
type MigrationResult string
MigrationResult defines a migration result +kubebuilder:validation:Enum:={"Succeeded","Failed",""}
const ( MigrationResultSucceeded MigrationResult = "Succeeded" MigrationResultFailed MigrationResult = "Failed" )
type NameReplacement ¶
type NameReplacement struct {
// Selector to choose resources for name replacement.
From NameReplacementFrom `json:"from"`
// New resource name.
To string `json:"to"`
}
NameReplacement represents a rule for redefining the virtual machine resource names.
func (*NameReplacement) DeepCopy ¶
func (in *NameReplacement) DeepCopy() *NameReplacement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NameReplacement.
func (*NameReplacement) DeepCopyInto ¶
func (in *NameReplacement) DeepCopyInto(out *NameReplacement)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NameReplacementFrom ¶
type NameReplacementFrom struct {
// Kind of a resource to rename.
Kind string `json:"kind,omitempty"`
// Current name of a resource to rename.
Name string `json:"name"`
}
NameReplacementFrom represents a selector to choose resources for name replacement.
func (*NameReplacementFrom) DeepCopy ¶
func (in *NameReplacementFrom) DeepCopy() *NameReplacementFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NameReplacementFrom.
func (*NameReplacementFrom) DeepCopyInto ¶
func (in *NameReplacementFrom) DeepCopyInto(out *NameReplacementFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworksSpec ¶ added in v1.0.0
type NetworksSpec struct {
Type string `json:"type"`
Name string `json:"name,omitempty"`
VirtualMachineMACAddressName string `json:"virtualMachineMACAddressName,omitempty"`
}
func (*NetworksSpec) DeepCopy ¶ added in v1.0.0
func (in *NetworksSpec) DeepCopy() *NetworksSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworksSpec.
func (*NetworksSpec) DeepCopyInto ¶ added in v1.0.0
func (in *NetworksSpec) DeepCopyInto(out *NetworksSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworksStatus ¶ added in v1.0.0
type NetworksStatus struct {
Type string `json:"type"`
Name string `json:"name,omitempty"`
MAC string `json:"macAddress,omitempty"`
VirtualMachineMACAddressName string `json:"virtualMachineMACAddressName,omitempty"`
}
func (*NetworksStatus) DeepCopy ¶ added in v1.0.0
func (in *NetworksStatus) DeepCopy() *NetworksStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworksStatus.
func (*NetworksStatus) DeepCopyInto ¶ added in v1.0.0
func (in *NetworksStatus) DeepCopyInto(out *NetworksStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSelector ¶
type NodeSelector struct {
// A map of {key,value} pairs.
// A single {key,value} pair in the matchLabels map is equivalent to an element of matchExpressions whose key field is "key", operator is "In", and the value array contains only "value".
// The requirements are ANDed.
MatchLabels map[string]string `json:"matchLabels,omitempty"`
// A list of node selector requirements by node's labels.
MatchExpressions []corev1.NodeSelectorRequirement `json:"matchExpressions,omitempty"`
}
NodeSelector defines the nodes targeted for VM scheduling.
func (*NodeSelector) DeepCopy ¶
func (in *NodeSelector) DeepCopy() *NodeSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelector.
func (*NodeSelector) DeepCopyInto ¶
func (in *NodeSelector) DeepCopyInto(out *NodeSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OsType ¶
type OsType string
The OsType parameter allows you to select the type of used OS, for which a VM with an optimal set of required virtual devices and parameters will be created.
* Windows - for Microsoft Windows family operating systems. * Generic - for other types of OS. +kubebuilder:validation:Enum={Windows,Generic}
type Provisioning ¶
type Provisioning struct {
Type ProvisioningType `json:"type"`
// Inline cloud-init userdata script.
UserData string `json:"userData,omitempty"`
UserDataRef *UserDataRef `json:"userDataRef,omitempty"`
SysprepRef *SysprepRef `json:"sysprepRef,omitempty"`
}
Provisioning is a block allows you to configure the provisioning script for the VM.
+kubebuilder:validation:XValidation:rule="self.type == 'UserData' ? has(self.userData) && !has(self.userDataRef) && !has(self.sysprepRef) : true",message="UserData cannot have userDataRef or sysprepRef." +kubebuilder:validation:XValidation:rule="self.type == 'UserDataRef' ? has(self.userDataRef) && !has(self.userData) && !has(self.sysprepRef) : true",message="UserDataRef cannot have userData or sysprepRef." +kubebuilder:validation:XValidation:rule="self.type == 'SysprepRef' ? has(self.sysprepRef) && !has(self.userData) && !has(self.userDataRef) : true",message="SysprepRef cannot have userData or userDataRef."
func (*Provisioning) DeepCopy ¶
func (in *Provisioning) DeepCopy() *Provisioning
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provisioning.
func (*Provisioning) DeepCopyInto ¶
func (in *Provisioning) DeepCopyInto(out *Provisioning)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProvisioningType ¶
type ProvisioningType string
ProvisioningType parameter defines the type of provisioning script:
Parameters supported for using the provisioning script: * UserData - use the cloud-init in the .spec.provisioning.UserData section. * UserDataRef - use a cloud-init script that resides in a different resource. * SysprepRef - Use a Windows Automation script that resides in a different resource. More information: https://cloudinit.readthedocs.io/en/latest/reference/examples.html
const ( ProvisioningTypeUserData ProvisioningType = "UserData" ProvisioningTypeUserDataRef ProvisioningType = "UserDataRef" ProvisioningTypeSysprepRef ProvisioningType = "SysprepRef" )
type ResourceRef ¶ added in v1.0.0
type ResourceRef struct {
// Kind of the resource.
Kind string `json:"kind,omitempty"`
// API version of the resource.
ApiVersion string `json:"apiVersion,omitempty"`
// Name of the resource.
Name string `json:"name,omitempty"`
}
func (*ResourceRef) DeepCopy ¶ added in v1.0.0
func (in *ResourceRef) DeepCopy() *ResourceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRef.
func (*ResourceRef) DeepCopyInto ¶ added in v1.0.0
func (in *ResourceRef) DeepCopyInto(out *ResourceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourcesStatus ¶
type ResourcesStatus struct {
CPU CPUStatus `json:"cpu,omitempty"`
Memory MemoryStatus `json:"memory,omitempty"`
}
ResourcesStatus defines resource usage statistics.
func (*ResourcesStatus) DeepCopy ¶
func (in *ResourcesStatus) DeepCopy() *ResourcesStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcesStatus.
func (*ResourcesStatus) DeepCopyInto ¶
func (in *ResourcesStatus) DeepCopyInto(out *ResourcesStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestartApprovalMode ¶
type RestartApprovalMode string
RestartApprovalMode defines a restart approving mode: Manual or Automatic. +kubebuilder:validation:Enum={Manual,Automatic}
const ( Automatic RestartApprovalMode = "Automatic" Manual RestartApprovalMode = "Manual" )
type RestoreMode ¶ added in v1.0.0
type RestoreMode string
const ( RestoreModeSafe RestoreMode = "Safe" RestoreModeForced RestoreMode = "Forced" )
type RunPolicy ¶
type RunPolicy string
RunPolicy parameter defines the VM startup policy * `AlwaysOn` - after creation the VM is always in a running state, even in case of its shutdown by OS means. * `AlwaysOff` - after creation the VM is always in the off state. * `Manual` - after creation the VM is switched off, the VM state (switching on/off) is controlled via sub-resources or OS means. * `AlwaysOnUnlessStoppedManually` - after creation the VM is always in a running state. The VM can be shutdown by means of the OS or use the d8 utility: `d8 v stop <vm_name>`.
+kubebuilder:validation:Enum={AlwaysOn,AlwaysOff,Manual,AlwaysOnUnlessStoppedManually}
type SizingPolicy ¶
type SizingPolicy struct {
// Memory sizing policy.
Memory *SizingPolicyMemory `json:"memory,omitempty"`
// Allowed values of the `coreFraction` parameter.
CoreFractions []CoreFractionValue `json:"coreFractions,omitempty"`
// Allowed values of the `dedicatedCores` parameter.
DedicatedCores []bool `json:"dedicatedCores,omitempty"`
// The policy applies for a specified range of the number of CPU cores.
Cores *SizingPolicyCores `json:"cores,omitempty"`
}
SizingPolicy defines a policy for allocating computational resources to VMs. It is represented as a list. The cores.min - cores.max ranges for different elements of the list must not overlap.
func (*SizingPolicy) DeepCopy ¶
func (in *SizingPolicy) DeepCopy() *SizingPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SizingPolicy.
func (*SizingPolicy) DeepCopyInto ¶
func (in *SizingPolicy) DeepCopyInto(out *SizingPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SizingPolicyCores ¶
type SizingPolicyCores struct {
// Minimum number of CPU cores.
//
// +kubebuilder:validation:Required
// +kubebuilder:validation:Minimum=1
// +kubebuilder:example=1
Min int `json:"min"`
// Maximum number of CPU cores.
//
// +kubebuilder:validation:Required
// +kubebuilder:validation:Maximum=1024
// +kubebuilder:example=10
Max int `json:"max"`
// Discretization step for the CPU core number. For example, the combination of `min=2`, `max=10`, and `step=4` allows to set the number of virtual machine CPU cores to 2, 6, or 10.
//
// +kubebuilder:validation:Minimum=1
// +kubebuilder:example=1
Step int `json:"step,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.max > self.min",message="The maximum must be greater than the minimum" +kubebuilder:validation:XValidation:rule="has(self.step) ? self.max > self.step : true",message="The maximum must be greater than the step"
func (*SizingPolicyCores) DeepCopy ¶
func (in *SizingPolicyCores) DeepCopy() *SizingPolicyCores
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SizingPolicyCores.
func (*SizingPolicyCores) DeepCopyInto ¶
func (in *SizingPolicyCores) DeepCopyInto(out *SizingPolicyCores)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SizingPolicyMemory ¶
type SizingPolicyMemory struct {
MemoryMinMax `json:",inline"`
// Memory size discretization step. For example, the combination of `min=2Gi, `max=4Gi` and `step=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.
//
// +kubebuilder:example="512Mi"
Step resource.Quantity `json:"step,omitempty"`
// Amount of memory per CPU core.
PerCore SizingPolicyMemoryPerCore `json:"perCore,omitempty"`
}
func (*SizingPolicyMemory) DeepCopy ¶
func (in *SizingPolicyMemory) DeepCopy() *SizingPolicyMemory
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SizingPolicyMemory.
func (*SizingPolicyMemory) DeepCopyInto ¶
func (in *SizingPolicyMemory) DeepCopyInto(out *SizingPolicyMemory)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SizingPolicyMemoryPerCore ¶
type SizingPolicyMemoryPerCore struct {
MemoryMinMax `json:",inline"`
}
func (*SizingPolicyMemoryPerCore) DeepCopy ¶
func (in *SizingPolicyMemoryPerCore) DeepCopy() *SizingPolicyMemoryPerCore
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SizingPolicyMemoryPerCore.
func (*SizingPolicyMemoryPerCore) DeepCopyInto ¶
func (in *SizingPolicyMemoryPerCore) DeepCopyInto(out *SizingPolicyMemoryPerCore)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatusSpeed ¶
type StatusSpeed struct {
// Average download speed.
// +kubebuilder:example:="1 Mbps"
Avg string `json:"avg,omitempty"`
// Average download speed in bytes per second.
// +kubebuilder:example:=1012345
AvgBytes string `json:"avgBytes,omitempty"`
// Current download speed.
// +kubebuilder:example:="5 Mbps"
Current string `json:"current,omitempty"`
// Current download speed in bytes per second.
// +kubebuilder:example:=5123456
CurrentBytes string `json:"currentBytes,omitempty"`
}
Image download speed from an external source. Appears only during the `Provisioning` phase.
func (*StatusSpeed) DeepCopy ¶
func (in *StatusSpeed) DeepCopy() *StatusSpeed
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusSpeed.
func (*StatusSpeed) DeepCopyInto ¶
func (in *StatusSpeed) DeepCopyInto(out *StatusSpeed)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageType ¶
type StorageType string
Storage type to keep the image for the current virtualization setup.
* `ContainerRegistry`: Use the DVCR container registry. In this case, images are downloaded to a container and then to DVCR (shipped with the virtualization module). * `PersistentVolumeClaim`: Use a PVC. * `Kubernetes`: A deprecated storage type. Not recommended for use and may be removed in future versions. Use `PersistentVolumeClaim` instead. +kubebuilder:validation:Enum:={ContainerRegistry,Kubernetes,PersistentVolumeClaim}
const ( StorageContainerRegistry StorageType = "ContainerRegistry" StoragePersistentVolumeClaim StorageType = "PersistentVolumeClaim" // TODO: remove storage type Kubernetes in 2025 StorageKubernetes StorageType = "Kubernetes" )
type SysprepRef ¶
type SysprepRef struct {
// The kind of existing Windows sysprep automation resource.
// The following options are supported:
// - Secret
// +kubebuilder:validation:Enum:={Secret}
// +kubebuilder:default:="Secret"
Kind SysprepRefKind `json:"kind,omitempty"`
Name string `json:"name"`
}
SysprepRef is reference to an existing Windows sysprep automation. Resource structure for the SysprepRef type: * `.data.autounattend.xml`. * `.data.unattend.xml`.
func (*SysprepRef) DeepCopy ¶
func (in *SysprepRef) DeepCopy() *SysprepRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysprepRef.
func (*SysprepRef) DeepCopyInto ¶
func (in *SysprepRef) DeepCopyInto(out *SysprepRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SysprepRefKind ¶
type SysprepRefKind string
const (
SysprepRefKindSecret SysprepRefKind = "Secret"
)
type Topology ¶ added in v1.0.0
type Topology struct {
// Current number of cores inside the VM.
CoresPerSocket int `json:"coresPerSocket"`
// Current number of cores inside the VM.
Sockets int `json:"sockets"`
}
Topology defines count of used CPU cores and sockets.
func (*Topology) DeepCopy ¶ added in v1.0.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Topology.
func (*Topology) DeepCopyInto ¶ added in v1.0.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserDataRef ¶
type UserDataRef struct {
// The kind of existing cloud-init automation resource.
// The following options are supported:
// - Secret
//
// +kubebuilder:validation:Enum:={Secret}
// +kubebuilder:default:="Secret"
Kind UserDataRefKind `json:"kind,omitempty"`
Name string `json:"name"`
}
UserDataRef is reference to an existing resource with a cloud-init script. Resource structure for userDataRef type: * `.data.userData`.
func (*UserDataRef) DeepCopy ¶
func (in *UserDataRef) DeepCopy() *UserDataRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserDataRef.
func (*UserDataRef) DeepCopyInto ¶
func (in *UserDataRef) DeepCopyInto(out *UserDataRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserDataRefKind ¶
type UserDataRefKind string
const (
UserDataRefKindSecret UserDataRefKind = "Secret"
)
type VMAffinity ¶
type VMAffinity struct {
NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"`
VirtualMachineAndPodAffinity *VirtualMachineAndPodAffinity `json:"virtualMachineAndPodAffinity,omitempty"`
VirtualMachineAndPodAntiAffinity *VirtualMachineAndPodAntiAffinity `json:"virtualMachineAndPodAntiAffinity,omitempty"`
}
VMAffinity [The same](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) as in the pods `spec.affinity` parameter in Kubernetes;
The affinity setting is completely similar to the above documentation, the only difference is in the names of some parameters. In fact, the following analogs are used: * podAffinity -> virtualMachineAndPodAffinity * podAffinityTerm -> virtualMachineAndPodAffinityTerm
func (*VMAffinity) DeepCopy ¶
func (in *VMAffinity) DeepCopy() *VMAffinity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAffinity.
func (*VMAffinity) DeepCopyInto ¶
func (in *VMAffinity) DeepCopyInto(out *VMAffinity)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMBDAObjectRef ¶
type VMBDAObjectRef struct {
// Block device type. Available options:
// * `VirtualDisk`: Use VirtualDisk as the disk. This type is always mounted in RW mode.
// * `VirtualImage`: Use VirtualImage as the disk. This type is always mounted in RO mode.
// * `ClusterVirtualImage`: Use ClusterVirtualImage as the disk. This type is always mounted in RO mode.
Kind VMBDAObjectRefKind `json:"kind,omitempty"`
// Name of the block device to attach.
Name string `json:"name,omitempty"`
}
Block device that will be connected to the VM as a hot-plug disk.
func (*VMBDAObjectRef) DeepCopy ¶
func (in *VMBDAObjectRef) DeepCopy() *VMBDAObjectRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMBDAObjectRef.
func (*VMBDAObjectRef) DeepCopyInto ¶
func (in *VMBDAObjectRef) DeepCopyInto(out *VMBDAObjectRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMBDAObjectRefKind ¶
type VMBDAObjectRefKind string
VMBDAObjectRefKind defines the block device type.
+kubebuilder:validation:Enum={VirtualDisk,VirtualImage,ClusterVirtualImage}
const ( VMBDAObjectRefKindVirtualDisk VMBDAObjectRefKind = "VirtualDisk" VMBDAObjectRefKindVirtualImage VMBDAObjectRefKind = "VirtualImage" VMBDAObjectRefKindClusterVirtualImage VMBDAObjectRefKind = "ClusterVirtualImage" )
type VMOPPhase ¶
type VMOPPhase string
Current phase of the resource: * `Pending`: The operation is queued for execution. * `InProgress`: The operation is in progress. * `Completed`: The operation has been completed successfully. * `Failed`: The operation failed. For details, refer to the `conditions` field and events. * `Terminating`: The operation is being deleted. +kubebuilder:validation:Enum={Pending,InProgress,Completed,Failed,Terminating}
type VMOPResourceKind ¶ added in v1.0.0
type VMOPResourceKind string
VMOPResourceKind defines the kind of the resource affected by the operation. * `VirtualDisk`: VirtualDisk resource. * `VirtualMachine`: VirtualMachine resource. * `VirtualImage`: VirtualImage resource. * `ClusterVirtualImage`: ClusterVirtualImage resource. * `VirtualMachineIPAddress`: VirtualMachineIPAddress resource. * `VirtualMachineIPAddressLease`: VirtualMachineIPAddressLease resource. * `VirtualMachineClass`: VirtualMachineClass resource. * `VirtualMachineOperation`: VirtualMachineOperation resource. +kubebuilder:validation:Enum={VMOPResourceSecret,VMOPResourceNetwork,VMOPResourceVirtualDisk,VMOPResourceVirtualImage,VMOPResourceVirtualMachine,VMOPResourceClusterNetwork,VMOPResourceClusterVirtualImage,VMOPResourceVirtualMachineIPAddress,VMOPResourceVirtualMachineMacAddress,VMOPResourceVirtualMachineBlockDeviceAttachment}
const ( VMOPResourceSecret VMOPResourceKind = "Secret" VMOPResourceNetwork VMOPResourceKind = "Network" VMOPResourceVirtualDisk VMOPResourceKind = "VirtualDisk" VMOPResourceVirtualImage VMOPResourceKind = "VirtualImage" VMOPResourceVirtualMachine VMOPResourceKind = "VirtualMachine" VMOPResourceClusterNetwork VMOPResourceKind = "ClusterNetwork" VMOPResourceClusterVirtualImage VMOPResourceKind = "ClusterVirtualImage" VMOPResourceVirtualMachineIPAddress VMOPResourceKind = "VirtualMachineIPAddress" VMOPResourceVirtualMachineMacAddress VMOPResourceKind = "VirtualMachineMacAddress" VMOPResourceVirtualMachineBlockDeviceAttachment VMOPResourceKind = "VirtualMachineBlockDeviceAttachment" )
type VMOPResourceStatusPhase ¶ added in v1.0.0
type VMOPResourceStatusPhase string
Current phase of the resource: * `InProgress`: The operation for resource is in progress. * `Completed`: The operation for resource has been completed successfully. * `Failed`: The operation for resource failed. For details, refer to the `Message` field. +kubebuilder:validation:Enum={InProgress,Completed,Failed}
const ( VMOPResourceStatusInProgress VMOPResourceStatusPhase = "InProgress" VMOPResourceStatusCompleted VMOPResourceStatusPhase = "Completed" VMOPResourceStatusFailed VMOPResourceStatusPhase = "Failed" )
type VMOPRestoreMode ¶ added in v1.0.0
type VMOPRestoreMode string
VMOPRestoreMode defines the kind of the restore operation. * `DryRun`: DryRun run without any changes. Compatibility shows in status. * `Strict`: Strict restore as is in the snapshot. * `BestEffort`: BestEffort restore without deleted external missing dependencies. +kubebuilder:validation:Enum={DryRun,Strict,BestEffort}
const ( VMOPRestoreModeDryRun VMOPRestoreMode = "DryRun" VMOPRestoreModeStrict VMOPRestoreMode = "Strict" VMOPRestoreModeBestEffort VMOPRestoreMode = "BestEffort" )
type VMOPType ¶
type VMOPType string
Type of the operation to execute on a virtual machine: * `Start`: Start the virtual machine. * `Stop`: Stop the virtual machine. * `Restart`: Restart the virtual machine. * `Migrate` (deprecated): Migrate the virtual machine to another node where it can be started. * `Evict`: Migrate the virtual machine to another node where it can be started. * `Restore`: Restore the virtual machine from a snapshot. +kubebuilder:validation:Enum={Restart,Start,Stop,Migrate,Evict,Restore}
type Versions ¶ added in v1.0.0
type Versions struct {
// Qemu is the version of the qemu hypervisor.
Qemu string `json:"qemu,omitempty"`
// Libvirt is the version of the libvirt.
Libvirt string `json:"libvirt,omitempty"`
}
Versions defines statistics about the hypervisor versions.
func (*Versions) DeepCopy ¶ added in v1.0.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Versions.
func (*Versions) DeepCopyInto ¶ added in v1.0.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDisk ¶
type VirtualDisk struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualDiskSpec `json:"spec"`
Status VirtualDiskStatus `json:"status,omitempty"`
}
The VirtualDisk resource describes the desired virtual machine disk configuration. A VirtualDisk can be mounted statically in the virtual machine by specifying it in the `.spec.blockDeviceRefs` disk list, or mounted on-the-fly using the VirtualMachineBlockDeviceAttachments resource.
Once a VirtualDisk is created, only the disk size field `.spec.persistentVolumeClaim.size` can be changed. All other fields are immutable. +kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:resource:categories={virtualization},scope=Namespaced,shortName={vd},singular=virtualdisk +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Capacity",type=string,JSONPath=`.status.capacity` +kubebuilder:printcolumn:name="InUse",type=string,JSONPath=`.status.conditions[?(@.type=='InUse')].status`,priority=1 +kubebuilder:printcolumn:name="Progress",type=string,JSONPath=`.status.progress`,priority=1 +kubebuilder:printcolumn:name="StorageClass",type=string,JSONPath=`.status.storageClassName`,priority=1 +kubebuilder:printcolumn:name="TargetPVC",type=string,JSONPath=`.status.target.persistentVolumeClaimName`,priority=1 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualDisk) DeepCopy ¶
func (in *VirtualDisk) DeepCopy() *VirtualDisk
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDisk.
func (*VirtualDisk) DeepCopyInto ¶
func (in *VirtualDisk) DeepCopyInto(out *VirtualDisk)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualDisk) DeepCopyObject ¶
func (in *VirtualDisk) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualDiskContainerImage ¶
type VirtualDiskContainerImage struct {
// Path to the image in the container registry.
// +kubebuilder:example:="registry.example.com/images/slackware:15"
// +kubebuilder:validation:Pattern:=`^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$`
Image string `json:"image"`
ImagePullSecret ImagePullSecretName `json:"imagePullSecret,omitempty"`
// CA chain in Base64 format to verify the container registry.
// +kubebuilder:example:="YWFhCg=="
CABundle []byte `json:"caBundle,omitempty"`
}
Use an image stored in an external container registry. Only registries with enabled TLS are supported. To provide a custom Certificate Authority (CA) chain, use the `caBundle` field.
func (*VirtualDiskContainerImage) DeepCopy ¶
func (in *VirtualDiskContainerImage) DeepCopy() *VirtualDiskContainerImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskContainerImage.
func (*VirtualDiskContainerImage) DeepCopyInto ¶
func (in *VirtualDiskContainerImage) DeepCopyInto(out *VirtualDiskContainerImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskDataSource ¶
type VirtualDiskDataSource struct {
Type DataSourceType `json:"type,omitempty"`
HTTP *DataSourceHTTP `json:"http,omitempty"`
ContainerImage *VirtualDiskContainerImage `json:"containerImage,omitempty"`
ObjectRef *VirtualDiskObjectRef `json:"objectRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.type == 'HTTP' ? has(self.http) && !has(self.containerImage) && !has(self.objectRef) : true",message="HTTP requires http and cannot have ContainerImage or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ContainerImage' ? has(self.containerImage) && !has(self.http) && !has(self.objectRef) : true",message="ContainerImage requires containerImage and cannot have HTTP or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ObjectRef' ? has(self.objectRef) && !has(self.http) && !has(self.containerImage) : true",message="ObjectRef requires objectRef and cannot have HTTP or ContainerImage."
func (*VirtualDiskDataSource) DeepCopy ¶
func (in *VirtualDiskDataSource) DeepCopy() *VirtualDiskDataSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskDataSource.
func (*VirtualDiskDataSource) DeepCopyInto ¶
func (in *VirtualDiskDataSource) DeepCopyInto(out *VirtualDiskDataSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskList ¶
type VirtualDiskList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []VirtualDisk `json:"items"`
}
VirtualDiskList contains a list of VirtualDisks. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualDiskList) DeepCopy ¶
func (in *VirtualDiskList) DeepCopy() *VirtualDiskList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskList.
func (*VirtualDiskList) DeepCopyInto ¶
func (in *VirtualDiskList) DeepCopyInto(out *VirtualDiskList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualDiskList) DeepCopyObject ¶
func (in *VirtualDiskList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualDiskObjectRef ¶
type VirtualDiskObjectRef struct {
// Kind of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.
Kind VirtualDiskObjectRefKind `json:"kind"`
// Name of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.
Name string `json:"name"`
}
Use an existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource to create a disk.
func (*VirtualDiskObjectRef) DeepCopy ¶
func (in *VirtualDiskObjectRef) DeepCopy() *VirtualDiskObjectRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskObjectRef.
func (*VirtualDiskObjectRef) DeepCopyInto ¶
func (in *VirtualDiskObjectRef) DeepCopyInto(out *VirtualDiskObjectRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskObjectRefKind ¶
type VirtualDiskObjectRefKind string
+kubebuilder:validation:Enum:={ClusterVirtualImage,VirtualImage,VirtualDiskSnapshot}
const ( VirtualDiskObjectRefKindVirtualImage VirtualDiskObjectRefKind = "VirtualImage" VirtualDiskObjectRefKindClusterVirtualImage VirtualDiskObjectRefKind = "ClusterVirtualImage" VirtualDiskObjectRefKindVirtualDiskSnapshot VirtualDiskObjectRefKind = "VirtualDiskSnapshot" )
type VirtualDiskPersistentVolumeClaim ¶
type VirtualDiskPersistentVolumeClaim struct {
// StorageClass name required by the claim. For details on using StorageClass for PVC, refer to https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
//
// When creating disks, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.
//
// The disk features and virtual machine behavior depend on the selected StorageClass.
//
// The `VolumeBindingMode` parameter in the StorageClass affects the disk creation process. The following values are allowed:
// - `Immediate`: The disk will be created and becomes available for use immediately after creation.
// - `WaitForFirstConsumer`: The disk will be created when first used on the node where the virtual machine will be started.
//
// StorageClass supports multiple storage settings:
// - Creating a block device (`Block`) or file system (`FileSystem`).
// - Multiple access (`ReadWriteMany`) or single access (`ReadWriteOnce`). The `ReadWriteMany` disks support multiple access, which enables a "live" migration of virtual machines. In contrast, the `ReadWriteOnce` disks, which can be accessed from only one node, don't have this feature.
//
// For known storage types, Deckhouse automatically determines the most efficient settings when creating disks (by priority, in descending order):
// 1. `Block` + `ReadWriteMany`
// 2. `FileSystem` + `ReadWriteMany`
// 3. `Block` + `ReadWriteOnce`
// 4. `FileSystem` + `ReadWriteOnce`
StorageClass *string `json:"storageClassName,omitempty"`
// Desired size for PVC to store the disk. If the disk is created from an image, the size must be at least as large as the original unpacked image.
//
// This parameter can be omitted if the `.spec.dataSource` section is filled out. In this case, the controller will determine the disk size automatically, based on the size of the extracted image from the source specified in `.spec.dataSource`.
Size *resource.Quantity `json:"size,omitempty"`
}
Settings for creating PVCs to store the disk.
func (*VirtualDiskPersistentVolumeClaim) DeepCopy ¶
func (in *VirtualDiskPersistentVolumeClaim) DeepCopy() *VirtualDiskPersistentVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskPersistentVolumeClaim.
func (*VirtualDiskPersistentVolumeClaim) DeepCopyInto ¶
func (in *VirtualDiskPersistentVolumeClaim) DeepCopyInto(out *VirtualDiskPersistentVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskSnapshot ¶
type VirtualDiskSnapshot struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualDiskSnapshotSpec `json:"spec"`
Status VirtualDiskSnapshotStatus `json:"status,omitempty"`
}
VirtualDiskSnapshot +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualDiskSnapshot) DeepCopy ¶
func (in *VirtualDiskSnapshot) DeepCopy() *VirtualDiskSnapshot
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskSnapshot.
func (*VirtualDiskSnapshot) DeepCopyInto ¶
func (in *VirtualDiskSnapshot) DeepCopyInto(out *VirtualDiskSnapshot)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualDiskSnapshot) DeepCopyObject ¶
func (in *VirtualDiskSnapshot) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualDiskSnapshotList ¶
type VirtualDiskSnapshotList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []VirtualDiskSnapshot `json:"items"`
}
VirtualDiskSnapshotList contains a list of VirtualDiskSnapshot +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualDiskSnapshotList) DeepCopy ¶
func (in *VirtualDiskSnapshotList) DeepCopy() *VirtualDiskSnapshotList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskSnapshotList.
func (*VirtualDiskSnapshotList) DeepCopyInto ¶
func (in *VirtualDiskSnapshotList) DeepCopyInto(out *VirtualDiskSnapshotList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualDiskSnapshotList) DeepCopyObject ¶
func (in *VirtualDiskSnapshotList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualDiskSnapshotPhase ¶
type VirtualDiskSnapshotPhase string
const ( VirtualDiskSnapshotPhasePending VirtualDiskSnapshotPhase = "Pending" VirtualDiskSnapshotPhaseInProgress VirtualDiskSnapshotPhase = "InProgress" VirtualDiskSnapshotPhaseReady VirtualDiskSnapshotPhase = "Ready" VirtualDiskSnapshotPhaseFailed VirtualDiskSnapshotPhase = "Failed" VirtualDiskSnapshotPhaseTerminating VirtualDiskSnapshotPhase = "Terminating" )
type VirtualDiskSnapshotSpec ¶
type VirtualDiskSnapshotSpec struct {
VirtualDiskName string `json:"virtualDiskName"`
RequiredConsistency bool `json:"requiredConsistency"`
}
func (*VirtualDiskSnapshotSpec) DeepCopy ¶
func (in *VirtualDiskSnapshotSpec) DeepCopy() *VirtualDiskSnapshotSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskSnapshotSpec.
func (*VirtualDiskSnapshotSpec) DeepCopyInto ¶
func (in *VirtualDiskSnapshotSpec) DeepCopyInto(out *VirtualDiskSnapshotSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskSnapshotStatus ¶
type VirtualDiskSnapshotStatus struct {
Phase VirtualDiskSnapshotPhase `json:"phase"`
VolumeSnapshotName string `json:"volumeSnapshotName,omitempty"`
Consistent *bool `json:"consistent,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
func (*VirtualDiskSnapshotStatus) DeepCopy ¶
func (in *VirtualDiskSnapshotStatus) DeepCopy() *VirtualDiskSnapshotStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskSnapshotStatus.
func (*VirtualDiskSnapshotStatus) DeepCopyInto ¶
func (in *VirtualDiskSnapshotStatus) DeepCopyInto(out *VirtualDiskSnapshotStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskSpec ¶
type VirtualDiskSpec struct {
DataSource *VirtualDiskDataSource `json:"dataSource,omitempty"`
PersistentVolumeClaim VirtualDiskPersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"`
}
func (*VirtualDiskSpec) DeepCopy ¶
func (in *VirtualDiskSpec) DeepCopy() *VirtualDiskSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskSpec.
func (*VirtualDiskSpec) DeepCopyInto ¶
func (in *VirtualDiskSpec) DeepCopyInto(out *VirtualDiskSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskStats ¶
type VirtualDiskStats struct {
// Waiting time for the virtual disk creation.
CreationDuration VirtualDiskStatsCreationDuration `json:"creationDuration,omitempty"`
}
VirtualDisk statistics.
func (*VirtualDiskStats) DeepCopy ¶
func (in *VirtualDiskStats) DeepCopy() *VirtualDiskStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskStats.
func (*VirtualDiskStats) DeepCopyInto ¶
func (in *VirtualDiskStats) DeepCopyInto(out *VirtualDiskStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskStatsCreationDuration ¶
type VirtualDiskStatsCreationDuration struct {
// Waiting time for dependent resources.
// +nullable
WaitingForDependencies *metav1.Duration `json:"waitingForDependencies,omitempty"`
// Duration of the loading into DVCR.
// +nullable
DVCRProvisioning *metav1.Duration `json:"dvcrProvisioning,omitempty"`
// Duration of the resource creation from the moment dependencies are ready until the resource transitions to the Ready state.
// +nullable
TotalProvisioning *metav1.Duration `json:"totalProvisioning,omitempty"`
}
func (*VirtualDiskStatsCreationDuration) DeepCopy ¶
func (in *VirtualDiskStatsCreationDuration) DeepCopy() *VirtualDiskStatsCreationDuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskStatsCreationDuration.
func (*VirtualDiskStatsCreationDuration) DeepCopyInto ¶
func (in *VirtualDiskStatsCreationDuration) DeepCopyInto(out *VirtualDiskStatsCreationDuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualDiskStatus ¶
type VirtualDiskStatus struct {
DownloadSpeed *StatusSpeed `json:"downloadSpeed,omitempty"`
// Requested PVC capacity in human-readable format.
// +kubebuilder:example:="50G"
Capacity string `json:"capacity,omitempty"`
Target DiskTarget `json:"target,omitempty"`
// Progress of copying an image from a source to PVC. Appears only during the `Provisioning' phase.
Progress string `json:"progress,omitempty"`
// Deprecated. Use `ImageUploadURLs` instead.
UploadCommand string `json:"uploadCommand,omitempty"`
ImageUploadURLs *ImageUploadURLs `json:"imageUploadURLs,omitempty"`
Phase DiskPhase `json:"phase,omitempty"`
// List of VirtualMachines that use the disk.
// +kubebuilder:example:={{name: VM100}}
AttachedToVirtualMachines []AttachedVirtualMachine `json:"attachedToVirtualMachines,omitempty"`
Stats VirtualDiskStats `json:"stats,omitempty"`
SourceUID *types.UID `json:"sourceUID,omitempty"`
// The latest available observations of an object's current state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Name of the StorageClass used by the PersistentVolumeClaim if `Kubernetes` storage type is used.
StorageClassName string `json:"storageClassName,omitempty"`
}
func (*VirtualDiskStatus) DeepCopy ¶
func (in *VirtualDiskStatus) DeepCopy() *VirtualDiskStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualDiskStatus.
func (*VirtualDiskStatus) DeepCopyInto ¶
func (in *VirtualDiskStatus) DeepCopyInto(out *VirtualDiskStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImage ¶
type VirtualImage struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualImageSpec `json:"spec"`
Status VirtualImageStatus `json:"status,omitempty"`
}
This resource describes a virtual disk image to use as a data source for new VirtualDisk resources or an installation image (iso) that can be mounted into the VirtualMachine resource.
> This resource cannot be modified once it has been created.
With this resource in the cluster, a container image is created and stored in a dedicated Deckhouse Virtualization Container Registry (DVCR) or PVC, with the data filled in from the source. +genclient +kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:resource:categories={virtualization},scope=Namespaced,shortName={vi},singular=virtualimage +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="CDROM",type=boolean,JSONPath=`.status.cdrom` +kubebuilder:printcolumn:name="Progress",type=string,JSONPath=`.status.progress` +kubebuilder:printcolumn:name="StoredSize",type=string,JSONPath=`.status.size.stored`,priority=1 +kubebuilder:printcolumn:name="UnpackedSize",type=string,JSONPath=`.status.size.unpacked`,priority=1 +kubebuilder:printcolumn:name="Registry URL",type=string,JSONPath=`.status.target.registryURL`,priority=1 +kubebuilder:printcolumn:name="TargetPVC",type=string,JSONPath=`.status.target.persistentVolumeClaimName`,priority=1 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualImage) DeepCopy ¶
func (in *VirtualImage) DeepCopy() *VirtualImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImage.
func (*VirtualImage) DeepCopyInto ¶
func (in *VirtualImage) DeepCopyInto(out *VirtualImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualImage) DeepCopyObject ¶
func (in *VirtualImage) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualImageContainerImage ¶
type VirtualImageContainerImage struct {
// Path to the image in the container registry.
// +kubebuilder:example:="registry.example.com/images/slackware:15"
// +kubebuilder:validation:Pattern:=`^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$`
Image string `json:"image"`
ImagePullSecret ImagePullSecretName `json:"imagePullSecret,omitempty"`
// CA chain in Base64 format to verify the container registry.
// +kubebuilder:example:="YWFhCg=="
CABundle []byte `json:"caBundle,omitempty"`
}
Use an image stored in an external container registry. Only registries with enabled TLS protocol are supported. To provide a custom Certificate Authority (CA) chain, use the `caBundle` field.
func (*VirtualImageContainerImage) DeepCopy ¶
func (in *VirtualImageContainerImage) DeepCopy() *VirtualImageContainerImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageContainerImage.
func (*VirtualImageContainerImage) DeepCopyInto ¶
func (in *VirtualImageContainerImage) DeepCopyInto(out *VirtualImageContainerImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageDataSource ¶
type VirtualImageDataSource struct {
Type DataSourceType `json:"type,omitempty"`
HTTP *DataSourceHTTP `json:"http,omitempty"`
ContainerImage *VirtualImageContainerImage `json:"containerImage,omitempty"`
ObjectRef *VirtualImageObjectRef `json:"objectRef,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.type == 'HTTP' ? has(self.http) && !has(self.containerImage) && !has(self.objectRef) : true",message="HTTP requires http and cannot have ContainerImage or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ContainerImage' ? has(self.containerImage) && !has(self.http) && !has(self.objectRef) : true",message="ContainerImage requires containerImage and cannot have HTTP or ObjectRef." +kubebuilder:validation:XValidation:rule="self.type == 'ObjectRef' ? has(self.objectRef) && !has(self.http) && !has(self.containerImage) : true",message="ObjectRef requires objectRef and cannot have HTTP or ContainerImage."
func (*VirtualImageDataSource) DeepCopy ¶
func (in *VirtualImageDataSource) DeepCopy() *VirtualImageDataSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageDataSource.
func (*VirtualImageDataSource) DeepCopyInto ¶
func (in *VirtualImageDataSource) DeepCopyInto(out *VirtualImageDataSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageList ¶
type VirtualImageList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
// Items provides a list of CDIs.
Items []VirtualImage `json:"items"`
}
VirtualImageList provides the needed parameters for requesting a list of VirtualImages from the system. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualImageList) DeepCopy ¶
func (in *VirtualImageList) DeepCopy() *VirtualImageList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageList.
func (*VirtualImageList) DeepCopyInto ¶
func (in *VirtualImageList) DeepCopyInto(out *VirtualImageList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualImageList) DeepCopyObject ¶
func (in *VirtualImageList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualImageObjectRef ¶
type VirtualImageObjectRef struct {
// Kind of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.
Kind VirtualImageObjectRefKind `json:"kind"`
// Name of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.
Name string `json:"name"`
}
Use an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
func (*VirtualImageObjectRef) DeepCopy ¶
func (in *VirtualImageObjectRef) DeepCopy() *VirtualImageObjectRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageObjectRef.
func (*VirtualImageObjectRef) DeepCopyInto ¶
func (in *VirtualImageObjectRef) DeepCopyInto(out *VirtualImageObjectRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageObjectRefKind ¶
type VirtualImageObjectRefKind string
+kubebuilder:validation:Enum:={ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot}
const ( VirtualImageObjectRefKindVirtualImage VirtualImageObjectRefKind = "VirtualImage" VirtualImageObjectRefKindClusterVirtualImage VirtualImageObjectRefKind = "ClusterVirtualImage" VirtualImageObjectRefKindVirtualDisk VirtualImageObjectRefKind = "VirtualDisk" VirtualImageObjectRefKindVirtualDiskSnapshot VirtualImageObjectRefKind = "VirtualDiskSnapshot" )
type VirtualImagePersistentVolumeClaim ¶
type VirtualImagePersistentVolumeClaim struct {
// Name of the StorageClass required by the claim. For details on using StorageClass for PVC, refer to — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
//
// When creating an image with the `PersistentVolumeClaim` storage type, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.
StorageClass *string `json:"storageClassName,omitempty"`
}
Settings for creating PVCs to store an image with the storage type `PersistentVolumeClaim`.
func (*VirtualImagePersistentVolumeClaim) DeepCopy ¶
func (in *VirtualImagePersistentVolumeClaim) DeepCopy() *VirtualImagePersistentVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImagePersistentVolumeClaim.
func (*VirtualImagePersistentVolumeClaim) DeepCopyInto ¶
func (in *VirtualImagePersistentVolumeClaim) DeepCopyInto(out *VirtualImagePersistentVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageSpec ¶
type VirtualImageSpec struct {
// +kubebuilder:default:=ContainerRegistry
Storage StorageType `json:"storage"`
PersistentVolumeClaim VirtualImagePersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"`
DataSource VirtualImageDataSource `json:"dataSource"`
}
func (*VirtualImageSpec) DeepCopy ¶
func (in *VirtualImageSpec) DeepCopy() *VirtualImageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageSpec.
func (*VirtualImageSpec) DeepCopyInto ¶
func (in *VirtualImageSpec) DeepCopyInto(out *VirtualImageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageStatus ¶
type VirtualImageStatus struct {
// Image download speed from an external source. Appears only during the `Provisioning` phase.
DownloadSpeed *StatusSpeed `json:"downloadSpeed,omitempty"`
// Discovered image size data.
Size ImageStatusSize `json:"size,omitempty"`
// Discovered image format.
Format string `json:"format,omitempty"`
// Whether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
CDROM bool `json:"cdrom,omitempty"`
// Current status of the ClusterVirtualImage resource:
// * `Pending`: The resource has been created and is on a waiting queue.
// * `Provisioning`: The resource is being created: copying, downloading, or building the image.
// * `WaitForUserUpload`: Waiting for the user to upload the image. The endpoint to upload the image is specified in `.status.uploadCommand`.
// * `Ready`: The resource has been created and is ready to use.
// * `Failed`: There was an error when creating the resource.
// * `Terminating`: The resource is being deleted.
// * `PVCLost`: The child PVC of the resource is missing. The resource cannot be used.
// +kubebuilder:validation:Enum:={Pending,Provisioning,WaitForUserUpload,Ready,Failed,Terminating,PVCLost}
Phase ImagePhase `json:"phase,omitempty"`
// Progress of copying an image from a source to DVCR.
Progress string `json:"progress,omitempty"`
// Deprecated. Use `imageUploadURLs` instead.
UploadCommand string `json:"uploadCommand,omitempty"`
ImageUploadURLs *ImageUploadURLs `json:"imageUploadURLs,omitempty"`
Target VirtualImageStatusTarget `json:"target,omitempty"`
// UID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the virtual image.
SourceUID *types.UID `json:"sourceUID,omitempty"`
// The latest available observations of an object's current state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Name of the StorageClass used by the PersistentVolumeClaim if `Kubernetes` storage type is used.
StorageClassName string `json:"storageClassName,omitempty"`
}
func (*VirtualImageStatus) DeepCopy ¶
func (in *VirtualImageStatus) DeepCopy() *VirtualImageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageStatus.
func (*VirtualImageStatus) DeepCopyInto ¶
func (in *VirtualImageStatus) DeepCopyInto(out *VirtualImageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualImageStatusTarget ¶
type VirtualImageStatusTarget struct {
// Created image in DVCR.
// +kubebuilder:example:="dvcr.<dvcr-namespace>.svc/vi/<image-namespace>/<image-name>:latest"
RegistryURL string `json:"registryURL,omitempty"`
// Created PersistentVolumeClaim name for the PersistentVolumeClaim storage.
PersistentVolumeClaim string `json:"persistentVolumeClaimName,omitempty"`
}
func (*VirtualImageStatusTarget) DeepCopy ¶
func (in *VirtualImageStatusTarget) DeepCopy() *VirtualImageStatusTarget
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualImageStatusTarget.
func (*VirtualImageStatusTarget) DeepCopyInto ¶
func (in *VirtualImageStatusTarget) DeepCopyInto(out *VirtualImageStatusTarget)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachine ¶
type VirtualMachine struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineSpec `json:"spec"`
Status VirtualMachineStatus `json:"status,omitempty"`
}
VirtualMachine describes the configuration and status of a virtual machine (VM). For a running VM, parameter changes can only be applied after the VM is rebooted, except for the following parameters (they are applied on the fly): - `.metadata.labels`. - `.metadata.annotations`. - `.spec.disruptions.restartApprovalMode`. - `.spec.disruptions.runPolicy`.
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:subresource:status +kubebuilder:resource:categories={all,virtualization},scope=Namespaced,shortName={vm},singular=virtualmachine +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The phase of the virtual machine." +kubebuilder:printcolumn:name="Cores",priority=1,type="string",JSONPath=".spec.cpu.cores",description="The number of cores of the virtual machine." +kubebuilder:printcolumn:name="CoreFraction",priority=1,type="string",JSONPath=".spec.cpu.coreFraction",description="Virtual machine core fraction. The range of available values is set in the `sizePolicy` parameter of the VirtualMachineClass; if it is not set, use values within the 1–100% range." +kubebuilder:printcolumn:name="Memory",priority=1,type="string",JSONPath=".spec.memory.size",description="The amount of memory of the virtual machine." +kubebuilder:printcolumn:name="Need restart",priority=1,type="string",JSONPath=".status.conditions[?(@.type=='AwaitingRestartToApplyConfiguration')].status",description="A restart of the virtual machine is required." +kubebuilder:printcolumn:name="Agent",priority=1,type="string",JSONPath=".status.conditions[?(@.type=='AgentReady')].status",description="Agent status." +kubebuilder:printcolumn:name="Migratable",priority=1,type="string",JSONPath=".status.conditions[?(@.type=='Migratable')].status",description="Is it possible to migrate a virtual machine." +kubebuilder:printcolumn:name="Node",type="string",JSONPath=".status.nodeName",description="The node where the virtual machine is running." +kubebuilder:printcolumn:name="IPAddress",type="string",JSONPath=".status.ipAddress",description="The IP address of the virtual machine." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time of creation resource." +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachine) DeepCopy ¶
func (in *VirtualMachine) DeepCopy() *VirtualMachine
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachine.
func (*VirtualMachine) DeepCopyInto ¶
func (in *VirtualMachine) DeepCopyInto(out *VirtualMachine)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachine) DeepCopyObject ¶
func (in *VirtualMachine) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineAndPodAffinity ¶
type VirtualMachineAndPodAffinity struct {
RequiredDuringSchedulingIgnoredDuringExecution []VirtualMachineAndPodAffinityTerm `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
PreferredDuringSchedulingIgnoredDuringExecution []WeightedVirtualMachineAndPodAffinityTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
}
func (*VirtualMachineAndPodAffinity) DeepCopy ¶
func (in *VirtualMachineAndPodAffinity) DeepCopy() *VirtualMachineAndPodAffinity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineAndPodAffinity.
func (*VirtualMachineAndPodAffinity) DeepCopyInto ¶
func (in *VirtualMachineAndPodAffinity) DeepCopyInto(out *VirtualMachineAndPodAffinity)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineAndPodAffinityTerm ¶
type VirtualMachineAndPodAffinityTerm struct {
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
Namespaces []string `json:"namespaces,omitempty"`
TopologyKey string `json:"topologyKey"`
NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
MatchLabelKeys []string `json:"matchLabelKeys,omitempty"`
MismatchLabelKeys []string `json:"mismatchLabelKeys,omitempty"`
}
func (*VirtualMachineAndPodAffinityTerm) DeepCopy ¶
func (in *VirtualMachineAndPodAffinityTerm) DeepCopy() *VirtualMachineAndPodAffinityTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineAndPodAffinityTerm.
func (*VirtualMachineAndPodAffinityTerm) DeepCopyInto ¶
func (in *VirtualMachineAndPodAffinityTerm) DeepCopyInto(out *VirtualMachineAndPodAffinityTerm)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineAndPodAntiAffinity ¶
type VirtualMachineAndPodAntiAffinity struct {
RequiredDuringSchedulingIgnoredDuringExecution []VirtualMachineAndPodAffinityTerm `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"`
PreferredDuringSchedulingIgnoredDuringExecution []WeightedVirtualMachineAndPodAffinityTerm `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"`
}
func (*VirtualMachineAndPodAntiAffinity) DeepCopy ¶
func (in *VirtualMachineAndPodAntiAffinity) DeepCopy() *VirtualMachineAndPodAntiAffinity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineAndPodAntiAffinity.
func (*VirtualMachineAndPodAntiAffinity) DeepCopyInto ¶
func (in *VirtualMachineAndPodAntiAffinity) DeepCopyInto(out *VirtualMachineAndPodAntiAffinity)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineBlockDeviceAttachment ¶
type VirtualMachineBlockDeviceAttachment struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineBlockDeviceAttachmentSpec `json:"spec"`
Status VirtualMachineBlockDeviceAttachmentStatus `json:"status,omitempty"`
}
VirtualMachineBlockDeviceAttachment provides a hot plug for attaching a disk to a virtual machine.
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:subresource:status +kubebuilder:resource:categories={virtualization},scope=Namespaced,shortName={vmbda},singular=virtualmachineblockdeviceattachment +kubebuilder:printcolumn:name="PHASE",type="string",JSONPath=".status.phase",description="VirtualMachineBlockDeviceAttachment phase." +kubebuilder:printcolumn:name="BLOCKDEVICE KIND",type=string,JSONPath=`.spec.blockDeviceRef.kind`,priority=1,description="Attached blockdevice kind." +kubebuilder:printcolumn:name="BLOCKDEVICE NAME",type=string,JSONPath=`.spec.blockDeviceRef.name`,priority=1,description="Attached blockdevice name." +kubebuilder:printcolumn:name="VIRTUAL MACHINE NAME",type="string",JSONPath=".status.virtualMachineName",description="Name of the virtual machine the disk is attached to." +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp",description="Time of resource creation." +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineBlockDeviceAttachment) DeepCopy ¶
func (in *VirtualMachineBlockDeviceAttachment) DeepCopy() *VirtualMachineBlockDeviceAttachment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineBlockDeviceAttachment.
func (*VirtualMachineBlockDeviceAttachment) DeepCopyInto ¶
func (in *VirtualMachineBlockDeviceAttachment) DeepCopyInto(out *VirtualMachineBlockDeviceAttachment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineBlockDeviceAttachment) DeepCopyObject ¶
func (in *VirtualMachineBlockDeviceAttachment) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineBlockDeviceAttachmentList ¶
type VirtualMachineBlockDeviceAttachmentList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
// Items provides a list of CDIs.
Items []VirtualMachineBlockDeviceAttachment `json:"items"`
}
VirtualMachineBlockDeviceAttachmentList contains a list of VirtualMachineBlockDeviceAttachment resources. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineBlockDeviceAttachmentList) DeepCopy ¶
func (in *VirtualMachineBlockDeviceAttachmentList) DeepCopy() *VirtualMachineBlockDeviceAttachmentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineBlockDeviceAttachmentList.
func (*VirtualMachineBlockDeviceAttachmentList) DeepCopyInto ¶
func (in *VirtualMachineBlockDeviceAttachmentList) DeepCopyInto(out *VirtualMachineBlockDeviceAttachmentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineBlockDeviceAttachmentList) DeepCopyObject ¶
func (in *VirtualMachineBlockDeviceAttachmentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineBlockDeviceAttachmentSpec ¶
type VirtualMachineBlockDeviceAttachmentSpec struct {
// Virtual machine name the disk or image should be attached to.
VirtualMachineName string `json:"virtualMachineName"`
BlockDeviceRef VMBDAObjectRef `json:"blockDeviceRef"`
}
func (*VirtualMachineBlockDeviceAttachmentSpec) DeepCopy ¶
func (in *VirtualMachineBlockDeviceAttachmentSpec) DeepCopy() *VirtualMachineBlockDeviceAttachmentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineBlockDeviceAttachmentSpec.
func (*VirtualMachineBlockDeviceAttachmentSpec) DeepCopyInto ¶
func (in *VirtualMachineBlockDeviceAttachmentSpec) DeepCopyInto(out *VirtualMachineBlockDeviceAttachmentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineBlockDeviceAttachmentStatus ¶
type VirtualMachineBlockDeviceAttachmentStatus struct {
Phase BlockDeviceAttachmentPhase `json:"phase,omitempty"`
// Name of the virtual machine the disk is attached to.
VirtualMachineName string `json:"virtualMachineName,omitempty"`
// Contains details of the current API resource state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
func (*VirtualMachineBlockDeviceAttachmentStatus) DeepCopy ¶
func (in *VirtualMachineBlockDeviceAttachmentStatus) DeepCopy() *VirtualMachineBlockDeviceAttachmentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineBlockDeviceAttachmentStatus.
func (*VirtualMachineBlockDeviceAttachmentStatus) DeepCopyInto ¶
func (in *VirtualMachineBlockDeviceAttachmentStatus) DeepCopyInto(out *VirtualMachineBlockDeviceAttachmentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineClass ¶
type VirtualMachineClass struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineClassSpec `json:"spec"`
Status VirtualMachineClassStatus `json:"status,omitempty"`
}
VirtualMachineClass resource describes CPU requirements, node placement, and sizing policy for VM resources. A resource cannot be deleted as long as it is used in one of the VMs.
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization,backup.deckhouse.io/cluster-config=true} +kubebuilder:subresource:status +kubebuilder:resource:categories={virtualization-cluster},scope=Cluster,shortName={vmc,vmclass},singular=virtualmachineclass +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="VirtualMachineClass phase." +kubebuilder:printcolumn:name="IsDefault",type="string",JSONPath=".metadata.annotations.virtualmachineclass\\.virtualization\\.deckhouse\\.io\\/is-default-class",description="Default class for virtual machines without specified class." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time of resource creation." +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineClass) DeepCopy ¶
func (in *VirtualMachineClass) DeepCopy() *VirtualMachineClass
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineClass.
func (*VirtualMachineClass) DeepCopyInto ¶
func (in *VirtualMachineClass) DeepCopyInto(out *VirtualMachineClass)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineClass) DeepCopyObject ¶
func (in *VirtualMachineClass) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineClassList ¶
type VirtualMachineClassList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
// Items provides a list of VirtualMachineClasses.
Items []VirtualMachineClass `json:"items"`
}
VirtualMachineClassList contains a list of VirtualMachineClasses. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineClassList) DeepCopy ¶
func (in *VirtualMachineClassList) DeepCopy() *VirtualMachineClassList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineClassList.
func (*VirtualMachineClassList) DeepCopyInto ¶
func (in *VirtualMachineClassList) DeepCopyInto(out *VirtualMachineClassList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineClassList) DeepCopyObject ¶
func (in *VirtualMachineClassList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineClassPhase ¶
type VirtualMachineClassPhase string
VirtualMachineClassPhase defines the current resource status: * `Pending`: The resource is not ready and waits until the suitable nodes supporting the required CPU model are available. * `Ready`: The resource is ready and available for use. * `Terminating`: The resource is terminating.
+kubebuilder:validation:Enum={Pending,Ready,Terminating}
const ( ClassPhasePending VirtualMachineClassPhase = "Pending" ClassPhaseReady VirtualMachineClassPhase = "Ready" ClassPhaseTerminating VirtualMachineClassPhase = "Terminating" )
type VirtualMachineClassSpec ¶
type VirtualMachineClassSpec struct {
NodeSelector NodeSelector `json:"nodeSelector,omitempty"`
// Tolerations are the same as `spec.tolerations` for [pods](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
// These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// +kubebuilder:validation:Required
CPU CPU `json:"cpu"`
SizingPolicies []SizingPolicy `json:"sizingPolicies,omitempty"`
}
func (*VirtualMachineClassSpec) DeepCopy ¶
func (in *VirtualMachineClassSpec) DeepCopy() *VirtualMachineClassSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineClassSpec.
func (*VirtualMachineClassSpec) DeepCopyInto ¶
func (in *VirtualMachineClassSpec) DeepCopyInto(out *VirtualMachineClassSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineClassStatus ¶
type VirtualMachineClassStatus struct {
Phase VirtualMachineClassPhase `json:"phase"`
CpuFeatures CpuFeatures `json:"cpuFeatures,omitempty"`
// List of nodes that support this CPU model.
// It is not displayed for the following types: `Host`, `HostPassthrough`.
//
// +kubebuilder:example={node-1, node-2}
AvailableNodes []string `json:"availableNodes,omitempty"`
// Maximum amount of free CPU and memory resources observed among all available nodes.
// +kubebuilder:example={"maxAllocatableResources: {\"cpu\": 1, \"memory\": \"10Gi\"}"}
MaxAllocatableResources corev1.ResourceList `json:"maxAllocatableResources,omitempty"`
// The latest detailed observations of the VirtualMachineClass resource.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
func (*VirtualMachineClassStatus) DeepCopy ¶
func (in *VirtualMachineClassStatus) DeepCopy() *VirtualMachineClassStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineClassStatus.
func (*VirtualMachineClassStatus) DeepCopyInto ¶
func (in *VirtualMachineClassStatus) DeepCopyInto(out *VirtualMachineClassStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddress ¶
type VirtualMachineIPAddress struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineIPAddressSpec `json:"spec,omitempty"`
Status VirtualMachineIPAddressStatus `json:"status,omitempty"`
}
VirtualMachineIPAddress defines IP address for virtual machine. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineIPAddress) DeepCopy ¶
func (in *VirtualMachineIPAddress) DeepCopy() *VirtualMachineIPAddress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddress.
func (*VirtualMachineIPAddress) DeepCopyInto ¶
func (in *VirtualMachineIPAddress) DeepCopyInto(out *VirtualMachineIPAddress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineIPAddress) DeepCopyObject ¶
func (in *VirtualMachineIPAddress) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineIPAddressLease ¶
type VirtualMachineIPAddressLease struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineIPAddressLeaseSpec `json:"spec,omitempty"`
Status VirtualMachineIPAddressLeaseStatus `json:"status,omitempty"`
}
VirtualMachineIPAddressLease defines fact of issued lease for `VirtualMachineIPAddress`. +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineIPAddressLease) DeepCopy ¶
func (in *VirtualMachineIPAddressLease) DeepCopy() *VirtualMachineIPAddressLease
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressLease.
func (*VirtualMachineIPAddressLease) DeepCopyInto ¶
func (in *VirtualMachineIPAddressLease) DeepCopyInto(out *VirtualMachineIPAddressLease)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineIPAddressLease) DeepCopyObject ¶
func (in *VirtualMachineIPAddressLease) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineIPAddressLeaseIpAddressRef ¶
type VirtualMachineIPAddressLeaseIpAddressRef struct {
// The Namespace of the referenced `VirtualMachineIPAddress`.
Namespace string `json:"namespace"`
// The name of the referenced `VirtualMachineIPAddress`.
Name string `json:"name"`
}
func (*VirtualMachineIPAddressLeaseIpAddressRef) DeepCopy ¶
func (in *VirtualMachineIPAddressLeaseIpAddressRef) DeepCopy() *VirtualMachineIPAddressLeaseIpAddressRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressLeaseIpAddressRef.
func (*VirtualMachineIPAddressLeaseIpAddressRef) DeepCopyInto ¶
func (in *VirtualMachineIPAddressLeaseIpAddressRef) DeepCopyInto(out *VirtualMachineIPAddressLeaseIpAddressRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddressLeaseList ¶
type VirtualMachineIPAddressLeaseList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMachineIPAddressLease `json:"items"`
}
VirtualMachineIPAddressLeaseList contains a list of VirtualMachineIPAddressLease +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineIPAddressLeaseList) DeepCopy ¶
func (in *VirtualMachineIPAddressLeaseList) DeepCopy() *VirtualMachineIPAddressLeaseList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressLeaseList.
func (*VirtualMachineIPAddressLeaseList) DeepCopyInto ¶
func (in *VirtualMachineIPAddressLeaseList) DeepCopyInto(out *VirtualMachineIPAddressLeaseList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineIPAddressLeaseList) DeepCopyObject ¶
func (in *VirtualMachineIPAddressLeaseList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineIPAddressLeasePhase ¶
type VirtualMachineIPAddressLeasePhase string
const ( VirtualMachineIPAddressLeasePhaseBound VirtualMachineIPAddressLeasePhase = "Bound" VirtualMachineIPAddressLeasePhaseReleased VirtualMachineIPAddressLeasePhase = "Released" )
type VirtualMachineIPAddressLeaseSpec ¶
type VirtualMachineIPAddressLeaseSpec struct {
// The link to existing `VirtualMachineIPAddress`.
VirtualMachineIPAddressRef *VirtualMachineIPAddressLeaseIpAddressRef `json:"virtualMachineIPAddressRef,omitempty"`
}
VirtualMachineIPAddressLeaseSpec is the desired state of `VirtualMachineIPAddressLease`.
func (*VirtualMachineIPAddressLeaseSpec) DeepCopy ¶
func (in *VirtualMachineIPAddressLeaseSpec) DeepCopy() *VirtualMachineIPAddressLeaseSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressLeaseSpec.
func (*VirtualMachineIPAddressLeaseSpec) DeepCopyInto ¶
func (in *VirtualMachineIPAddressLeaseSpec) DeepCopyInto(out *VirtualMachineIPAddressLeaseSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddressLeaseStatus ¶
type VirtualMachineIPAddressLeaseStatus struct {
// Represents the current state of issued IP address lease.
Phase VirtualMachineIPAddressLeasePhase `json:"phase,omitempty"`
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
VirtualMachineIPAddressLeaseStatus is the observed state of `VirtualMachineIPAddressLease`.
func (*VirtualMachineIPAddressLeaseStatus) DeepCopy ¶
func (in *VirtualMachineIPAddressLeaseStatus) DeepCopy() *VirtualMachineIPAddressLeaseStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressLeaseStatus.
func (*VirtualMachineIPAddressLeaseStatus) DeepCopyInto ¶
func (in *VirtualMachineIPAddressLeaseStatus) DeepCopyInto(out *VirtualMachineIPAddressLeaseStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddressList ¶
type VirtualMachineIPAddressList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMachineIPAddress `json:"items"`
}
VirtualMachineIPAddressList contains a list of VirtualMachineIPAddress +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineIPAddressList) DeepCopy ¶
func (in *VirtualMachineIPAddressList) DeepCopy() *VirtualMachineIPAddressList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressList.
func (*VirtualMachineIPAddressList) DeepCopyInto ¶
func (in *VirtualMachineIPAddressList) DeepCopyInto(out *VirtualMachineIPAddressList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineIPAddressList) DeepCopyObject ¶
func (in *VirtualMachineIPAddressList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineIPAddressPhase ¶
type VirtualMachineIPAddressPhase string
const ( VirtualMachineIPAddressPhasePending VirtualMachineIPAddressPhase = "Pending" VirtualMachineIPAddressPhaseBound VirtualMachineIPAddressPhase = "Bound" VirtualMachineIPAddressPhaseAttached VirtualMachineIPAddressPhase = "Attached" )
type VirtualMachineIPAddressSpec ¶
type VirtualMachineIPAddressSpec struct {
// Type specifies the mode of IP address assignment. Possible values are "Auto" for automatic IP assignment,
// or "Static" for assigning a specific IP address.
Type VirtualMachineIPAddressType `json:"type"`
// StaticIP is the requested IP address. If omitted the next available IP address will be assigned.
StaticIP string `json:"staticIP,omitempty"`
}
VirtualMachineIPAddressSpec is the desired state of `VirtualMachineIPAddress`.
func (*VirtualMachineIPAddressSpec) DeepCopy ¶
func (in *VirtualMachineIPAddressSpec) DeepCopy() *VirtualMachineIPAddressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressSpec.
func (*VirtualMachineIPAddressSpec) DeepCopyInto ¶
func (in *VirtualMachineIPAddressSpec) DeepCopyInto(out *VirtualMachineIPAddressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddressStatus ¶
type VirtualMachineIPAddressStatus struct {
// VirtualMachine represents the virtual machine that currently uses this IP address.
// It's the name of the virtual machine instance.
VirtualMachine string `json:"virtualMachineName,omitempty"`
// Address is the assigned IP address allocated to the virtual machine.
Address string `json:"address,omitempty"`
// Phase represents the current state of the IP address.
// It could indicate whether the IP address is in use, available, or in any other defined state.
Phase VirtualMachineIPAddressPhase `json:"phase,omitempty"`
// ObservedGeneration is the most recent generation observed by the controller.
// This is used to identify changes that have been recently observed and handled.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions represents the latest available observations of the object's state.
// They provide detailed status and information, such as whether the IP address allocation was successful, in progress, etc.
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
VirtualMachineIPAddressStatus is the observed state of `VirtualMachineIPAddress`.
func (*VirtualMachineIPAddressStatus) DeepCopy ¶
func (in *VirtualMachineIPAddressStatus) DeepCopy() *VirtualMachineIPAddressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineIPAddressStatus.
func (*VirtualMachineIPAddressStatus) DeepCopyInto ¶
func (in *VirtualMachineIPAddressStatus) DeepCopyInto(out *VirtualMachineIPAddressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineIPAddressType ¶
type VirtualMachineIPAddressType string
const ( VirtualMachineIPAddressTypeAuto VirtualMachineIPAddressType = "Auto" VirtualMachineIPAddressTypeStatic VirtualMachineIPAddressType = "Static" )
type VirtualMachineLaunchTimeDuration ¶
type VirtualMachineLaunchTimeDuration struct {
// The waiting time for dependent resources. pending -> starting.
// +nullable
WaitingForDependencies *metav1.Duration `json:"waitingForDependencies,omitempty"`
// The waiting time for the virtual machine to start. starting -> running.
// +nullable
VirtualMachineStarting *metav1.Duration `json:"virtualMachineStarting,omitempty"`
// The waiting time for the guestOsAgent to start. running -> running with guestOSAgent.
// +nullable
GuestOSAgentStarting *metav1.Duration `json:"guestOSAgentStarting,omitempty"`
}
func (*VirtualMachineLaunchTimeDuration) DeepCopy ¶
func (in *VirtualMachineLaunchTimeDuration) DeepCopy() *VirtualMachineLaunchTimeDuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineLaunchTimeDuration.
func (*VirtualMachineLaunchTimeDuration) DeepCopyInto ¶
func (in *VirtualMachineLaunchTimeDuration) DeepCopyInto(out *VirtualMachineLaunchTimeDuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineList ¶
type VirtualMachineList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
// Items provides a list of VirtualMachines
Items []VirtualMachine `json:"items"`
}
VirtualMachineList contains a list of VirtualMachine +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineList) DeepCopy ¶
func (in *VirtualMachineList) DeepCopy() *VirtualMachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineList.
func (*VirtualMachineList) DeepCopyInto ¶
func (in *VirtualMachineList) DeepCopyInto(out *VirtualMachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineList) DeepCopyObject ¶
func (in *VirtualMachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineLocation ¶
type VirtualMachineLocation struct {
// The name of the node on which the VM is currently migrating.
Node string `json:"node,omitempty"`
// The name of the pod where the VM is currently being migrated.
Pod string `json:"pod,omitempty"`
}
func (*VirtualMachineLocation) DeepCopy ¶
func (in *VirtualMachineLocation) DeepCopy() *VirtualMachineLocation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineLocation.
func (*VirtualMachineLocation) DeepCopyInto ¶
func (in *VirtualMachineLocation) DeepCopyInto(out *VirtualMachineLocation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMACAddress ¶ added in v1.0.0
type VirtualMachineMACAddress struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineMACAddressSpec `json:"spec,omitempty"`
Status VirtualMachineMACAddressStatus `json:"status,omitempty"`
}
VirtualMachineMACAddress defines MAC address for virtual machine. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineMACAddress) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddress) DeepCopy() *VirtualMachineMACAddress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddress.
func (*VirtualMachineMACAddress) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddress) DeepCopyInto(out *VirtualMachineMACAddress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineMACAddress) DeepCopyObject ¶ added in v1.0.0
func (in *VirtualMachineMACAddress) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineMACAddressLease ¶ added in v1.0.0
type VirtualMachineMACAddressLease struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineMACAddressLeaseSpec `json:"spec,omitempty"`
Status VirtualMachineMACAddressLeaseStatus `json:"status,omitempty"`
}
VirtualMachineMACAddressLease defines fact of issued lease for `VirtualMachineMACAddress`. +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineMACAddressLease) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLease) DeepCopy() *VirtualMachineMACAddressLease
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressLease.
func (*VirtualMachineMACAddressLease) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLease) DeepCopyInto(out *VirtualMachineMACAddressLease)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineMACAddressLease) DeepCopyObject ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLease) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineMACAddressLeaseList ¶ added in v1.0.0
type VirtualMachineMACAddressLeaseList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMachineMACAddressLease `json:"items"`
}
VirtualMachineMACAddressLeaseList contains a list of VirtualMachineMACAddressLease +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineMACAddressLeaseList) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseList) DeepCopy() *VirtualMachineMACAddressLeaseList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressLeaseList.
func (*VirtualMachineMACAddressLeaseList) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseList) DeepCopyInto(out *VirtualMachineMACAddressLeaseList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineMACAddressLeaseList) DeepCopyObject ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineMACAddressLeaseMACAddressRef ¶ added in v1.0.0
type VirtualMachineMACAddressLeaseMACAddressRef struct {
// The Namespace of the referenced `VirtualMachineMACAddress`.
Namespace string `json:"namespace"`
// The name of the referenced `VirtualMachineMACAddress`.
Name string `json:"name"`
}
func (*VirtualMachineMACAddressLeaseMACAddressRef) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseMACAddressRef) DeepCopy() *VirtualMachineMACAddressLeaseMACAddressRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressLeaseMACAddressRef.
func (*VirtualMachineMACAddressLeaseMACAddressRef) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseMACAddressRef) DeepCopyInto(out *VirtualMachineMACAddressLeaseMACAddressRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMACAddressLeasePhase ¶ added in v1.0.0
type VirtualMachineMACAddressLeasePhase string
const (
VirtualMachineMACAddressLeasePhaseBound VirtualMachineMACAddressLeasePhase = "Bound"
)
type VirtualMachineMACAddressLeaseSpec ¶ added in v1.0.0
type VirtualMachineMACAddressLeaseSpec struct {
// The link to existing `VirtualMachineMACAddress`.
VirtualMachineMACAddressRef *VirtualMachineMACAddressLeaseMACAddressRef `json:"virtualMachineMACAddressRef,omitempty"`
}
VirtualMachineMACAddressLeaseSpec is the desired state of `VirtualMachineMACAddressLease`.
func (*VirtualMachineMACAddressLeaseSpec) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseSpec) DeepCopy() *VirtualMachineMACAddressLeaseSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressLeaseSpec.
func (*VirtualMachineMACAddressLeaseSpec) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseSpec) DeepCopyInto(out *VirtualMachineMACAddressLeaseSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMACAddressLeaseStatus ¶ added in v1.0.0
type VirtualMachineMACAddressLeaseStatus struct {
// Represents the current state of issued MAC address lease.
Phase VirtualMachineMACAddressLeasePhase `json:"phase,omitempty"`
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
VirtualMachineMACAddressLeaseStatus is the observed state of `VirtualMachineMACAddressLease`.
func (*VirtualMachineMACAddressLeaseStatus) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseStatus) DeepCopy() *VirtualMachineMACAddressLeaseStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressLeaseStatus.
func (*VirtualMachineMACAddressLeaseStatus) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressLeaseStatus) DeepCopyInto(out *VirtualMachineMACAddressLeaseStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMACAddressList ¶ added in v1.0.0
type VirtualMachineMACAddressList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMachineMACAddress `json:"items"`
}
VirtualMachineMACAddressList contains a list of VirtualMachineMACAddress +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineMACAddressList) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressList) DeepCopy() *VirtualMachineMACAddressList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressList.
func (*VirtualMachineMACAddressList) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressList) DeepCopyInto(out *VirtualMachineMACAddressList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineMACAddressList) DeepCopyObject ¶ added in v1.0.0
func (in *VirtualMachineMACAddressList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineMACAddressPhase ¶ added in v1.0.0
type VirtualMachineMACAddressPhase string
const ( VirtualMachineMACAddressPhasePending VirtualMachineMACAddressPhase = "Pending" VirtualMachineMACAddressPhaseBound VirtualMachineMACAddressPhase = "Bound" VirtualMachineMACAddressPhaseAttached VirtualMachineMACAddressPhase = "Attached" )
type VirtualMachineMACAddressSpec ¶ added in v1.0.0
type VirtualMachineMACAddressSpec struct {
// MACAddress is the requested MAC address. If omitted - random generate.
Address string `json:"address,omitempty"`
}
VirtualMachineMACAddressSpec is the desired state of `VirtualMachineMACAddress`.
func (*VirtualMachineMACAddressSpec) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressSpec) DeepCopy() *VirtualMachineMACAddressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressSpec.
func (*VirtualMachineMACAddressSpec) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressSpec) DeepCopyInto(out *VirtualMachineMACAddressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMACAddressStatus ¶ added in v1.0.0
type VirtualMachineMACAddressStatus struct {
// VirtualMachine represents the virtual machine that currently uses this MAC address.
// It's the name of the virtual machine instance.
VirtualMachine string `json:"virtualMachineName,omitempty"`
// Address is the assigned MAC address allocated to the virtual machine.
Address string `json:"address,omitempty"`
// Phase represents the current state of the MAC address.
// It could indicate whether the MAC address is in use, available, or in any other defined state.
Phase VirtualMachineMACAddressPhase `json:"phase,omitempty"`
// ObservedGeneration is the most recent generation observed by the controller.
// This is used to identify changes that have been recently observed and handled.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions represents the latest available observations of the object's state.
// They provide detailed status and information, such as whether the MAC address allocation was successful, in progress, etc.
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
VirtualMachineMACAddressStatus is the observed state of `VirtualMachineMACAddress`.
func (*VirtualMachineMACAddressStatus) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineMACAddressStatus) DeepCopy() *VirtualMachineMACAddressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMACAddressStatus.
func (*VirtualMachineMACAddressStatus) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineMACAddressStatus) DeepCopyInto(out *VirtualMachineMACAddressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineMigrationState ¶
type VirtualMachineMigrationState struct {
// Migration start time.
StartTimestamp *metav1.Time `json:"startTimestamp,omitempty"`
// Migration end time.
EndTimestamp *metav1.Time `json:"endTimestamp,omitempty"`
Target VirtualMachineLocation `json:"target,omitempty"`
Source VirtualMachineLocation `json:"source,omitempty"`
Result MigrationResult `json:"result,omitempty"`
}
func (*VirtualMachineMigrationState) DeepCopy ¶
func (in *VirtualMachineMigrationState) DeepCopy() *VirtualMachineMigrationState
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineMigrationState.
func (*VirtualMachineMigrationState) DeepCopyInto ¶
func (in *VirtualMachineMigrationState) DeepCopyInto(out *VirtualMachineMigrationState)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineOperation ¶
type VirtualMachineOperation struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineOperationSpec `json:"spec"`
Status VirtualMachineOperationStatus `json:"status,omitempty"`
}
VirtualMachineOperation enables declarative management of virtual machine state changes. +kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:subresource:status +kubebuilder:resource:categories={virtualization},scope=Namespaced,shortName={vmop},singular=virtualmachineoperation +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="VirtualMachineOperation phase." +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".spec.type",description="VirtualMachineOperation type." +kubebuilder:printcolumn:name="VirtualMachine",type="string",JSONPath=".spec.virtualMachineName",description="VirtualMachine name." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time of resource creation." +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineOperation) DeepCopy ¶
func (in *VirtualMachineOperation) DeepCopy() *VirtualMachineOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperation.
func (*VirtualMachineOperation) DeepCopyInto ¶
func (in *VirtualMachineOperation) DeepCopyInto(out *VirtualMachineOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineOperation) DeepCopyObject ¶
func (in *VirtualMachineOperation) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineOperationList ¶
type VirtualMachineOperationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []VirtualMachineOperation `json:"items"`
}
VirtualMachineOperationList contains a list of VirtualMachineOperation resources. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineOperationList) DeepCopy ¶
func (in *VirtualMachineOperationList) DeepCopy() *VirtualMachineOperationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperationList.
func (*VirtualMachineOperationList) DeepCopyInto ¶
func (in *VirtualMachineOperationList) DeepCopyInto(out *VirtualMachineOperationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineOperationList) DeepCopyObject ¶
func (in *VirtualMachineOperationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineOperationResource ¶ added in v1.0.0
type VirtualMachineOperationResource struct {
// API version of the resource.
APIVersion string `json:"apiVersion"`
// Name of the resource.
Name string `json:"name"`
// Kind of the resource.
Kind string `json:"kind"`
// Status of the resource.
Status VMOPResourceStatusPhase `json:"status"`
// Message about the resource.
Message string `json:"message"`
}
VirtualMachineOperationResource defines the resource affected by the operation.
func (*VirtualMachineOperationResource) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineOperationResource) DeepCopy() *VirtualMachineOperationResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperationResource.
func (*VirtualMachineOperationResource) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineOperationResource) DeepCopyInto(out *VirtualMachineOperationResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineOperationRestoreSpec ¶ added in v1.0.0
type VirtualMachineOperationRestoreSpec struct {
Mode VMOPRestoreMode `json:"mode"`
// VirtualMachineSnapshotName defines the source of the restore operation.
VirtualMachineSnapshotName string `json:"virtualMachineSnapshotName"`
}
VirtualMachineOperationRestoreSpec defines the restore operation.
func (*VirtualMachineOperationRestoreSpec) DeepCopy ¶ added in v1.0.0
func (in *VirtualMachineOperationRestoreSpec) DeepCopy() *VirtualMachineOperationRestoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperationRestoreSpec.
func (*VirtualMachineOperationRestoreSpec) DeepCopyInto ¶ added in v1.0.0
func (in *VirtualMachineOperationRestoreSpec) DeepCopyInto(out *VirtualMachineOperationRestoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineOperationSpec ¶
type VirtualMachineOperationSpec struct {
Type VMOPType `json:"type"`
// Name of the virtual machine the operation is performed for.
VirtualMachine string `json:"virtualMachineName"`
// Force execution of an operation.
//
// * Effect on `Restart` and `Stop`: operation performs immediately.
// * Effect on `Evict` and `Migrate`: enable the AutoConverge feature to force migration via CPU throttling if the `PreferSafe` or `PreferForced` policies are used for live migration.
Force *bool `json:"force,omitempty"`
// Restore defines the restore operation.
Restore *VirtualMachineOperationRestoreSpec `json:"restore,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self == oldSelf",message=".spec is immutable" +kubebuilder:validation:XValidation:rule="self.type == 'Start' ? !has(self.force) || !self.force : true",message="The `Start` operation cannot be performed forcibly." +kubebuilder:validation:XValidation:rule="self.type == 'Migrate' ? !has(self.force) || !self.force : true",message="The `Migrate` operation cannot be performed forcibly." +kubebuilder:validation:XValidation:rule="self.type == 'Restore' ? has(self.restore) : true",message="Restore requires restore field."
func (*VirtualMachineOperationSpec) DeepCopy ¶
func (in *VirtualMachineOperationSpec) DeepCopy() *VirtualMachineOperationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperationSpec.
func (*VirtualMachineOperationSpec) DeepCopyInto ¶
func (in *VirtualMachineOperationSpec) DeepCopyInto(out *VirtualMachineOperationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineOperationStatus ¶
type VirtualMachineOperationStatus struct {
Phase VMOPPhase `json:"phase"`
// The latest detailed observations of the VirtualMachineOperation resource.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Resources contains the list of resources that are affected by the snapshot operation.
Resources []VirtualMachineOperationResource `json:"resources,omitempty"`
}
func (*VirtualMachineOperationStatus) DeepCopy ¶
func (in *VirtualMachineOperationStatus) DeepCopy() *VirtualMachineOperationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineOperationStatus.
func (*VirtualMachineOperationStatus) DeepCopyInto ¶
func (in *VirtualMachineOperationStatus) DeepCopyInto(out *VirtualMachineOperationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachinePhaseTransitionTimestamp ¶
type VirtualMachinePhaseTransitionTimestamp struct {
Phase MachinePhase `json:"phase,omitempty"`
// PhaseTransitionTimestamp is the timestamp of when the phase change occurred
// +kubebuilder:validation:Format:=date-time
// +nullable
Timestamp metav1.Time `json:"timestamp,omitempty"`
}
VirtualMachinePhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vm.
func (*VirtualMachinePhaseTransitionTimestamp) DeepCopy ¶
func (in *VirtualMachinePhaseTransitionTimestamp) DeepCopy() *VirtualMachinePhaseTransitionTimestamp
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachinePhaseTransitionTimestamp.
func (*VirtualMachinePhaseTransitionTimestamp) DeepCopyInto ¶
func (in *VirtualMachinePhaseTransitionTimestamp) DeepCopyInto(out *VirtualMachinePhaseTransitionTimestamp)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachinePod ¶
type VirtualMachinePod struct {
// Name of virtual machine pod.
Name string `json:"name"`
// Current working pod.
Active bool `json:"active"`
}
func (*VirtualMachinePod) DeepCopy ¶
func (in *VirtualMachinePod) DeepCopy() *VirtualMachinePod
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachinePod.
func (*VirtualMachinePod) DeepCopyInto ¶
func (in *VirtualMachinePod) DeepCopyInto(out *VirtualMachinePod)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineRestore ¶
type VirtualMachineRestore struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineRestoreSpec `json:"spec"`
Status VirtualMachineRestoreStatus `json:"status,omitempty"`
}
VirtualMachineRestore provides a resource for restoring a virtual machine and all associated resources from a snapshot.
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:subresource:status +kubebuilder:resource:categories=virtualization,scope=Namespaced,shortName={vmrestore},singular=virtualmachinerestore +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="VirtualMachineRestore phase." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="VirtualMachineRestore age." +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineRestore) DeepCopy ¶
func (in *VirtualMachineRestore) DeepCopy() *VirtualMachineRestore
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineRestore.
func (*VirtualMachineRestore) DeepCopyInto ¶
func (in *VirtualMachineRestore) DeepCopyInto(out *VirtualMachineRestore)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineRestore) DeepCopyObject ¶
func (in *VirtualMachineRestore) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineRestoreList ¶
type VirtualMachineRestoreList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []VirtualMachineRestore `json:"items"`
}
VirtualMachineRestoreList contains a list of VirtualMachineRestore resources. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineRestoreList) DeepCopy ¶
func (in *VirtualMachineRestoreList) DeepCopy() *VirtualMachineRestoreList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineRestoreList.
func (*VirtualMachineRestoreList) DeepCopyInto ¶
func (in *VirtualMachineRestoreList) DeepCopyInto(out *VirtualMachineRestoreList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineRestoreList) DeepCopyObject ¶
func (in *VirtualMachineRestoreList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineRestorePhase ¶
type VirtualMachineRestorePhase string
VirtualMachineRestorePhase defines the current status of a resource: * `Pending`: The resource has been created and is on a waiting queue. * `InProgress`: A virtual machine is being restored from a snapshot. * `Ready`: A virtual machine has been successfully restored from a snapshot. * `Failed`: An error occurred when restoring a virtual machine from a snapshot. * `Terminating`: The resource is being deleted.
+kubebuilder:validation:Enum={Pending,InProgress,Ready,Failed,Terminating}
const ( VirtualMachineRestorePhasePending VirtualMachineRestorePhase = "Pending" VirtualMachineRestorePhaseInProgress VirtualMachineRestorePhase = "InProgress" VirtualMachineRestorePhaseReady VirtualMachineRestorePhase = "Ready" VirtualMachineRestorePhaseFailed VirtualMachineRestorePhase = "Failed" VirtualMachineRestorePhaseTerminating VirtualMachineRestorePhase = "Terminating" )
type VirtualMachineRestoreSpec ¶
type VirtualMachineRestoreSpec struct {
// Virtual machine restore mode:
//
// * Safe — in this mode, the virtual machine will not be restored if unresolvable conflicts are detected during the restoration process.
// * Forced — in this mode, the virtual machine configuration will be updated and all associated resources will be recreated. The virtual machine may malfunction if the recovery process fails. Use the mode when you need to restore the virtual machine despite conflicts.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=Safe;Forced
// +kubebuilder:default:=Safe
RestoreMode RestoreMode `json:"restoreMode,omitempty"`
// Snapshot name to restore a virtual machine from.
//
// +kubebuilder:validation:MinLength=1
VirtualMachineSnapshotName string `json:"virtualMachineSnapshotName"`
// Renaming conventions for virtual machine resources.
NameReplacements []NameReplacement `json:"nameReplacements,omitempty"`
}
func (*VirtualMachineRestoreSpec) DeepCopy ¶
func (in *VirtualMachineRestoreSpec) DeepCopy() *VirtualMachineRestoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineRestoreSpec.
func (*VirtualMachineRestoreSpec) DeepCopyInto ¶
func (in *VirtualMachineRestoreSpec) DeepCopyInto(out *VirtualMachineRestoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineRestoreStatus ¶
type VirtualMachineRestoreStatus struct {
Phase VirtualMachineRestorePhase `json:"phase"`
// Contains details of the current API resource state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
func (*VirtualMachineRestoreStatus) DeepCopy ¶
func (in *VirtualMachineRestoreStatus) DeepCopy() *VirtualMachineRestoreStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineRestoreStatus.
func (*VirtualMachineRestoreStatus) DeepCopyInto ¶
func (in *VirtualMachineRestoreStatus) DeepCopyInto(out *VirtualMachineRestoreStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineSnapshot ¶
type VirtualMachineSnapshot struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMachineSnapshotSpec `json:"spec"`
Status VirtualMachineSnapshotStatus `json:"status,omitempty"`
}
VirtualMachineSnapshot provides a resource for creating snapshots of virtual machines.
+kubebuilder:object:root=true +kubebuilder:metadata:labels={heritage=deckhouse,module=virtualization} +kubebuilder:subresource:status +kubebuilder:resource:categories={virtualization},scope=Namespaced,shortName={vmsnapshot,vms},singular=virtualmachinesnapshot +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="VirtualMachineSnapshot phase." +kubebuilder:printcolumn:name="Consistent",type="boolean",JSONPath=".status.consistent",description="VirtualMachineSnapshot consistency." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="VirtualMachineSnapshot age." +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineSnapshot) DeepCopy ¶
func (in *VirtualMachineSnapshot) DeepCopy() *VirtualMachineSnapshot
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineSnapshot.
func (*VirtualMachineSnapshot) DeepCopyInto ¶
func (in *VirtualMachineSnapshot) DeepCopyInto(out *VirtualMachineSnapshot)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineSnapshot) DeepCopyObject ¶
func (in *VirtualMachineSnapshot) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineSnapshotList ¶
type VirtualMachineSnapshotList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []VirtualMachineSnapshot `json:"items"`
}
VirtualMachineSnapshotList contains a list of VirtualMachineSnapshot resources. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VirtualMachineSnapshotList) DeepCopy ¶
func (in *VirtualMachineSnapshotList) DeepCopy() *VirtualMachineSnapshotList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineSnapshotList.
func (*VirtualMachineSnapshotList) DeepCopyInto ¶
func (in *VirtualMachineSnapshotList) DeepCopyInto(out *VirtualMachineSnapshotList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMachineSnapshotList) DeepCopyObject ¶
func (in *VirtualMachineSnapshotList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMachineSnapshotPhase ¶
type VirtualMachineSnapshotPhase string
VirtualMachineSnapshotPhase defines the current status of a resource:
* `Pending`: The resource has been created and is on a waiting queue. * `InProgress`: A virtual machine snapshot is being created. * `Ready`: A snapshot has been created successfully, and now it's available to use. * `Failed`: An error occurred when creating a virtual machine snapshot. * `Terminating`: The resource is being deleted.
+kubebuilder:validation:Enum={Pending,InProgress,Ready,Failed,Terminating}
const ( VirtualMachineSnapshotPhasePending VirtualMachineSnapshotPhase = "Pending" VirtualMachineSnapshotPhaseInProgress VirtualMachineSnapshotPhase = "InProgress" VirtualMachineSnapshotPhaseReady VirtualMachineSnapshotPhase = "Ready" VirtualMachineSnapshotPhaseFailed VirtualMachineSnapshotPhase = "Failed" VirtualMachineSnapshotPhaseTerminating VirtualMachineSnapshotPhase = "Terminating" )
type VirtualMachineSnapshotSpec ¶
type VirtualMachineSnapshotSpec struct {
// Name of the virtual machine to take a snapshot of.
//
// +kubebuilder:validation:MinLength=1
VirtualMachineName string `json:"virtualMachineName"`
// Create a snapshot of a virtual machine only if it is possible to freeze the machine through the agent.
//
// If set to `true`, the virtual machine snapshot will be created only in the following cases:
// - When the virtual machine is powered off.
// - When the virtual machine has an agent, and the freeze operation was successful.
//
// +kubebuilder:default:=true
RequiredConsistency bool `json:"requiredConsistency"`
// +kubebuilder:default:="Always"
KeepIPAddress KeepIPAddress `json:"keepIPAddress"`
}
func (*VirtualMachineSnapshotSpec) DeepCopy ¶
func (in *VirtualMachineSnapshotSpec) DeepCopy() *VirtualMachineSnapshotSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineSnapshotSpec.
func (*VirtualMachineSnapshotSpec) DeepCopyInto ¶
func (in *VirtualMachineSnapshotSpec) DeepCopyInto(out *VirtualMachineSnapshotSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineSnapshotStatus ¶
type VirtualMachineSnapshotStatus struct {
Phase VirtualMachineSnapshotPhase `json:"phase"`
// Whether a virtual machine snapshot is consistent.
Consistent *bool `json:"consistent,omitempty"`
// Name of the underlying `Secret` created for virtual machine snapshotting.
VirtualMachineSnapshotSecretName string `json:"virtualMachineSnapshotSecretName,omitempty"`
// List of VirtualDiskSnapshot names for the snapshots taken from the virtual disks of the associated virtual machine.
VirtualDiskSnapshotNames []string `json:"virtualDiskSnapshotNames,omitempty"`
// List of snapshot resources.
Resources []ResourceRef `json:"resources,omitempty"`
// The latest detailed observations of the VirtualMachineSnapshot resource.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Resource generation last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
func (*VirtualMachineSnapshotStatus) DeepCopy ¶
func (in *VirtualMachineSnapshotStatus) DeepCopy() *VirtualMachineSnapshotStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineSnapshotStatus.
func (*VirtualMachineSnapshotStatus) DeepCopyInto ¶
func (in *VirtualMachineSnapshotStatus) DeepCopyInto(out *VirtualMachineSnapshotStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineSpec ¶
type VirtualMachineSpec struct {
// +kubebuilder:default:="AlwaysOnUnlessStoppedManually"
RunPolicy RunPolicy `json:"runPolicy,omitempty"`
// Name for the associated `virtualMachineIPAddress` resource.
// Specified when it is necessary to use a previously created IP address of the VM.
// If not explicitly specified, by default a `virtualMachineIPAddress` resource is created for the VM with a name similar to the VM resource (`.metadata.name`).
VirtualMachineIPAddress string `json:"virtualMachineIPAddressName,omitempty"`
TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
Affinity *VMAffinity `json:"affinity,omitempty"`
// NodeSelector must match a node's labels for the VM to be scheduled on that node.
// [The same](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes//) as in the pods `spec.nodeSelector` parameter in Kubernetes.
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// PriorityClassName [The same](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/) as in the pods `spec.priorityClassName` parameter in Kubernetes.
PriorityClassName string `json:"priorityClassName,omitempty"`
// Tolerations define rules to tolerate node taints.
// The same](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) as in the pods `spec.tolerations` parameter in Kubernetes.
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// +kubebuilder:default:={"restartApprovalMode": "Manual"}
Disruptions *Disruptions `json:"disruptions,omitempty"`
// Grace period observed after signalling a VM to stop after which the VM is force terminated.
// +kubebuilder:default:=60
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
// Use the `virtio` bus to connect virtual devices of the VM. Set false to disable `virtio` for this VM.
// Note: To use paravirtualization mode, some operating systems require the appropriate drivers to be installed.
// +kubebuilder:default:=true
EnableParavirtualization bool `json:"enableParavirtualization,omitempty"`
// +kubebuilder:default:="Generic"
OsType OsType `json:"osType,omitempty"`
// +kubebuilder:default:="BIOS"
Bootloader BootloaderType `json:"bootloader,omitempty"`
// Name of the `VirtualMachineClass` resource describing the requirements for a virtual CPU, memory and the resource allocation policy and node placement policies for virtual machines.
VirtualMachineClassName string `json:"virtualMachineClassName"`
CPU CPUSpec `json:"cpu"`
Memory MemorySpec `json:"memory"`
// List of block devices that can be mounted by disks belonging to the virtual machine.
// The order of booting is determined by the order in the list.
// +kubebuilder:validation:MinItems:=1
// +kubebuilder:validation:MaxItems:=16
BlockDeviceRefs []BlockDeviceSpecRef `json:"blockDeviceRefs"`
Provisioning *Provisioning `json:"provisioning,omitempty"`
// Live migration policy type.
LiveMigrationPolicy LiveMigrationPolicy `json:"liveMigrationPolicy"`
Networks []NetworksSpec `json:"networks,omitempty"`
}
func (*VirtualMachineSpec) DeepCopy ¶
func (in *VirtualMachineSpec) DeepCopy() *VirtualMachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineSpec.
func (*VirtualMachineSpec) DeepCopyInto ¶
func (in *VirtualMachineSpec) DeepCopyInto(out *VirtualMachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineStats ¶
type VirtualMachineStats struct {
// The history of phases.
PhasesTransitions []VirtualMachinePhaseTransitionTimestamp `json:"phasesTransitions,omitempty"`
// Launch information.
LaunchTimeDuration VirtualMachineLaunchTimeDuration `json:"launchTimeDuration,omitempty"`
}
func (*VirtualMachineStats) DeepCopy ¶
func (in *VirtualMachineStats) DeepCopy() *VirtualMachineStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineStats.
func (*VirtualMachineStats) DeepCopyInto ¶
func (in *VirtualMachineStats) DeepCopyInto(out *VirtualMachineStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMachineStatus ¶
type VirtualMachineStatus struct {
Phase MachinePhase `json:"phase"`
// The name of the node on which the VM is currently running.
Node string `json:"nodeName"`
// Name of `virtualMachineIPAddressName` holding the ip address of the VirtualMachine.
VirtualMachineIPAddress string `json:"virtualMachineIPAddressName"`
// IP address of VM.
IPAddress string `json:"ipAddress"`
// The list of attached block device attachments.
BlockDeviceRefs []BlockDeviceStatusRef `json:"blockDeviceRefs,omitempty"`
GuestOSInfo virtv1.VirtualMachineInstanceGuestOSInfo `json:"guestOSInfo,omitempty"`
// Detailed state of the virtual machine lifecycle.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// VirtualMachine statistics.
Stats *VirtualMachineStats `json:"stats,omitempty"`
// Migration info.
MigrationState *VirtualMachineMigrationState `json:"migrationState,omitempty"`
// Generating a resource that was last processed by the controller.
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// RestartAwaitingChanges holds operations to be manually approved before applying to the virtual machine spec.
RestartAwaitingChanges []apiextensionsv1.JSON `json:"restartAwaitingChanges,omitempty"`
// List of virtual machine pods.
VirtualMachinePods []VirtualMachinePod `json:"virtualMachinePods,omitempty"`
// Hypervisor versions.
Versions Versions `json:"versions,omitempty"`
Resources ResourcesStatus `json:"resources,omitempty"`
Networks []NetworksStatus `json:"networks,omitempty"`
}
func (*VirtualMachineStatus) DeepCopy ¶
func (in *VirtualMachineStatus) DeepCopy() *VirtualMachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMachineStatus.
func (*VirtualMachineStatus) DeepCopyInto ¶
func (in *VirtualMachineStatus) DeepCopyInto(out *VirtualMachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WeightedVirtualMachineAndPodAffinityTerm ¶
type WeightedVirtualMachineAndPodAffinityTerm struct {
// weight associated with matching the corresponding vmAndPodAffinityTerm,
// in the range 1-100.
Weight int32 `json:"weight"`
// Required. A vm affinity term, associated with the corresponding weight.
VirtualMachineAndPodAffinityTerm VirtualMachineAndPodAffinityTerm `json:"virtualMachineAndPodAffinityTerm"`
}
func (*WeightedVirtualMachineAndPodAffinityTerm) DeepCopy ¶
func (in *WeightedVirtualMachineAndPodAffinityTerm) DeepCopy() *WeightedVirtualMachineAndPodAffinityTerm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedVirtualMachineAndPodAffinityTerm.
func (*WeightedVirtualMachineAndPodAffinityTerm) DeepCopyInto ¶
func (in *WeightedVirtualMachineAndPodAffinityTerm) DeepCopyInto(out *WeightedVirtualMachineAndPodAffinityTerm)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- block_device.go
- cluster_virtual_image.go
- data_source.go
- doc.go
- events.go
- finalizers.go
- image_status.go
- register.go
- virtual_disk.go
- virtual_disk_snapshot.go
- virtual_image.go
- virtual_machine.go
- virtual_machine_block_device_attachment.go
- virtual_machine_class.go
- virtual_machine_ip_address.go
- virtual_machine_ip_address_lease.go
- virtual_machine_mac_address.go
- virtual_machine_mac_address_lease.go
- virtual_machine_operation.go
- virtual_machine_restore.go
- virtual_machine_snapshot.go
- vmaffinity.go
- zz_generated.deepcopy.go