Skip to content

API Reference

Packages

infra.virtrigaud.io/v1beta1

Package v1beta1 contains API Schema definitions for the infra.virtrigaud.io v1beta1 API group

Resource Types

AffinityRules

AffinityRules defines affinity placement rules

Appears in: - VMPlacementPolicySpec

Field Description Default Validation
vmAffinity VMAffinity VMAffinity defines affinity rules between VMs
hostAffinity HostAffinityRule HostAffinity encourages VMs to be placed on the same host
clusterAffinity ClusterAffinityRule ClusterAffinity encourages VMs to be placed in the same cluster
datastoreAffinity DatastoreAffinityRule DatastoreAffinity encourages VMs to be placed on the same datastore
zoneAffinity ZoneAffinityRule ZoneAffinity encourages VMs to be placed in the same zone
applicationAffinity ApplicationAffinityRule ApplicationAffinity encourages VMs from the same application to be co-located

AntiAffinityRules

AntiAffinityRules defines anti-affinity placement rules

Appears in: - VMPlacementPolicySpec

Field Description Default Validation
vmAntiAffinity VMAntiAffinity VMAntiAffinity defines anti-affinity rules between VMs
hostAntiAffinity HostAntiAffinityRule HostAntiAffinity prevents VMs from being placed on the same host
clusterAntiAffinity ClusterAntiAffinityRule ClusterAntiAffinity prevents VMs from being placed in the same cluster
datastoreAntiAffinity DatastoreAntiAffinityRule DatastoreAntiAffinity prevents VMs from being placed on the same datastore
zoneAntiAffinity ZoneAntiAffinityRule ZoneAntiAffinity prevents VMs from being placed in the same zone
applicationAntiAffinity ApplicationAntiAffinityRule ApplicationAntiAffinity prevents VMs from different applications being co-located

ApplicationAffinityRule

ApplicationAffinityRule defines application affinity rules

Appears in: - AffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if application affinity is enabled
applicationLabel string ApplicationLabel specifies the label key used to identify applications app
scope string Scope defines the scope of the affinity rule Enum: [strict preferred]

ApplicationAntiAffinityRule

ApplicationAntiAffinityRule defines application anti-affinity rules

Appears in: - AntiAffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if application anti-affinity is enabled
applicationLabel string ApplicationLabel specifies the label key used to identify applications app
scope string Scope defines the scope of the anti-affinity rule Enum: [strict preferred]

BasicAuthConfig

BasicAuthConfig defines basic authentication configuration

Appears in: - HTTPAuthentication

Field Description Default Validation
secretRef LocalObjectReference SecretRef references a secret containing username and password
usernameKey string UsernameKey is the key in the secret containing the username (default: username) username
passwordKey string PasswordKey is the key in the secret containing the password (default: password) password

BearerTokenConfig

BearerTokenConfig defines bearer token authentication configuration

Appears in: - HTTPAuthentication

Field Description Default Validation
secretRef LocalObjectReference SecretRef references a secret containing the bearer token
tokenKey string TokenKey is the key in the secret containing the token (default: token) token

BridgeConfig

BridgeConfig defines bridge configuration

Appears in: - LibvirtNetworkConfig

Field Description Default Validation
name string Name is the bridge name MaxLength: 15
stp boolean STP enables Spanning Tree Protocol false
delay integer Delay is the STP forwarding delay Maximum: 30
Minimum: 0

CertificateSpec

CertificateSpec defines a certificate to install

Appears in: - VMCustomization

Field Description Default Validation
name string Name is the certificate name MaxLength: 255
data string Data contains the certificate data (PEM format)
secretRef LocalObjectReference SecretRef references a secret containing the certificate
secretKey string SecretKey is the key in the secret containing the certificate tls.crt
store string Store specifies the certificate store root Enum: [root ca my trust]

ChecksumType

Underlying type: string

ChecksumType represents the checksum algorithm

Validation: - Enum: [md5 sha1 sha256 sha512]

Appears in: - HTTPImageSource - LibvirtImageSource - VSphereImageSource

Field Description
md5 ChecksumTypeMD5 indicates MD5 checksum
sha1 ChecksumTypeSHA1 indicates SHA1 checksum
sha256 ChecksumTypeSHA256 indicates SHA256 checksum
sha512 ChecksumTypeSHA512 indicates SHA512 checksum

ClientCertConfig

ClientCertConfig defines client certificate authentication configuration

Appears in: - HTTPAuthentication

Field Description Default Validation
secretRef LocalObjectReference SecretRef references a secret containing the client certificate and key
certKey string CertKey is the key in the secret containing the certificate (default: tls.crt) tls.crt
keyKey string KeyKey is the key in the secret containing the private key (default: tls.key) tls.key

CloneMetadata

CloneMetadata contains clone operation metadata

Appears in: - VMCloneSpec

Field Description Default Validation
purpose string Purpose describes the purpose of the clone Enum: [backup testing migration development production staging]
createdBy string CreatedBy identifies who or what created the clone MaxLength: 255
project string Project identifies the project this clone belongs to MaxLength: 255
environment string Environment specifies the environment Enum: [dev staging prod test]
tags object (keys:string, values:string) Tags are key-value pairs for categorizing the clone MaxProperties: 50

CloneOptions

CloneOptions defines cloning options

Appears in: - VMCloneSpec

Field Description Default Validation
type CloneType Type specifies the clone type FullClone Enum: [FullClone LinkedClone InstantClone]
powerOn boolean PowerOn indicates whether to power on the cloned VM false
includeSnapshots boolean IncludeSnapshots indicates whether to include snapshots in the clone false
parallel boolean Parallel enables parallel disk cloning (if supported) false
timeout Duration Timeout defines the maximum time to wait for clone completion 30m
retryPolicy CloneRetryPolicy RetryPolicy defines retry behavior for failed clones
storage CloneStorageOptions Storage defines storage-specific clone options
performance ClonePerformanceOptions Performance defines performance-related clone options

ClonePerformanceOptions

ClonePerformanceOptions defines performance-related clone options

Appears in: - CloneOptions

Field Description Default Validation
priority string Priority specifies the clone operation priority Normal Enum: [Low Normal High]
ioThrottling boolean IOThrottling enables I/O throttling during clone operations false
maxIOPS integer MaxIOPS limits the maximum IOPS during clone operations Maximum: 100000
Minimum: 100
concurrentDisks integer ConcurrentDisks limits the number of disks cloned concurrently 2 Maximum: 10
Minimum: 1

ClonePhase

Underlying type: string

ClonePhase represents the phase of a clone operation

Validation: - Enum: [Pending Preparing Cloning Customizing Powering-On Ready Failed]

Appears in: - VMCloneStatus

Field Description
Pending ClonePhasePending indicates the clone is waiting to be processed
Preparing ClonePhasePreparing indicates the clone is being prepared
Cloning ClonePhaseCloning indicates the clone operation is in progress
Customizing ClonePhaseCustomizing indicates the clone is being customized
Powering-On ClonePhasePoweringOn indicates the clone is being powered on
Ready ClonePhaseReady indicates the clone is ready for use
Failed ClonePhaseFailed indicates the clone operation failed

CloneProgress

CloneProgress shows the clone operation progress

Appears in: - VMCloneStatus

Field Description Default Validation
totalDisks integer TotalDisks is the total number of disks to clone
completedDisks integer CompletedDisks is the number of disks completed
currentDisk DiskCloneProgress CurrentDisk shows progress of the current disk being cloned
overallPercentage integer OverallPercentage is the overall completion percentage (0-100) Maximum: 100
Minimum: 0
eta Duration ETA is the estimated time to completion

CloneRetryPolicy

CloneRetryPolicy defines retry behavior for failed clones

Appears in: - CloneOptions

Field Description Default Validation
maxRetries integer MaxRetries is the maximum number of retry attempts 3 Maximum: 10
Minimum: 0
retryDelay Duration RetryDelay is the delay between retry attempts 5m
backoffMultiplier integer BackoffMultiplier is the multiplier for exponential backoff 2

CloneSource

CloneSource defines the source for cloning

Appears in: - VMCloneSpec

Field Description Default Validation
vmRef LocalObjectReference VMRef references the source virtual machine to clone
snapshotRef LocalObjectReference SnapshotRef references a specific snapshot to clone from
templateRef ObjectRef TemplateRef references a VM template to clone from
imageRef ObjectRef ImageRef references a VM image to clone from

CloneStorageOptions

CloneStorageOptions defines storage-specific clone options

Appears in: - CloneOptions

Field Description Default Validation
preferThinProvisioning boolean PreferThinProvisioning prefers thin provisioning for cloned disks true
diskFormat DiskType DiskFormat specifies the preferred disk format for cloned disks Enum: [thin thick eagerzeroedthick ssd hdd nvme]
storageClass string StorageClass specifies the storage class for cloned disks MaxLength: 253
datastore string Datastore specifies the target datastore for cloned disks MaxLength: 255
folder string Folder specifies the target folder for the cloned VM MaxLength: 255
enableCompression boolean EnableCompression enables compression during clone operations false

CloneType

Underlying type: string

CloneType represents the type of clone operation

Validation: - Enum: [FullClone LinkedClone InstantClone]

Appears in: - CloneOptions - VMCloneStatus

Field Description
FullClone CloneTypeFullClone creates a full independent clone
LinkedClone CloneTypeLinkedClone creates a linked clone sharing storage with parent
InstantClone CloneTypeInstantClone creates an instant clone (if supported)

CloudInit

CloudInit defines cloud-init configuration

Appears in: - UserData

Field Description Default Validation
inline string Inline contains inline cloud-init data
secretRef LocalObjectReference SecretRef references a Secret containing cloud-init data

CloudInitMetaData

CloudInitMetaData defines cloud-init metadata configuration

Appears in: - MetaData

Field Description Default Validation
inline string Inline contains inline cloud-init metadata in YAML format
secretRef LocalObjectReference SecretRef references a Secret containing cloud-init metadata

ClusterAffinityRule

ClusterAffinityRule defines cluster affinity rules

Appears in: - AffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if cluster affinity is enabled
preferredClusters string array PreferredClusters lists preferred clusters MaxItems: 20
scope string Scope defines the scope of the affinity rule Enum: [strict preferred]

ClusterAntiAffinityRule

ClusterAntiAffinityRule defines cluster anti-affinity rules

Appears in: - AntiAffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if cluster anti-affinity is enabled
maxVMsPerCluster integer MaxVMsPerCluster limits the number of VMs per cluster Maximum: 10000
Minimum: 1
scope string Scope defines the scope of the anti-affinity rule Enum: [strict preferred]

ConnectionPooling

ConnectionPooling defines connection pooling settings

Appears in: - ProviderSpec

Field Description Default Validation
maxConnections integer MaxConnections is the maximum number of connections to maintain 10 Maximum: 100
Minimum: 1
maxIdleConnections integer MaxIdleConnections is the maximum number of idle connections 5 Minimum: 1
connectionTimeout Duration ConnectionTimeout is the timeout for establishing connections 30s
idleTimeout Duration IdleTimeout is the timeout for idle connections 5m

ContentLibraryRef

ContentLibraryRef references a vSphere content library item

Appears in: - VSphereImageSource

Field Description Default Validation
library string Library is the name of the content library MaxLength: 255
item string Item is the name of the library item MaxLength: 255
version string Version specifies the item version (optional)

CustomizationStatus

CustomizationStatus contains customization operation status

Appears in: - VMCloneStatus

Field Description Default Validation
started boolean Started indicates if customization has started
completed boolean Completed indicates if customization has completed
completedSteps string array CompletedSteps lists completed customization steps
failedSteps string array FailedSteps lists failed customization steps
currentStep string CurrentStep is the current customization step
message string Message provides customization status details

DHCPConfig

DHCPConfig defines DHCP configuration

Appears in: - IPAllocationConfig

Field Description Default Validation
clientID string ClientID specifies the DHCP client ID MaxLength: 255
hostname string Hostname specifies the hostname to request MaxLength: 255
options object (keys:string, values:string) Options contains DHCP options MaxProperties: 20

DNSConfig

DNSConfig defines DNS configuration

Appears in: - IPAllocationConfig

Field Description Default Validation
servers string array Servers contains DNS server addresses MaxItems: 10
searchDomains string array SearchDomains contains DNS search domains MaxItems: 10
options object (keys:string, values:string) Options contains DNS resolver options MaxProperties: 10

DataVolumeImageSource

DataVolumeImageSource defines DataVolume-based image configuration

Appears in: - ImageSource

Field Description Default Validation
name string Name is the name of the DataVolume MaxLength: 253
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
namespace string Namespace is the namespace of the DataVolume (defaults to image namespace) MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

DatastoreAffinityRule

DatastoreAffinityRule defines datastore affinity rules

Appears in: - AffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if datastore affinity is enabled
preferredDatastores string array PreferredDatastores lists preferred datastores MaxItems: 50
scope string Scope defines the scope of the affinity rule Enum: [strict preferred]

DatastoreAntiAffinityRule

DatastoreAntiAffinityRule defines datastore anti-affinity rules

Appears in: - AntiAffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if datastore anti-affinity is enabled
maxVMsPerDatastore integer MaxVMsPerDatastore limits the number of VMs per datastore Maximum: 10000
Minimum: 1
scope string Scope defines the scope of the anti-affinity rule Enum: [strict preferred]

DiskCloneProgress

DiskCloneProgress shows the progress of cloning a single disk

Appears in: - CloneProgress

Field Description Default Validation
name string Name is the disk name
totalBytes integer TotalBytes is the total size of the disk
completedBytes integer CompletedBytes is the number of bytes completed
percentage integer Percentage is the completion percentage (0-100) Maximum: 100
Minimum: 0
transferRate integer TransferRate is the current transfer rate in bytes per second

DiskDefaults

DiskDefaults provides default disk settings

Appears in: - VMClassSpec

Field Description Default Validation
type DiskType Type specifies the default disk type thin Enum: [thin thick eagerzeroedthick ssd hdd nvme]
size Quantity Size specifies the default root disk size 40Gi
iops integer IOPS specifies the default IOPS limit Maximum: 100000
Minimum: 100
storageClass string StorageClass specifies the default storage class MaxLength: 253

DiskSpec

DiskSpec defines a disk configuration

Appears in: - MigrationTarget - VMCloneTarget - VirtualMachineSpec

Field Description Default Validation
name string Name is the disk identifier MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
sizeGiB integer SizeGiB is the size of the disk in GiB Maximum: 65536
Minimum: 1
type string Type specifies the disk type (provider-specific) thin Enum: [thin thick eagerzeroedthick ssd hdd]
expandPolicy string ExpandPolicy defines how the disk can be expanded Offline Enum: [Online Offline]
storageClass string StorageClass specifies the storage class (optional)

DiskType

Underlying type: string

DiskType represents the type of disk provisioning

Validation: - Enum: [thin thick eagerzeroedthick ssd hdd nvme]

Appears in: - CloneStorageOptions - DiskDefaults

Field Description
thin DiskTypeThin indicates thin provisioned disks
thick DiskTypeThick indicates thick provisioned disks
eagerzeroedthick DiskTypeEagerZeroedThick indicates eager zeroed thick provisioned disks
ssd DiskTypeSSD indicates SSD storage
hdd DiskTypeHDD indicates HDD storage
nvme DiskTypeNVMe indicates NVMe storage

DistributedSwitchConfig

DistributedSwitchConfig defines distributed virtual switch configuration

Appears in: - VSphereNetworkConfig

Field Description Default Validation
name string Name is the name of the distributed switch MaxLength: 255
uuid string UUID is the UUID of the distributed switch (optional)
portgroupType string PortgroupType specifies the type of portgroup Enum: [ephemeral distributed]

DomainJoinSpec

DomainJoinSpec defines domain join configuration

Appears in: - SysprepCustomization

Field Description Default Validation
domain string Domain is the domain name to join MaxLength: 255
username string Username is the domain join username MaxLength: 255
password PasswordSpec Password is the domain join password
organizationalUnit string OrganizationalUnit specifies the OU for the computer account MaxLength: 500

EncryptionPolicy

EncryptionPolicy defines VM encryption settings

Appears in: - SecurityProfile

Field Description Default Validation
enabled boolean Enabled indicates if encryption should be used false
keyProvider string KeyProvider specifies the encryption key provider Enum: [standard hardware external]
requireEncryption boolean RequireEncryption mandates encryption (fails if not available) false

ExecAction

ExecAction describes a command to be executed

Appears in: - LifecycleHandler

Field Description Default Validation
command string array Command is the command line to execute MinItems: 1

FirewallConfig

FirewallConfig defines firewall configuration

Appears in: - NetworkSecurityConfig

Field Description Default Validation
enabled boolean Enabled indicates if firewall is enabled false
defaultPolicy string DefaultPolicy specifies the default firewall policy ACCEPT Enum: [ACCEPT DROP REJECT]
rules FirewallRule array Rules contains firewall rules MaxItems: 100

FirewallRule

FirewallRule defines a firewall rule

Appears in: - FirewallConfig

Field Description Default Validation
name string Name is the rule name MaxLength: 255
action string Action specifies the rule action Enum: [ACCEPT DROP REJECT]
direction string Direction specifies the traffic direction Enum: [in out inout]
protocol string Protocol specifies the protocol Enum: [tcp udp icmp all]
sourceCIDR string SourceCIDR specifies the source CIDR
destinationCIDR string DestinationCIDR specifies the destination CIDR
ports PortRange Ports specifies the port range
priority integer Priority specifies the rule priority Maximum: 1000
Minimum: 1

FirmwareType

Underlying type: string

FirmwareType represents the firmware type for VMs

Validation: - Enum: [BIOS UEFI EFI]

Appears in: - VMClassSpec

Field Description
BIOS FirmwareTypeBIOS indicates BIOS firmware
UEFI FirmwareTypeUEFI indicates UEFI firmware
EFI FirmwareTypeEFI indicates EFI firmware (alias for UEFI)

GPUConfig

GPUConfig defines GPU configuration for a VM

Appears in: - VirtualMachineResources

Field Description Default Validation
count integer Count specifies the number of GPUs to assign Maximum: 8
Minimum: 1
type string Type specifies the GPU type (provider-specific) Pattern: ^[a-zA-Z0-9-_]+$
memory integer Memory specifies GPU memory in MiB Minimum: 512

GuestCommand

GuestCommand defines a command to run in the guest OS

Appears in: - VMCustomization

Field Description Default Validation
command string Command is the command to execute MaxLength: 1000
arguments string array Arguments contains command arguments MaxItems: 20
workingDirectory string WorkingDirectory specifies the working directory MaxLength: 500
runAsUser string RunAsUser specifies the user to run the command as MaxLength: 255
timeout Duration Timeout specifies the command timeout 5m
stage string Stage specifies when to run the command post-customization Enum: [pre-customization post-customization first-boot]

GuestToolsPolicy

Underlying type: string

GuestToolsPolicy represents the guest tools installation policy

Validation: - Enum: [install skip upgrade uninstall]

Appears in: - VMClassSpec

Field Description
install GuestToolsPolicyInstall installs guest tools if not present
skip GuestToolsPolicySkip skips guest tools installation
upgrade GuestToolsPolicyUpgrade upgrades guest tools if present
uninstall GuestToolsPolicyUninstall removes guest tools if present

HTTPAuthentication

HTTPAuthentication defines HTTP authentication options

Appears in: - HTTPImageSource

Field Description Default Validation
basicAuth BasicAuthConfig BasicAuth contains basic authentication configuration
bearer BearerTokenConfig Bearer contains bearer token authentication
clientCert ClientCertConfig ClientCert contains client certificate authentication

HTTPGetAction

HTTPGetAction describes an HTTP GET request

Appears in: - LifecycleHandler

Field Description Default Validation
path string Path is the HTTP path to access
port integer Port is the port to access Maximum: 65535
Minimum: 1
host string Host name to connect to (defaults to VM IP)
scheme string Scheme to use for connecting (HTTP or HTTPS) HTTP Enum: [HTTP HTTPS]

HTTPImageSource

HTTPImageSource defines HTTP/HTTPS download configuration

Appears in: - ImageSource

Field Description Default Validation
url string URL is the HTTP/HTTPS URL to download the image Pattern: ^https?://.*
headers object (keys:string, values:string) Headers contains HTTP headers to include in the request MaxProperties: 20
checksum string Checksum provides expected checksum for verification
checksumType ChecksumType ChecksumType specifies the checksum algorithm sha256 Enum: [md5 sha1 sha256 sha512]
authentication HTTPAuthentication Authentication contains authentication configuration
timeout Duration Timeout specifies the download timeout 30m

HostAffinityRule

HostAffinityRule defines host affinity rules

Appears in: - AffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if host affinity is enabled
preferredHosts string array PreferredHosts lists preferred hosts MaxItems: 50
scope string Scope defines the scope of the affinity rule Enum: [strict preferred]

HostAntiAffinityRule

HostAntiAffinityRule defines host anti-affinity rules

Appears in: - AntiAffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if host anti-affinity is enabled
maxVMsPerHost integer MaxVMsPerHost limits the number of VMs per host Maximum: 1000
Minimum: 1
scope string Scope defines the scope of the anti-affinity rule Enum: [strict preferred]

IPAllocation

IPAllocation represents an IP allocation

Appears in: - VMNetworkAttachmentStatus

Field Description Default Validation
vm string VM is the VM name that has the IP allocated
ip string IP is the allocated IP address
mac string MAC is the allocated MAC address
allocatedAt Time AllocatedAt is when the IP was allocated
leaseExpiry Time LeaseExpiry is when the IP lease expires (for DHCP)

IPAllocationConfig

IPAllocationConfig defines IP address allocation settings

Appears in: - VMNetworkAttachmentSpec

Field Description Default Validation
type IPAllocationType Type specifies the IP allocation type DHCP Enum: [DHCP Static Pool None]
staticConfig StaticIPConfig StaticConfig contains static IP configuration
poolConfig IPPoolConfig PoolConfig contains IP pool configuration
dhcpConfig DHCPConfig DHCPConfig contains DHCP configuration
dnsConfig DNSConfig DNSConfig contains DNS configuration

IPAllocationType

Underlying type: string

IPAllocationType represents the type of IP allocation

Validation: - Enum: [DHCP Static Pool None]

Appears in: - IPAllocationConfig

Field Description
DHCP IPAllocationTypeDHCP uses DHCP for IP allocation
Static IPAllocationTypeStatic uses static IP allocation
Pool IPAllocationTypePool uses an IP pool for allocation
None IPAllocationTypeNone disables IP allocation

IPPoolConfig

IPPoolConfig defines IP pool configuration

Appears in: - IPAllocationConfig

Field Description Default Validation
poolRef LocalObjectReference PoolRef references an IP pool resource
preferredIP string PreferredIP requests a preferred IP from the pool Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$

Ignition

Ignition defines Ignition configuration

Appears in: - UserData

Field Description Default Validation
inline string Inline contains inline Ignition data
secretRef LocalObjectReference SecretRef references a Secret containing Ignition data

ImageFormat

Underlying type: string

ImageFormat represents the format of a VM image

Validation: - Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]

Appears in: - ImageOptimization - LibvirtImageSource - RegistryImageSource - StoragePrepareOptions - VMImageStatus

Field Description
qcow2 ImageFormatQCOW2 indicates QEMU QCOW2 format
raw ImageFormatRaw indicates raw disk format
vmdk ImageFormatVMDK indicates VMware VMDK format
vhd ImageFormatVHD indicates Microsoft VHD format
vhdx ImageFormatVHDX indicates Microsoft VHDX format
iso ImageFormatISO indicates ISO format
ova ImageFormatOVA indicates OVA format
ovf ImageFormatOVF indicates OVF format

ImageImportProgress

ImageImportProgress tracks the progress of image import operations

Appears in: - VMImageStatus

Field Description Default Validation
totalBytes integer TotalBytes is the total size of the image being imported
transferredBytes integer TransferredBytes is the number of bytes transferred so far
percentage integer Percentage is the completion percentage (0-100) Maximum: 100
Minimum: 0
transferRate integer TransferRate is the current transfer rate in bytes per second
eta Duration ETA is the estimated time to completion
startTime Time StartTime is when the import started

ImageMetadata

ImageMetadata contains image metadata and annotations

Appears in: - VMImageSpec

Field Description Default Validation
displayName string DisplayName is a human-readable name for the image MaxLength: 255
description string Description provides a description of the image MaxLength: 1024
version string Version specifies the image version MaxLength: 100
architecture string Architecture specifies the CPU architecture amd64 Enum: [amd64 arm64 x86_64 aarch64]
tags object (keys:string, values:string) Tags are key-value pairs for categorizing the image MaxProperties: 50
annotations object (keys:string, values:string) Annotations are additional metadata annotations MaxProperties: 50

ImageMissingAction

Underlying type: string

ImageMissingAction defines actions to take when an image is missing

Validation: - Enum: [Import Fail Wait]

Appears in: - ImagePrepare

Field Description
Import ImageMissingActionImport imports the missing image
Fail ImageMissingActionFail fails when the image is missing
Wait ImageMissingActionWait waits for the image to become available

ImageOptimization

ImageOptimization defines image optimization options

Appears in: - ImagePrepare

Field Description Default Validation
enableCompression boolean EnableCompression enables image compression false
removeUnusedSpace boolean RemoveUnusedSpace removes unused space from the image false
convertFormat ImageFormat ConvertFormat converts the image to a more optimal format Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]
enableDeltaSync boolean EnableDeltaSync enables delta synchronization for updates false

ImagePhase

Underlying type: string

ImagePhase represents the phase of image preparation

Validation: - Enum: [Pending Downloading Importing Converting Optimizing Ready Failed]

Appears in: - VMImageStatus

Field Description
Pending ImagePhasePending indicates the image is waiting to be processed
Downloading ImagePhaseDownloading indicates the image is being downloaded
Importing ImagePhaseImporting indicates the image is being imported
Converting ImagePhaseConverting indicates the image is being converted
Optimizing ImagePhaseOptimizing indicates the image is being optimized
Ready ImagePhaseReady indicates the image is ready for use
Failed ImagePhaseFailed indicates the image preparation failed

ImagePrepare

ImagePrepare defines optional image preparation steps

Appears in: - VMImageSpec

Field Description Default Validation
onMissing ImageMissingAction OnMissing defines the action to take when image is missing Import Enum: [Import Fail Wait]
validateChecksum boolean ValidateChecksum validates the image checksum true
timeout Duration Timeout defines the maximum time to wait for preparation 30m
retries integer Retries defines the number of retry attempts for failed operations 3 Maximum: 10
Minimum: 0
force boolean Force forces re-import even if image exists
storage StoragePrepareOptions Storage defines storage-specific preparation options
optimization ImageOptimization Optimization defines image optimization options

ImageSource

ImageSource defines the source of the VM image

Appears in: - VMImageSpec

Field Description Default Validation
vsphere VSphereImageSource VSphere contains vSphere-specific image configuration
libvirt LibvirtImageSource Libvirt contains Libvirt-specific image configuration
http HTTPImageSource HTTP contains HTTP/HTTPS download configuration
registry RegistryImageSource Registry contains container registry image configuration
dataVolume DataVolumeImageSource DataVolume contains DataVolume-based image configuration
proxmox ProxmoxImageSource Proxmox contains Proxmox VE-specific image configuration

ImportedDiskRef

ImportedDiskRef references a disk that was imported via migration or other means. This allows VMs to be created from pre-existing disk images rather than templates.

Appears in: - VirtualMachineSpec

Field Description Default Validation
diskID string DiskID is the provider-specific disk identifier.
For libvirt, this is typically the volume name.
MaxLength: 253
MinLength: 1
Required: {}
path string Path is the optional disk path on the provider (e.g., /var/lib/libvirt/images/disk.qcow2).
If not specified, the provider will determine the path based on DiskID.
format string Format specifies the disk format (qcow2, vmdk, raw, etc.). qcow2 Enum: [qcow2 vmdk raw vdi vhdx]
source string Source indicates where the disk came from. Enum: [migration clone import snapshot manual]
migrationRef LocalObjectReference MigrationRef references the VMMigration that imported this disk.
This provides traceability and audit trail for migrated disks.
sizeGiB integer SizeGiB specifies the expected disk size in GiB.
Used for validation and capacity planning.
Minimum: 1

KernelInfo

KernelInfo contains kernel information

Appears in: - OSDistribution

Field Description Default Validation
version string Version is the kernel version
type string Type is the kernel type Enum: [linux windows freebsd other]

LibvirtImageSource

LibvirtImageSource defines Libvirt-specific image configuration

Appears in: - ImageSource

Field Description Default Validation
path string Path specifies the path to the image file on the host
url string URL provides a URL to download the image Pattern: ^(https?\|ftp)://.*
format ImageFormat Format specifies the image format qcow2 Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]
checksum string Checksum provides expected checksum for verification
checksumType ChecksumType ChecksumType specifies the checksum algorithm sha256 Enum: [md5 sha1 sha256 sha512]
storagePool string StoragePool specifies the libvirt storage pool MaxLength: 255

LibvirtNetworkConfig

LibvirtNetworkConfig defines Libvirt-specific network configuration

Appears in: - NetworkConfig

Field Description Default Validation
networkName string NetworkName specifies the Libvirt network name MaxLength: 255
bridge BridgeConfig Bridge specifies the bridge configuration
model string Model specifies the network device model virtio Enum: [virtio e1000 e1000e rtl8139 pcnet ne2k_pci]
driver NetworkDriverConfig Driver specifies the network driver configuration
filterRef NetworkFilterRef FilterRef specifies network filter configuration

LibvirtStorageOptions

LibvirtStorageOptions defines Libvirt storage preparation options

Appears in: - StoragePrepareOptions

Field Description Default Validation
storagePool string StoragePool specifies the target storage pool for import MaxLength: 255
allocationPolicy string AllocationPolicy defines how storage is allocated Enum: [eager lazy]
preallocation string Preallocation specifies preallocation mode Enum: [off metadata falloc full]

LifecycleHandler

LifecycleHandler defines a specific action that should be taken

Appears in: - VirtualMachineLifecycle

Field Description Default Validation
exec ExecAction Exec specifies a command to execute
httpGet HTTPGetAction HTTPGet specifies an HTTP GET request
snapshot SnapshotAction Snapshot specifies a snapshot to create

LocalObjectReference

LocalObjectReference represents a reference to an object in the same namespace

Appears in: - BasicAuthConfig - BearerTokenConfig - CertificateSpec - ClientCertConfig - CloneSource - CloudInit - CloudInitMetaData - IPPoolConfig - Ignition - ImportedDiskRef - MigrationSource - MigrationTarget - NetworkEncryptionConfig - PasswordSpec - RegistryImageSource - SnapshotEncryption - VMCloneStatus - VMCloneTarget - VMMigrationStatus - VMPlacementPolicyStatus - VMSnapshotOperation - VMSnapshotSpec - VSphereImageSource - VirtualMachineSpec

Field Description Default Validation
name string Name of the referenced object MaxLength: 253
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

MetaData

MetaData defines cloud-init metadata configuration

Appears in: - VirtualMachineSpec

Field Description Default Validation
cloudInit CloudInitMetaData CloudInit contains cloud-init metadata configuration

MigrationDiskInfo

MigrationDiskInfo contains information about the migrated disk

Appears in: - VMMigrationStatus

Field Description Default Validation
sourceDiskID string SourceDiskID is the source disk identifier
sourceFormat string SourceFormat is the source disk format
sourceSize Quantity SourceSize is the source disk size in bytes
targetDiskID string TargetDiskID is the target disk identifier
targetFormat string TargetFormat is the target disk format
targetSize Quantity TargetSize is the target disk size in bytes
checksum string Checksum is the SHA256 checksum of the disk
sourceChecksum string SourceChecksum is the SHA256 checksum of the source disk
targetChecksum string TargetChecksum is the SHA256 checksum of the target disk

MigrationMetadata

MigrationMetadata contains migration metadata

Appears in: - VMMigrationSpec

Field Description Default Validation
purpose string Purpose describes the purpose of the migration Enum: [disaster-recovery cloud-migration provider-change testing maintenance]
createdBy string CreatedBy identifies who or what created the migration MaxLength: 255
project string Project identifies the project this migration belongs to MaxLength: 255
environment string Environment specifies the environment Enum: [dev staging prod test]
tags object (keys:string, values:string) Tags are key-value pairs for categorizing the migration MaxProperties: 50

MigrationOptions

MigrationOptions defines migration options

Appears in: - VMMigrationSpec

Field Description Default Validation
diskFormat string DiskFormat specifies the desired disk format for the target Enum: [qcow2 vmdk raw]
compress boolean Compress enables compression during transfer false
verifyChecksums boolean VerifyChecksums enables checksum verification true
timeout Duration Timeout defines the maximum time for the entire migration 4h
retryPolicy MigrationRetryPolicy RetryPolicy defines retry behavior for failed operations
cleanupPolicy string CleanupPolicy defines cleanup behavior OnSuccess Enum: [Always OnSuccess Never]
validationChecks ValidationChecks ValidationChecks defines validation checks to perform

MigrationPhase

Underlying type: string

MigrationPhase represents the phase of a migration operation

Validation: - Enum: [Pending Validating Snapshotting Exporting Transferring Converting Importing Creating Validating-Target Ready Failed]

Appears in: - MigrationProgress - VMMigrationStatus

Field Description
Pending MigrationPhasePending indicates the migration is waiting to be processed
Validating MigrationPhaseValidating indicates the migration is being validated
Snapshotting MigrationPhaseSnapshotting indicates a snapshot is being created
Exporting MigrationPhaseExporting indicates the disk is being exported
Transferring MigrationPhaseTransferring indicates the disk is being transferred
Converting MigrationPhaseConverting indicates the disk format is being converted
Importing MigrationPhaseImporting indicates the disk is being imported
Creating MigrationPhaseCreating indicates the target VM is being created
Validating-Target MigrationPhaseValidatingTarget indicates the target VM is being validated
Ready MigrationPhaseReady indicates the migration is complete
Failed MigrationPhaseFailed indicates the migration failed

MigrationProgress

MigrationProgress shows the migration operation progress

Appears in: - VMMigrationStatus

Field Description Default Validation
currentPhase MigrationPhase CurrentPhase is the current phase being executed Enum: [Pending Validating Snapshotting Exporting Transferring Converting Importing Creating Validating-Target Ready Failed]
totalBytes integer TotalBytes is the total bytes to transfer
transferredBytes integer TransferredBytes is the bytes transferred so far
percentage integer Percentage is the overall completion percentage (0-100) Maximum: 100
Minimum: 0
eta Duration ETA is the estimated time to completion
transferRate integer TransferRate is the current transfer rate in bytes per second
phaseStartTime Time PhaseStartTime is when the current phase started

MigrationRetryPolicy

MigrationRetryPolicy defines retry behavior for failed operations

Appears in: - MigrationOptions

Field Description Default Validation
maxRetries integer MaxRetries is the maximum number of retry attempts 3 Maximum: 10
Minimum: 0
retryDelay Duration RetryDelay is the delay between retry attempts 5m
backoffMultiplier integer BackoffMultiplier is the multiplier for exponential backoff 2 Maximum: 10
Minimum: 1

MigrationSource

MigrationSource defines the source VM for migration

Appears in: - VMMigrationSpec

Field Description Default Validation
vmRef LocalObjectReference VMRef references the source virtual machine
providerRef ObjectRef ProviderRef explicitly specifies the source provider (optional, auto-detected from VM)
snapshotRef LocalObjectReference SnapshotRef references a specific snapshot to migrate from
createSnapshot boolean CreateSnapshot indicates whether to create a snapshot before migration true
powerOffBeforeMigration boolean PowerOffBeforeMigration ensures VM is powered off before migration false
deleteAfterMigration boolean DeleteAfterMigration deletes source VM after successful migration false

MigrationStorage

MigrationStorage defines storage backend configuration

Appears in: - VMMigrationSpec

Field Description Default Validation
type string Type specifies the storage backend type pvc Enum: [pvc]
pvc PVCStorageConfig PVC specifies PVC-based storage configuration

MigrationStorageInfo

MigrationStorageInfo contains information about intermediate storage

Appears in: - VMMigrationStatus

Field Description Default Validation
url string URL is the intermediate storage URL
size Quantity Size is the size of data in intermediate storage
uploadedAt Time UploadedAt is when the data was uploaded
cleanedUp boolean CleanedUp indicates if intermediate storage was cleaned up

MigrationTarget

MigrationTarget defines the target provider and VM configuration

Appears in: - VMMigrationSpec

Field Description Default Validation
name string Name is the name for the target VM MaxLength: 253
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
namespace string Namespace is the namespace for the target VM (defaults to source namespace) MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
providerRef ObjectRef ProviderRef references the target provider
classRef LocalObjectReference ClassRef references the VM class for resource allocation
imageRef LocalObjectReference ImageRef references the VM image (usually not needed for migration)
networks VMNetworkRef array Networks defines network configuration for target VM MaxItems: 10
disks DiskSpec array Disks defines disk configuration overrides MaxItems: 20
placementRef LocalObjectReference PlacementRef references placement policy for the target VM
powerOn boolean PowerOn indicates whether to power on the target VM after migration false
labels object (keys:string, values:string) Labels defines labels to apply to the target VM MaxProperties: 50
annotations object (keys:string, values:string) Annotations defines annotations to apply to the target VM MaxProperties: 50

NetworkAttachmentPhase

Underlying type: string

NetworkAttachmentPhase represents the phase of network attachment

Validation: - Enum: [Pending Configuring Ready Failed]

Appears in: - VMNetworkAttachmentStatus

Field Description
Pending NetworkAttachmentPhasePending indicates the network is being prepared
Configuring NetworkAttachmentPhaseConfiguring indicates the network is being configured
Ready NetworkAttachmentPhaseReady indicates the network is ready
Failed NetworkAttachmentPhaseFailed indicates the network configuration failed

NetworkConfig

NetworkConfig defines the underlying network configuration

Appears in: - VMNetworkAttachmentSpec

Field Description Default Validation
vsphere VSphereNetworkConfig VSphere contains vSphere-specific network configuration
libvirt LibvirtNetworkConfig Libvirt contains Libvirt-specific network configuration
proxmox ProxmoxNetworkConfig Proxmox contains Proxmox VE-specific network configuration
type NetworkType Type specifies the network type bridged Enum: [bridged nat isolated host-only external]
mtu integer MTU specifies the Maximum Transmission Unit 1500 Maximum: 9000
Minimum: 68

NetworkCustomization

NetworkCustomization defines network-specific customization

Appears in: - VMCustomization

Field Description Default Validation
name string Name identifies the network to customize MaxLength: 255
ipAddress string IPAddress sets a static IP address Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
subnetMask string SubnetMask sets the subnet mask Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
gateway string Gateway sets the network gateway Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
dns string array DNS sets DNS servers MaxItems: 5
macAddress string MACAddress sets a custom MAC address Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$
dhcp boolean DHCP enables DHCP for this network

NetworkDriverConfig

NetworkDriverConfig defines network driver configuration

Appears in: - LibvirtNetworkConfig

Field Description Default Validation
name string Name is the driver name Enum: [kvm vfio uio]
queues integer Queues specifies the number of queues Maximum: 16
Minimum: 1
txMode string TxMode specifies the TX mode Enum: [iothread timer]
ioEventFD boolean IOEventFD enables IO event file descriptor
eventIDX boolean EventIDX enables event index

NetworkEncryptionConfig

NetworkEncryptionConfig defines network encryption settings

Appears in: - NetworkSecurityConfig

Field Description Default Validation
enabled boolean Enabled indicates if encryption is enabled false
protocol string Protocol specifies the encryption protocol Enum: [ipsec wireguard openvpn]
keyRef LocalObjectReference KeyRef references encryption keys

NetworkFilterRef

NetworkFilterRef references a network filter

Appears in: - LibvirtNetworkConfig

Field Description Default Validation
filter string Filter is the filter name MaxLength: 255
parameters object (keys:string, values:string) Parameters contains filter parameters MaxProperties: 20

NetworkIsolationConfig

NetworkIsolationConfig defines network isolation settings

Appears in: - NetworkSecurityConfig

Field Description Default Validation
mode string Mode specifies the isolation mode Enum: [none strict custom]
allowedNetworks string array AllowedNetworks contains allowed network CIDRs MaxItems: 50
deniedNetworks string array DeniedNetworks contains denied network CIDRs MaxItems: 50

NetworkMetadata

NetworkMetadata contains network metadata and labels

Appears in: - VMNetworkAttachmentSpec

Field Description Default Validation
displayName string DisplayName is a human-readable name MaxLength: 255
description string Description provides a description MaxLength: 1024
environment string Environment specifies the environment (dev, staging, prod) Enum: [dev staging prod test]
tags object (keys:string, values:string) Tags are key-value pairs for categorizing MaxProperties: 50

NetworkQoSConfig

NetworkQoSConfig defines Quality of Service settings

Appears in: - VMNetworkAttachmentSpec

Field Description Default Validation
ingressLimit integer IngressLimit limits inbound traffic in bits per second Minimum: 1000
egressLimit integer EgressLimit limits outbound traffic in bits per second Minimum: 1000
priority integer Priority specifies traffic priority Maximum: 7
Minimum: 0
dscp integer DSCP specifies DSCP marking Maximum: 63
Minimum: 0

NetworkSecurityConfig

NetworkSecurityConfig defines network security settings

Appears in: - VMNetworkAttachmentSpec

Field Description Default Validation
firewall FirewallConfig Firewall contains firewall configuration
isolation NetworkIsolationConfig Isolation contains network isolation settings
encryption NetworkEncryptionConfig Encryption contains network encryption settings

NetworkType

Underlying type: string

NetworkType represents the type of network

Validation: - Enum: [bridged nat isolated host-only external]

Appears in: - NetworkConfig

Field Description
bridged NetworkTypeBridged indicates a bridged network
nat NetworkTypeNAT indicates a NAT network
isolated NetworkTypeIsolated indicates an isolated network
host-only NetworkTypeHostOnly indicates a host-only network
external NetworkTypeExternal indicates an external network

NetworkUsageStats

NetworkUsageStats represents network usage statistics

Appears in: - ProviderResourceUsage

Field Description Default Validation
bytesReceived integer BytesReceived is the total bytes received
bytesSent integer BytesSent is the total bytes sent
packetsReceived integer PacketsReceived is the total packets received
packetsSent integer PacketsSent is the total packets sent

OSDistribution

OSDistribution contains OS distribution information

Appears in: - VMImageSpec

Field Description Default Validation
name string Name is the OS distribution name Enum: [ubuntu centos rhel fedora debian suse windows freebsd coreos other]
version string Version is the distribution version MaxLength: 100
variant string Variant is the distribution variant (e.g., server, desktop) MaxLength: 100
family string Family is the OS family Enum: [linux windows bsd other]
kernel KernelInfo Kernel specifies kernel information

ObjectRef

ObjectRef represents a reference to another object

Appears in: - CloneSource - MigrationSource - MigrationTarget - ProviderSpec - VMCloneTarget - VMNetworkRef - VirtualMachineSpec

Field Description Default Validation
name string Name of the referenced object MaxLength: 253
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
namespace string Namespace of the referenced object (defaults to current namespace) MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

PVCStorageConfig

PVCStorageConfig defines PVC storage configuration

Appears in: - MigrationStorage

Field Description Default Validation
name string Name of an existing PVC to use for migration storage
If not specified, a temporary PVC will be created
storageClassName string StorageClassName for auto-created PVC
Required if Name is not specified
size string Size for auto-created PVC (e.g., "100Gi")
Required if Name is not specified
Pattern: ^[0-9]+(\.[0-9]+)?(Ei?\|Pi?\|Ti?\|Gi?\|Mi?\|Ki?)$
accessMode string AccessMode for auto-created PVC ReadWriteMany Enum: [ReadWriteOnce ReadWriteMany ReadOnlyMany]
mountPath string MountPath within pods where PVC is mounted /mnt/migration-storage

PasswordSpec

PasswordSpec defines password configuration

Appears in: - DomainJoinSpec - SysprepCustomization

Field Description Default Validation
value string Value is the plaintext password (not recommended for production)
secretRef LocalObjectReference SecretRef references a secret containing the password
secretKey string SecretKey is the key in the secret containing the password password

PerformanceProfile

PerformanceProfile defines performance-related settings

Appears in: - VMClassSpec

Field Description Default Validation
latencySensitivity string LatencySensitivity configures latency sensitivity normal Enum: [low normal high]
cpuHotAddEnabled boolean CPUHotAddEnabled allows adding CPUs while VM is running false
memoryHotAddEnabled boolean MemoryHotAddEnabled allows adding memory while VM is running false
virtualizationBasedSecurity boolean VirtualizationBasedSecurity enables VBS features false
nestedVirtualization boolean NestedVirtualization enables nested virtualization false
hyperThreadingPolicy string HyperThreadingPolicy controls hyperthreading usage auto Enum: [auto prefer avoid require]

PersistentVolumeClaimRetentionPolicyType

Underlying type: string

PersistentVolumeClaimRetentionPolicyType defines the retention policy type

Validation: - Enum: [Retain Delete]

Appears in: - VMSetPersistentVolumeClaimRetentionPolicy

Field Description
Retain RetainPersistentVolumeClaimRetentionPolicyType retains PVCs
Delete DeletePersistentVolumeClaimRetentionPolicyType deletes PVCs

PersistentVolumeClaimTemplate

PersistentVolumeClaimTemplate describes a PVC template for VMSet VMs

Appears in: - VMSetSpec

Field Description Default Validation
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec PersistentVolumeClaimSpec Spec is the desired characteristics of the volume

Placement

Placement provides hints for VM placement

Appears in: - VirtualMachineSpec

Field Description Default Validation
cluster string Cluster specifies the target cluster
host string Host specifies the target host
datastore string Datastore specifies the target datastore
folder string Folder specifies the target folder
resourcePool string ResourcePool specifies the target resource pool

PlacementConstraints

PlacementConstraints defines resource placement constraints

Appears in: - VMPlacementPolicySpec

Field Description Default Validation
clusters string array Clusters specifies allowed clusters for VM placement MaxItems: 50
datastores string array Datastores specifies allowed datastores for VM placement MaxItems: 100
hosts string array Hosts specifies allowed hosts for VM placement MaxItems: 200
folders string array Folders specifies allowed folders for VM placement MaxItems: 50
resourcePools string array ResourcePools specifies allowed resource pools for VM placement MaxItems: 100
networks string array Networks specifies allowed networks for VM placement MaxItems: 50
zones string array Zones specifies allowed availability zones MaxItems: 20
regions string array Regions specifies allowed regions MaxItems: 20
nodeSelector object (keys:string, values:string) NodeSelector specifies node selection criteria for libvirt provider MaxProperties: 20
tolerations VMToleration array Tolerations specifies tolerations for node placement MaxItems: 20
excludedClusters string array ExcludedClusters specifies clusters to exclude from placement MaxItems: 50
excludedHosts string array ExcludedHosts specifies hosts to exclude from placement MaxItems: 200
excludedDatastores string array ExcludedDatastores specifies datastores to exclude from placement MaxItems: 100

PlacementStatistics

PlacementStatistics provides statistics about VM placements

Appears in: - VMPlacementPolicyStatus

Field Description Default Validation
totalPlacements integer TotalPlacements is the total number of VM placements using this policy
successfulPlacements integer SuccessfulPlacements is the number of successful placements
failedPlacements integer FailedPlacements is the number of failed placements
averagePlacementTime Duration AveragePlacementTime is the average time for VM placement
constraintViolations integer ConstraintViolations is the number of constraint violations
lastPlacementTime Time LastPlacementTime is when the last VM was placed using this policy
placementDistribution object (keys:string, values:integer) PlacementDistribution shows how VMs are distributed across hosts/clusters

PolicyConflict

PolicyConflict represents a conflict between policies

Appears in: - VMPlacementPolicyStatus

Field Description Default Validation
policyName string PolicyName is the name of the conflicting policy
conflictType string ConflictType describes the type of conflict Enum: [hard soft resource security affinity]
description string Description provides details about the conflict
severity string Severity indicates the severity of the conflict Enum: [low medium high critical]
resolutionSuggestion string ResolutionSuggestion provides suggestions for resolving the conflict

PolicyValidationResult

PolicyValidationResult represents a validation result for a provider

Appears in: - VMPlacementPolicyStatus

Field Description Default Validation
valid boolean Valid indicates if the policy is valid for the provider
message string Message provides details about the validation result
warnings string array Warnings lists any validation warnings MaxItems: 20
errors string array Errors lists any validation errors MaxItems: 20
supportedFeatures string array SupportedFeatures lists features supported by the provider MaxItems: 50
unsupportedFeatures string array UnsupportedFeatures lists features not supported by the provider MaxItems: 50
lastValidated Time LastValidated is when this validation was last performed

PortRange

PortRange defines a port range

Appears in: - FirewallRule

Field Description Default Validation
start integer Start is the starting port Maximum: 65535
Minimum: 1
end integer End is the ending port (optional, defaults to start) Maximum: 65535
Minimum: 1

PortgroupSecurityConfig

PortgroupSecurityConfig defines portgroup security settings

Appears in: - VSphereNetworkConfig

Field Description Default Validation
allowPromiscuous boolean AllowPromiscuous allows promiscuous mode false
allowMACChanges boolean AllowMACChanges allows MAC address changes true
allowForgedTransmits boolean AllowForgedTransmits allows forged transmits true

PowerState

Underlying type: string

PowerState represents the desired power state of a VM

Validation: - Enum: [On Off OffGraceful]

Appears in: - VirtualMachineSpec - VirtualMachineStatus

Field Description
On PowerStateOn indicates the VM should be powered on
Off PowerStateOff indicates the VM should be powered off
OffGraceful PowerStateOffGraceful indicates the VM should be gracefully shut down

Provider

Provider is the Schema for the providers API

Appears in: - ProviderList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string Provider
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ProviderSpec
status ProviderStatus

ProviderAdoptionStatus

ProviderAdoptionStatus tracks VM adoption progress

Appears in: - ProviderStatus

Field Description Default Validation
lastDiscoveryTime Time LastDiscoveryTime is when VMs were last discovered
discoveredVMs integer DiscoveredVMs is the count of VMs found in provider
adoptedVMs integer AdoptedVMs is the count of VMs successfully adopted
failedAdoptions integer FailedAdoptions is the count of failed adoption attempts
message string Message provides details about adoption status

ProviderCapability

Underlying type: string

ProviderCapability represents a provider capability

Validation: - Enum: [VirtualMachines Snapshots Cloning LiveMigration ConsoleAccess DiskManagement NetworkManagement GPUPassthrough HighAvailability Backup Templates]

Appears in: - ProviderStatus

Field Description
VirtualMachines ProviderCapabilityVirtualMachines indicates basic VM management
Snapshots ProviderCapabilitySnapshots indicates snapshot support
Cloning ProviderCapabilityCloning indicates VM cloning support
LiveMigration ProviderCapabilityLiveMigration indicates live migration support
ConsoleAccess ProviderCapabilityConsoleAccess indicates console access support
DiskManagement ProviderCapabilityDiskManagement indicates disk management support
NetworkManagement ProviderCapabilityNetworkManagement indicates network management support
GPUPassthrough ProviderCapabilityGPUPassthrough indicates GPU passthrough support
HighAvailability ProviderCapabilityHighAvailability indicates HA support
Backup ProviderCapabilityBackup indicates backup support
Templates ProviderCapabilityTemplates indicates template management support

ProviderDefaults

ProviderDefaults provides default settings for VMs

Appears in: - ProviderSpec

Field Description Default Validation
datastore string Datastore specifies the default datastore MaxLength: 255
cluster string Cluster specifies the default cluster MaxLength: 255
folder string Folder specifies the default folder MaxLength: 255
resourcePool string ResourcePool specifies the default resource pool MaxLength: 255
network string Network specifies the default network MaxLength: 255

ProviderHealthCheck

ProviderHealthCheck defines health checking configuration

Appears in: - ProviderSpec

Field Description Default Validation
enabled boolean Enabled indicates whether health checking is enabled true
interval Duration Interval defines how often to check provider health 30s
timeout Duration Timeout defines the timeout for health checks 10s
failureThreshold integer FailureThreshold is the number of consecutive failures before marking unhealthy 3 Maximum: 10
Minimum: 1
successThreshold integer SuccessThreshold is the number of consecutive successes before marking healthy 1 Maximum: 10
Minimum: 1

ProviderImageStatus

ProviderImageStatus contains provider-specific image status

Appears in: - VMImageStatus

Field Description Default Validation
available boolean Available indicates if the image is available on this provider
id string ID is the provider-specific image identifier
path string Path is the provider-specific image path
size Quantity Size is the image size on this provider
lastUpdated Time LastUpdated is when the status was last updated
message string Message provides provider-specific status information

ProviderList

ProviderList contains a list of Provider

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string ProviderList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items Provider array

ProviderNetworkStatus

ProviderNetworkStatus contains provider-specific network status

Appears in: - VMNetworkAttachmentStatus

Field Description Default Validation
available boolean Available indicates if the network is available on this provider
id string ID is the provider-specific network identifier
state string State is the provider-specific network state
lastUpdated Time LastUpdated is when the status was last updated
message string Message provides provider-specific status information

ProviderResourceUsage

ProviderResourceUsage provides resource usage statistics

Appears in: - ProviderStatus

Field Description Default Validation
cpu ResourceUsageStats CPU usage statistics
memory ResourceUsageStats Memory usage statistics
storage ResourceUsageStats Storage usage statistics
network NetworkUsageStats Network usage statistics

ProviderRuntimeMode

Underlying type: string

ProviderRuntimeMode specifies how the provider is executed

Validation: - Enum: [Remote]

Appears in: - ProviderRuntimeSpec - ProviderRuntimeStatus

Field Description
Remote RuntimeModeRemote runs the provider as a separate deployment

ProviderRuntimePhase

Underlying type: string

ProviderRuntimePhase represents the phase of provider runtime

Validation: - Enum: [Pending Starting Running Stopping Failed]

Appears in: - ProviderRuntimeStatus

Field Description
Pending ProviderRuntimePhasePending indicates the runtime is being prepared
Starting ProviderRuntimePhaseStarting indicates the runtime is starting
Running ProviderRuntimePhaseRunning indicates the runtime is operational
Stopping ProviderRuntimePhaseStopping indicates the runtime is stopping
Failed ProviderRuntimePhaseFailed indicates the runtime has failed

ProviderRuntimeSpec

ProviderRuntimeSpec defines the runtime configuration for providers

Appears in: - ProviderSpec

Field Description Default Validation
mode ProviderRuntimeMode Mode specifies the runtime mode (always Remote) Remote Enum: [Remote]
image string Image is the container image for remote providers (required) Pattern: ^[a-zA-Z0-9._/-]+:[a-zA-Z0-9._-]+$
imagePullPolicy PullPolicy ImagePullPolicy defines the image pull policy IfNotPresent Enum: [Always Never IfNotPresent]
imagePullSecrets LocalObjectReference array ImagePullSecrets are references to secrets for pulling images MaxItems: 10
replicas integer Replicas is the number of provider instances (default 1) 1 Maximum: 10
Minimum: 1
service ProviderServiceSpec Service defines the service configuration
resources ResourceRequirements Resources defines resource requirements for provider pods
nodeSelector object (keys:string, values:string) NodeSelector is a selector which must be true for the pod to fit on a node
tolerations Toleration array Tolerations allow pods to schedule onto nodes with matching taints MaxItems: 20
affinity Affinity Affinity defines scheduling constraints
securityContext SecurityContext SecurityContext defines security context for provider pods
env EnvVar array Env defines additional environment variables for provider pods MaxItems: 50
livenessProbe Probe LivenessProbe defines the liveness probe for provider pods
readinessProbe Probe ReadinessProbe defines the readiness probe for provider pods

ProviderRuntimeStatus

ProviderRuntimeStatus defines the runtime status for providers

Appears in: - ProviderStatus

Field Description Default Validation
mode ProviderRuntimeMode Mode indicates the current runtime mode Enum: [Remote]
endpoint string Endpoint is the gRPC endpoint (host:port) for remote providers
serviceRef LocalObjectReference ServiceRef references the Kubernetes service for remote providers
phase ProviderRuntimePhase Phase indicates the runtime phase Enum: [Pending Starting Running Stopping Failed]
message string Message provides additional details about the runtime status
readyReplicas integer ReadyReplicas is the number of ready provider replicas
availableReplicas integer AvailableReplicas is the number of available provider replicas

ProviderServiceSpec

ProviderServiceSpec defines the service configuration for remote providers

Appears in: - ProviderRuntimeSpec

Field Description Default Validation
port integer Port is the gRPC service port 9443 Maximum: 65535
Minimum: 1024
tls ProviderTLSSpec TLS defines TLS configuration for the service

ProviderSnapshotStatus

ProviderSnapshotStatus contains provider-specific snapshot status

Appears in: - VMSnapshotStatus

Field Description Default Validation
available boolean Available indicates if the snapshot is available on this provider
id string ID is the provider-specific snapshot identifier
path string Path is the provider-specific snapshot path
state string State is the provider-specific snapshot state
lastUpdated Time LastUpdated is when the status was last updated
message string Message provides provider-specific status information

ProviderSpec

ProviderSpec defines the desired state of Provider

Appears in: - Provider

Field Description Default Validation
type ProviderType Type specifies the provider type Enum: [vsphere libvirt firecracker qemu proxmox]
endpoint string Endpoint is the provider endpoint URI
Supports multiple protocols: HTTP(S), TCP, gRPC for general providers
and LibVirt-specific schemes: qemu://, qemu+ssh://, qemu+tcp://, qemu+tls://
Pattern: ^((https?://[a-zA-Z0-9.-]+(:[0-9]+)?(/.*)?\|(tcp\|grpc)://[a-zA-Z0-9.-]+:[0-9]+(/.*)?)\|qemu(\+ssh\|\+tcp\|\+tls)?://([a-zA-Z0-9@.-]+(:[0-9]+)?)?(/.*))$
credentialSecretRef ObjectRef CredentialSecretRef references the Secret containing credentials
insecureSkipVerify boolean InsecureSkipVerify disables TLS verification (deprecated, use runtime.service.tls.insecureSkipVerify) false
defaults ProviderDefaults Defaults provides default placement settings
rateLimit RateLimit RateLimit configures API rate limiting
runtime ProviderRuntimeSpec Runtime defines how the provider is executed (required)
healthCheck ProviderHealthCheck HealthCheck defines health checking configuration
connectionPooling ConnectionPooling ConnectionPooling defines connection pooling settings

ProviderStatus

ProviderStatus defines the observed state of Provider

Appears in: - Provider

Field Description Default Validation
healthy boolean Healthy indicates if the provider is healthy
lastHealthCheck Time LastHealthCheck records the last health check time
runtime ProviderRuntimeStatus Runtime provides runtime status information
conditions Condition array Conditions represent the latest available observations
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
capabilities ProviderCapability array Capabilities lists the provider's supported capabilities Enum: [VirtualMachines Snapshots Cloning LiveMigration ConsoleAccess DiskManagement NetworkManagement GPUPassthrough HighAvailability Backup Templates]
version string Version reports the provider version
connectedVMs integer ConnectedVMs is the number of VMs currently managed by this provider
resourceUsage ProviderResourceUsage ResourceUsage provides resource usage statistics
adoption ProviderAdoptionStatus Adoption tracks VM adoption status

ProviderTLSSpec

ProviderTLSSpec defines TLS configuration for provider communication

Appears in: - ProviderServiceSpec

Field Description Default Validation
enabled boolean Enabled determines if TLS is enabled for provider communication true
secretRef LocalObjectReference SecretRef references a secret containing tls.crt, tls.key, and ca.crt
insecureSkipVerify boolean InsecureSkipVerify disables TLS certificate verification false

ProviderType

Underlying type: string

ProviderType represents the type of virtualization provider

Validation: - Enum: [vsphere libvirt firecracker qemu proxmox]

Appears in: - ProviderSpec

Field Description
vsphere ProviderTypeVSphere indicates a VMware vSphere provider
libvirt ProviderTypeLibvirt indicates a libvirt provider
firecracker ProviderTypeFirecracker indicates a Firecracker provider
qemu ProviderTypeQEMU indicates a QEMU provider
proxmox ProviderTypeProxmox indicates a Proxmox VE provider

ProxmoxImageSource

ProxmoxImageSource defines Proxmox VE-specific image configuration

Appears in: - ImageSource

Field Description Default Validation
templateID integer TemplateID specifies an existing Proxmox template VMID Maximum: 9.99999999e+08
Minimum: 100
templateName string TemplateName specifies an existing Proxmox template name MaxLength: 255
storage string Storage specifies the Proxmox storage for cloning
Examples: "local-lvm", "vms", "nfs-storage"
MaxLength: 255
node string Node specifies the Proxmox node where the template exists MaxLength: 255
format string Format specifies the disk format qcow2 Enum: [raw qcow2 vmdk]
fullClone boolean FullClone determines if this should be a full clone (default) or linked clone true

ProxmoxNetworkConfig

ProxmoxNetworkConfig defines Proxmox VE-specific network configuration

Appears in: - NetworkConfig

Field Description Default Validation
bridge string Bridge specifies the Linux bridge
Examples: "vmbr0", "vmbr1", "vmbr2"
MaxLength: 15
Pattern: ^vmbr[0-9]+$
model string Model specifies the network card model virtio Enum: [virtio e1000 rtl8139 vmxnet3]
vlanTag integer VLANTag specifies the VLAN tag Maximum: 4094
Minimum: 1
firewall boolean Firewall enables the Proxmox firewall for this interface false
rateLimit integer RateLimit specifies the bandwidth limit in MB/s Minimum: 1
mtu integer MTU specifies the Maximum Transmission Unit Maximum: 65520
Minimum: 68

RateLimit

RateLimit configures API rate limiting

Appears in: - ProviderSpec

Field Description Default Validation
qps integer QPS specifies queries per second 10 Maximum: 1000
Minimum: 1
burst integer Burst specifies the burst capacity 20 Maximum: 2000
Minimum: 1

RegistryImageSource

RegistryImageSource defines container registry image configuration

Appears in: - ImageSource

Field Description Default Validation
image string Image is the container image reference Pattern: ^[a-zA-Z0-9._/-]+:[a-zA-Z0-9._-]+$
pullSecretRef LocalObjectReference PullSecretRef references a secret for pulling the image
format ImageFormat Format specifies the expected image format qcow2 Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]

ResourceConstraints

ResourceConstraints defines resource-based placement constraints

Appears in: - VMPlacementPolicySpec

Field Description Default Validation
minCPUPerHost integer MinCPUPerHost specifies minimum CPU available per host Minimum: 1
minMemoryPerHost Quantity MinMemoryPerHost specifies minimum memory available per host
minDiskSpacePerHost Quantity MinDiskSpacePerHost specifies minimum disk space available per host
maxCPUUtilization integer MaxCPUUtilization specifies maximum allowed CPU utilization Maximum: 100
Minimum: 0
maxMemoryUtilization integer MaxMemoryUtilization specifies maximum allowed memory utilization Maximum: 100
Minimum: 0
maxDiskUtilization integer MaxDiskUtilization specifies maximum allowed disk utilization Maximum: 100
Minimum: 0
requiredFeatures string array RequiredFeatures lists required hardware features MaxItems: 20
preferredFeatures string array PreferredFeatures lists preferred hardware features MaxItems: 20

ResourceUsageStats

ResourceUsageStats represents usage statistics for a resource

Appears in: - ProviderResourceUsage

Field Description Default Validation
total integer Total available capacity
used integer Used capacity
available integer Available capacity
usagePercent integer Usage percentage (0-100)

RollingUpdateVMSetStrategy

RollingUpdateVMSetStrategy defines parameters for rolling updates

Appears in: - VMSetUpdateStrategy

Field Description Default Validation
maxUnavailable IntOrString MaxUnavailable is the maximum number of VMs that can be unavailable during update 25%
maxSurge IntOrString MaxSurge is the maximum number of VMs that can be created above desired replica count 25%
partition integer Partition indicates the ordinal at which the VMSet should be partitioned for updates Minimum: 0
podManagementPolicy VMSetPodManagementPolicyType PodManagementPolicy controls how VMs are created during initial scale up,
when replacing VMs on nodes, or when scaling down
OrderedReady Enum: [OrderedReady Parallel]

SecurityConstraints

SecurityConstraints defines security-based placement constraints

Appears in: - VMPlacementPolicySpec

Field Description Default Validation
requireSecureBoot boolean RequireSecureBoot requires hosts that support secure boot
requireTPM boolean RequireTPM requires hosts that support TPM
requireEncryptedStorage boolean RequireEncryptedStorage requires hosts that support encrypted storage
requireNUMATopology boolean RequireNUMATopology requires hosts that support NUMA topology
allowedSecurityGroups string array AllowedSecurityGroups lists allowed security groups MaxItems: 20
deniedSecurityGroups string array DeniedSecurityGroups lists denied security groups MaxItems: 20
isolationLevel string IsolationLevel specifies the required isolation level Enum: [none basic strict maximum]
trustLevel string TrustLevel specifies the required trust level Enum: [untrusted basic trusted highly-trusted]

SecurityProfile

SecurityProfile defines security-related settings

Appears in: - VMClassSpec

Field Description Default Validation
secureBoot boolean SecureBoot enables secure boot functionality false
tpmEnabled boolean TPMEnabled enables TPM (Trusted Platform Module) false
tpmVersion string TPMVersion specifies the TPM version Enum: [1.2 2]
vtdEnabled boolean VTDEnabled enables Intel VT-d or AMD-Vi false
encryptionPolicy EncryptionPolicy EncryptionPolicy defines VM encryption settings

SnapshotAction

SnapshotAction describes a snapshot operation

Appears in: - LifecycleHandler

Field Description Default Validation
name string Name is the name hint for the snapshot
includeMemory boolean IncludeMemory indicates whether to include memory state
description string Description provides context for the snapshot

SnapshotConfig

SnapshotConfig defines snapshot configuration options

Appears in: - VMSnapshotSpec

Field Description Default Validation
name string Name provides a name hint for the snapshot (provider may modify) MaxLength: 255
Pattern: ^[a-zA-Z0-9]([a-zA-Z0-9\-_]*[a-zA-Z0-9])?$
description string Description provides additional context for the snapshot MaxLength: 1024
includeMemory boolean IncludeMemory indicates whether to include memory state in the snapshot false
quiesce boolean Quiesce indicates whether to quiesce the file system before snapshotting true
type SnapshotType Type specifies the snapshot type Standard Enum: [Standard Crash Application]
compression boolean Compression enables snapshot compression false
encryption SnapshotEncryption Encryption enables snapshot encryption
consistencyLevel string ConsistencyLevel defines the consistency level required FilesystemConsistent Enum: [CrashConsistent FilesystemConsistent ApplicationConsistent]

SnapshotEncryption

SnapshotEncryption defines snapshot encryption settings

Appears in: - SnapshotConfig

Field Description Default Validation
enabled boolean Enabled indicates if encryption should be used false
keyProvider string KeyProvider specifies the encryption key provider Enum: [standard hardware external]
keyRef LocalObjectReference KeyRef references encryption keys

SnapshotMetadata

SnapshotMetadata contains snapshot metadata

Appears in: - VMSnapshotSpec

Field Description Default Validation
tags object (keys:string, values:string) Tags are key-value pairs for categorizing the snapshot MaxProperties: 50
pinned boolean Pinned indicates whether the snapshot is pinned (protected from automatic deletion) false
application string Application specifies the application that created the snapshot MaxLength: 255
purpose string Purpose describes the purpose of the snapshot Enum: [backup testing migration restore-point update other]
environment string Environment specifies the environment Enum: [dev staging prod test]

SnapshotPhase

Underlying type: string

SnapshotPhase represents the phase of a snapshot

Validation: - Enum: [Pending Creating Ready Deleting Failed Expired]

Appears in: - VMSnapshotStatus

Field Description
Pending SnapshotPhasePending indicates the snapshot is waiting to be processed
Creating SnapshotPhaseCreating indicates the snapshot is being created
Ready SnapshotPhaseReady indicates the snapshot is ready for use
Deleting SnapshotPhaseDeleting indicates the snapshot is being deleted
Failed SnapshotPhaseFailed indicates the snapshot operation failed
Expired SnapshotPhaseExpired indicates the snapshot has expired

SnapshotProgress

SnapshotProgress shows the snapshot creation progress

Appears in: - VMSnapshotStatus

Field Description Default Validation
totalBytes integer TotalBytes is the total number of bytes to snapshot
completedBytes integer CompletedBytes is the number of bytes completed
percentage integer Percentage is the completion percentage (0-100) Maximum: 100
Minimum: 0
startTime Time StartTime is when the snapshot creation started
eta Duration ETA is the estimated time to completion

SnapshotRef

SnapshotRef references a snapshot

Appears in: - VMSnapshotStatus

Field Description Default Validation
name string Name is the snapshot name
namespace string Namespace is the snapshot namespace
uid string UID is the snapshot UID

SnapshotRetentionPolicy

SnapshotRetentionPolicy defines snapshot retention rules

Appears in: - VMSnapshotSpec

Field Description Default Validation
maxAge Duration MaxAge is the maximum age before snapshot should be deleted
maxCount integer MaxCount is the maximum number of snapshots to retain Maximum: 100
Minimum: 1
deleteOnVMDelete boolean DeleteOnVMDelete indicates whether to delete snapshot when VM is deleted true
preservePinned boolean PreservePinned indicates whether to preserve pinned snapshots true
gracePeriod Duration GracePeriod is the grace period before deletion 24h

SnapshotSchedule

SnapshotSchedule defines automated snapshot scheduling

Appears in: - VMSnapshotSpec

Field Description Default Validation
enabled boolean Enabled indicates if scheduled snapshots are enabled false
cronSpec string CronSpec defines the schedule in cron format Pattern: ^(@(annually\|yearly\|monthly\|weekly\|daily\|hourly\|reboot))\|(@every (\d+(ns\|us\|µs\|ms\|s\|m\|h))+)\|((((\d+,)+\d+\|(\d+(\/\|-)\d+)\|\d+\|\*) ?)\{5,7\})$
timezone string Timezone specifies the timezone for the schedule UTC
suspend boolean Suspend indicates whether to suspend scheduled snapshots false
concurrencyPolicy string ConcurrencyPolicy specifies how to handle concurrent snapshot jobs Forbid Enum: [Allow Forbid Replace]
successfulJobsHistoryLimit integer SuccessfulJobsHistoryLimit limits retained successful jobs 3 Maximum: 100
Minimum: 0
failedJobsHistoryLimit integer FailedJobsHistoryLimit limits retained failed jobs 1 Maximum: 100
Minimum: 0

SnapshotType

Underlying type: string

SnapshotType represents the type of snapshot

Validation: - Enum: [Standard Crash Application]

Appears in: - SnapshotConfig

Field Description
Standard SnapshotTypeStandard indicates a standard snapshot
Crash SnapshotTypeCrash indicates a crash-consistent snapshot
Application SnapshotTypeApplication indicates an application-consistent snapshot

StaticIPConfig

StaticIPConfig defines static IP configuration

Appears in: - IPAllocationConfig

Field Description Default Validation
address string Address is the static IP address (CIDR notation) Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)/([0-9]\|[1-2][0-9]\|3[0-2])$
gateway string Gateway is the default gateway Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
routes StaticRoute array Routes contains static routes MaxItems: 20

StaticRoute

StaticRoute defines a static route

Appears in: - StaticIPConfig

Field Description Default Validation
destination string Destination is the destination network (CIDR notation) Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)/([0-9]\|[1-2][0-9]\|3[0-2])$
gateway string Gateway is the route gateway Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
metric integer Metric is the route metric Maximum: 65535
Minimum: 0

StoragePrepareOptions

StoragePrepareOptions defines storage-specific preparation options

Appears in: - ImagePrepare

Field Description Default Validation
vsphere VSphereStorageOptions VSphere storage options
libvirt LibvirtStorageOptions Libvirt storage options
preferredFormat ImageFormat PreferredFormat specifies the preferred target format Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]
compression boolean Compression enables compression during import false

SysprepCustomization

SysprepCustomization defines Windows sysprep customization

Appears in: - VMCustomization

Field Description Default Validation
enabled boolean Enabled indicates if sysprep should be run false
productKey string ProductKey specifies the Windows product key
organization string Organization specifies the organization name MaxLength: 255
owner string Owner specifies the owner name MaxLength: 255
adminPassword PasswordSpec AdminPassword specifies the administrator password
joinDomain DomainJoinSpec JoinDomain specifies domain join configuration
customCommands string array CustomCommands specifies custom commands to run during sysprep MaxItems: 20

TrafficShapingConfig

TrafficShapingConfig defines traffic shaping settings

Appears in: - VSphereNetworkConfig

Field Description Default Validation
enabled boolean Enabled indicates if traffic shaping is enabled false
averageBandwidth integer AverageBandwidth is the average bandwidth in bits per second Minimum: 1000
peakBandwidth integer PeakBandwidth is the peak bandwidth in bits per second Minimum: 1000
burstSize integer BurstSize is the burst size in bytes Minimum: 1024

UserData

UserData defines cloud-init configuration

Appears in: - VMCustomization - VirtualMachineSpec

Field Description Default Validation
cloudInit CloudInit CloudInit contains cloud-init configuration
ignition Ignition Ignition contains Ignition configuration for CoreOS/RHEL

VLANConfig

VLANConfig defines VLAN configuration

Appears in: - VSphereNetworkConfig

Field Description Default Validation
type string Type specifies the VLAN type none Enum: [none vlan pvlan trunk]
vlanID integer VlanID specifies the VLAN ID for VLAN type Maximum: 4094
Minimum: 1
trunkVlanIDs integer array TrunkVlanIDs specifies VLAN IDs for trunk type MaxItems: 100
primaryVlanID integer PrimaryVlanID specifies the primary VLAN ID for PVLAN Maximum: 4094
Minimum: 1
secondaryVlanID integer SecondaryVlanID specifies the secondary VLAN ID for PVLAN Maximum: 4094
Minimum: 1

VMAffinity

VMAffinity defines affinity rules between VMs

Appears in: - AffinityRules

Field Description Default Validation
requiredDuringScheduling VMAffinityTerm array RequiredDuringScheduling specifies hard affinity rules MaxItems: 20
preferredDuringScheduling WeightedVMAffinityTerm array PreferredDuringScheduling specifies soft affinity rules MaxItems: 20

VMAffinityTerm

VMAffinityTerm defines a VM affinity term

Appears in: - VMAffinity - VMAntiAffinity - WeightedVMAffinityTerm

Field Description Default Validation
labelSelector LabelSelector LabelSelector selects VMs for affinity rules
namespaces string array Namespaces specifies which namespaces to consider MaxItems: 20
namespaceSelector LabelSelector NamespaceSelector selects namespaces using label selectors
topologyKey string TopologyKey specifies the topology domain for the rule MaxLength: 253
matchExpressions VMSelectorRequirement array MatchExpressions is a list of VM selector requirements MaxItems: 20

VMAntiAffinity

VMAntiAffinity defines anti-affinity rules between VMs

Appears in: - AntiAffinityRules

Field Description Default Validation
requiredDuringScheduling VMAffinityTerm array RequiredDuringScheduling specifies hard anti-affinity rules MaxItems: 20
preferredDuringScheduling WeightedVMAffinityTerm array PreferredDuringScheduling specifies soft anti-affinity rules MaxItems: 20

VMClass

VMClass is the Schema for the vmclasses API

Appears in: - VMClassList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMClass
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMClassSpec
status VMClassStatus

VMClassList

VMClassList contains a list of VMClass

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMClassList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMClass array

VMClassSpec

VMClassSpec defines the desired state of VMClass

Appears in: - VMClass

Field Description Default Validation
cpu integer CPU specifies the number of virtual CPUs Maximum: 128
Minimum: 1
memory Quantity Memory specifies memory allocation using Kubernetes resource quantities
firmware FirmwareType Firmware specifies the firmware type BIOS Enum: [BIOS UEFI EFI]
diskDefaults DiskDefaults DiskDefaults provides default disk settings
guestToolsPolicy GuestToolsPolicy GuestToolsPolicy specifies guest tools installation policy install Enum: [install skip upgrade uninstall]
extraConfig object (keys:string, values:string) ExtraConfig contains provider-specific extra configuration MaxProperties: 50
resourceLimits VMResourceLimits ResourceLimits defines resource limits and reservations
performanceProfile PerformanceProfile PerformanceProfile defines performance-related settings
securityProfile SecurityProfile SecurityProfile defines security-related settings

VMClassStatus

VMClassStatus defines the observed state of VMClass

Appears in: - VMClass

Field Description Default Validation
conditions Condition array Conditions represent the latest available observations
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
usedByVMs integer UsedByVMs is the number of VMs currently using this class
supportedProviders string array SupportedProviders lists the providers that support this class
validationResults object (keys:string, values:ValidationResult) ValidationResults contains validation results for different providers

VMClone

VMClone is the Schema for the vmclones API

Appears in: - VMCloneList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMClone
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMCloneSpec
status VMCloneStatus

VMCloneList

VMCloneList contains a list of VMClone

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMCloneList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMClone array

VMCloneSpec

VMCloneSpec defines the desired state of VMClone

Appears in: - VMClone

Field Description Default Validation
source CloneSource Source defines the source for cloning
target VMCloneTarget Target defines the target VM configuration
options CloneOptions Options defines cloning options
customization VMCustomization Customization defines VM customization options
metadata CloneMetadata Refer to Kubernetes API documentation for fields of metadata.

VMCloneStatus

VMCloneStatus defines the observed state of VMClone

Appears in: - VMClone

Field Description Default Validation
targetRef LocalObjectReference TargetRef references the created target VM
phase ClonePhase Phase represents the current phase of the clone operation Enum: [Pending Preparing Cloning Customizing Powering-On Ready Failed]
message string Message provides additional details about the current state
taskRef string TaskRef tracks any ongoing async operations
startTime Time StartTime is when the clone operation started
completionTime Time CompletionTime is when the clone operation completed
actualCloneType CloneType ActualCloneType indicates the actual clone type that was used Enum: [FullClone LinkedClone InstantClone]
progress CloneProgress Progress shows the clone operation progress
conditions Condition array Conditions represent the current service state
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
retryCount integer RetryCount is the number of times the clone has been retried
lastRetryTime Time LastRetryTime is when the clone was last retried
customizationStatus CustomizationStatus CustomizationStatus contains customization operation status

VMCloneTarget

VMCloneTarget defines the target VM configuration

Appears in: - VMCloneSpec

Field Description Default Validation
name string Name is the name of the target VM MaxLength: 253
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
namespace string Namespace is the namespace for the target VM (defaults to source namespace) MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
providerRef ObjectRef ProviderRef references the target provider (defaults to source provider)
classRef LocalObjectReference ClassRef references the VM class for resource allocation
placementRef LocalObjectReference PlacementRef references placement policy for the target VM
networks VMNetworkRef array Networks defines network configuration overrides MaxItems: 10
disks DiskSpec array Disks defines disk configuration overrides MaxItems: 20
labels object (keys:string, values:string) Labels defines labels to apply to the target VM MaxProperties: 50
annotations object (keys:string, values:string) Annotations defines annotations to apply to the target VM MaxProperties: 50

VMCustomization

VMCustomization defines VM customization options

Appears in: - VMCloneSpec

Field Description Default Validation
hostname string Hostname sets the target VM hostname MaxLength: 255
Pattern: ^[a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?$
domain string Domain sets the domain name MaxLength: 255
timeZone string TimeZone sets the timezone MaxLength: 100
networks NetworkCustomization array Networks defines network customization MaxItems: 10
userData UserData UserData provides cloud-init or similar customization data
sysprep SysprepCustomization Sysprep provides Windows sysprep customization
tags string array Tags defines additional tags for the cloned VM MaxItems: 50
guestCommands GuestCommand array GuestCommands defines commands to run in the guest OS MaxItems: 20
certificates CertificateSpec array Certificates defines certificates to install MaxItems: 10

VMImage

VMImage is the Schema for the vmimages API

Appears in: - VMImageList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMImage
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMImageSpec
status VMImageStatus

VMImageList

VMImageList contains a list of VMImage

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMImageList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMImage array

VMImageSpec

VMImageSpec defines the desired state of VMImage

Appears in: - VMImage

Field Description Default Validation
source ImageSource Source defines the image source configuration
prepare ImagePrepare Prepare contains optional image preparation steps
metadata ImageMetadata Refer to Kubernetes API documentation for fields of metadata.
distribution OSDistribution Distribution contains OS distribution information

VMImageStatus

VMImageStatus defines the observed state of VMImage

Appears in: - VMImage

Field Description Default Validation
ready boolean Ready indicates if the image is ready for use
phase ImagePhase Phase represents the current phase of image preparation Enum: [Pending Downloading Importing Converting Optimizing Ready Failed]
message string Message provides additional details about the current state
availableOn string array AvailableOn lists the providers where the image is available
conditions Condition array Conditions represent the latest available observations
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
lastPrepareTime Time LastPrepareTime records when the image was last prepared
prepareTaskRef string PrepareTaskRef tracks any ongoing image preparation operations
importProgress ImageImportProgress ImportProgress shows the progress of image import operations
size Quantity Size is the size of the prepared image
checksum string Checksum is the actual checksum of the prepared image
format ImageFormat Format is the actual format of the prepared image Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf]
providerStatus object (keys:string, values:ProviderImageStatus) ProviderStatus contains provider-specific status information

VMMigration

VMMigration is the Schema for the vmmigrations API

Appears in: - VMMigrationList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMMigration
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMMigrationSpec
status VMMigrationStatus

VMMigrationList

VMMigrationList contains a list of VMMigration

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMMigrationList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMMigration array

VMMigrationSpec

VMMigrationSpec defines the desired state of VMMigration

Appears in: - VMMigration

Field Description Default Validation
source MigrationSource Source defines the source VM to migrate from
target MigrationTarget Target defines the target provider and configuration
options MigrationOptions Options defines migration options
storage MigrationStorage Storage defines storage backend configuration for transfer
metadata MigrationMetadata Refer to Kubernetes API documentation for fields of metadata.

VMMigrationStatus

VMMigrationStatus defines the observed state of VMMigration

Appears in: - VMMigration

Field Description Default Validation
phase MigrationPhase Phase represents the current phase of the migration Enum: [Pending Validating Snapshotting Exporting Transferring Converting Importing Creating Validating-Target Ready Failed]
message string Message provides additional details about the current state
targetVMRef LocalObjectReference TargetVMRef references the created target VM
snapshotRef string SnapshotRef references the source snapshot used for migration
snapshotID string SnapshotID is the provider-specific snapshot identifier
exportID string ExportID is the export operation identifier
importID string ImportID is the import operation identifier
taskRef string TaskRef is the current task reference for async operations
targetVMID string TargetVMID is the provider-specific target VM identifier
startTime Time StartTime is when the migration started
completionTime Time CompletionTime is when the migration completed
progress MigrationProgress Progress shows the migration operation progress
diskInfo MigrationDiskInfo DiskInfo contains information about the migrated disk
storageInfo MigrationStorageInfo StorageInfo contains information about intermediate storage
storagePVCName string StoragePVCName is the name of the PVC used for migration storage
conditions Condition array Conditions represent the current service state
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
retryCount integer RetryCount is the number of times the migration has been retried
lastRetryTime Time LastRetryTime is when the migration was last retried
validationResults ValidationResults ValidationResults contains results of validation checks

VMNetworkAttachment

VMNetworkAttachment is the Schema for the vmnetworkattachments API

Appears in: - VMNetworkAttachmentList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMNetworkAttachment
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMNetworkAttachmentSpec
status VMNetworkAttachmentStatus

VMNetworkAttachmentList

VMNetworkAttachmentList contains a list of VMNetworkAttachment

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMNetworkAttachmentList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMNetworkAttachment array

VMNetworkAttachmentSpec

VMNetworkAttachmentSpec defines the desired state of VMNetworkAttachment

Appears in: - VMNetworkAttachment

Field Description Default Validation
network NetworkConfig Network defines the underlying network configuration
ipAllocation IPAllocationConfig IPAllocation defines IP address allocation settings
security NetworkSecurityConfig Security defines network security settings
qos NetworkQoSConfig QoS defines Quality of Service settings
metadata NetworkMetadata Refer to Kubernetes API documentation for fields of metadata.

VMNetworkAttachmentStatus

VMNetworkAttachmentStatus defines the observed state of VMNetworkAttachment

Appears in: - VMNetworkAttachment

Field Description Default Validation
ready boolean Ready indicates if the network is ready for use
phase NetworkAttachmentPhase Phase represents the current phase Enum: [Pending Configuring Ready Failed]
message string Message provides additional details about the current state
availableOn string array AvailableOn lists the providers where the network is available
conditions Condition array Conditions represent the latest available observations
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
connectedVMs integer ConnectedVMs is the number of VMs using this network
ipAllocations IPAllocation array IPAllocations contains current IP allocations
providerStatus object (keys:string, values:ProviderNetworkStatus) ProviderStatus contains provider-specific status information

VMNetworkRef

VMNetworkRef represents a reference to a network attachment

Appears in: - MigrationTarget - VMCloneTarget - VirtualMachineSpec

Field Description Default Validation
name string Name is the name of this network attachment MaxLength: 63
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
networkRef ObjectRef NetworkRef references the VMNetworkAttachment
ipAddress string IPAddress specifies a static IP address (optional) Pattern: ^((25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]\|2[0-4][0-9]\|[01]?[0-9][0-9]?)$
macAddress string MACAddress specifies a static MAC address (optional) Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$

VMPlacementPolicy

VMPlacementPolicy is the Schema for the vmplacementpolicies API

Appears in: - VMPlacementPolicyList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMPlacementPolicy
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMPlacementPolicySpec
status VMPlacementPolicyStatus

VMPlacementPolicyList

VMPlacementPolicyList contains a list of VMPlacementPolicy

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMPlacementPolicyList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMPlacementPolicy array

VMPlacementPolicySpec

VMPlacementPolicySpec defines the desired state of VMPlacementPolicy

Appears in: - VMPlacementPolicy

Field Description Default Validation
hard PlacementConstraints Hard constraints that must be satisfied for VM placement
soft PlacementConstraints Soft constraints that should be satisfied if possible
antiAffinity AntiAffinityRules AntiAffinity defines anti-affinity rules for VMs
affinity AffinityRules Affinity defines affinity rules for VMs
resourceConstraints ResourceConstraints ResourceConstraints defines resource-based placement constraints
securityConstraints SecurityConstraints SecurityConstraints defines security-based placement constraints
priority integer Priority defines the priority of this placement policy Maximum: 1000
Minimum: 0
weight integer Weight defines the weight of this placement policy Maximum: 100
Minimum: 1

VMPlacementPolicyStatus

VMPlacementPolicyStatus defines the observed state of VMPlacementPolicy

Appears in: - VMPlacementPolicy

Field Description Default Validation
observedGeneration integer ObservedGeneration is the most recent generation observed by the controller
usedByVMs LocalObjectReference array UsedByVMs lists VMs currently using this policy MaxItems: 1000
conditions Condition array Conditions represent the current service state
validationResults object (keys:string, values:PolicyValidationResult) ValidationResults contains validation results for different providers
placementStats PlacementStatistics PlacementStats provides statistics about VM placements using this policy
conflictingPolicies PolicyConflict array ConflictingPolicies lists policies that conflict with this policy MaxItems: 50

VMResourceLimits

VMResourceLimits defines resource limits and reservations

Appears in: - VMClassSpec

Field Description Default Validation
cpuLimit integer CPULimit is the maximum CPU usage limit (in MHz or percentage) Maximum: 100000
Minimum: 100
cpuReservation integer CPUReservation is the guaranteed CPU allocation (in MHz) Maximum: 100000
Minimum: 0
memoryLimit Quantity MemoryLimit is the maximum memory usage limit
memoryReservation Quantity MemoryReservation is the guaranteed memory allocation
cpuShares integer CPUShares defines the relative CPU priority (higher = more priority) Maximum: 1e+06
Minimum: 1

VMSelectorOperator

Underlying type: string

VMSelectorOperator represents a selector operator

Validation: - Enum: [In NotIn Exists DoesNotExist]

Appears in: - VMSelectorRequirement

Field Description
In VMSelectorOpIn means the key must be in the set of values
NotIn VMSelectorOpNotIn means the key must not be in the set of values
Exists VMSelectorOpExists means the key must exist
DoesNotExist VMSelectorOpDoesNotExist means the key must not exist

VMSelectorRequirement

VMSelectorRequirement defines a VM selector requirement

Appears in: - VMAffinityTerm

Field Description Default Validation
key string Key is the label key that the selector applies to MaxLength: 253
operator VMSelectorOperator Operator represents a key's relationship to a set of values Enum: [In NotIn Exists DoesNotExist]
values string array Values is an array of string values MaxItems: 50

VMSet

VMSet is the Schema for the vmsets API

Appears in: - VMSetList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMSet
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMSetSpec
status VMSetStatus

VMSetFailedVM

VMSetFailedVM represents a VM that failed to update

Appears in: - VMSetUpdateStatus

Field Description Default Validation
name string Name is the name of the failed VM
reason string Reason provides the reason for failure
message string Message provides additional details about the failure
lastAttempt Time LastAttempt is when the last update attempt was made
retryCount integer RetryCount is the number of retry attempts

VMSetList

VMSetList contains a list of VMSet

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMSetList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMSet array

VMSetOrdinals

VMSetOrdinals configures the sequential ordering of VM indices

Appears in: - VMSetSpec

Field Description Default Validation
start integer Start is the number representing the first replica's index 0 Maximum: 999999
Minimum: 0

VMSetPersistentVolumeClaimRetentionPolicy

VMSetPersistentVolumeClaimRetentionPolicy defines the retention policy for PVCs

Appears in: - VMSetSpec

Field Description Default Validation
whenDeleted PersistentVolumeClaimRetentionPolicyType WhenDeleted specifies what happens to PVCs created from VMSet VolumeClaimTemplates when the VMSet is deleted Retain Enum: [Retain Delete]
whenScaled PersistentVolumeClaimRetentionPolicyType WhenScaled specifies what happens to PVCs created from VMSet VolumeClaimTemplates when the VMSet is scaled down Retain Enum: [Retain Delete]

VMSetPodManagementPolicyType

Underlying type: string

VMSetPodManagementPolicyType defines the policy for creating VMs

Validation: - Enum: [OrderedReady Parallel]

Appears in: - RollingUpdateVMSetStrategy

Field Description
OrderedReady OrderedReadyVMSetPodManagementPolicy creates VMs in order and waits for each to be ready
Parallel ParallelVMSetPodManagementPolicy creates VMs in parallel

VMSetSpec

VMSetSpec defines the desired state of VMSet

Appears in: - VMSet

Field Description Default Validation
replicas integer Replicas is the desired number of VMs in the set 1 Maximum: 1000
Minimum: 0
selector LabelSelector Selector is a label query over VMs that should match the replica count
template VMSetTemplate Template is the object that describes the VM that will be created
updateStrategy VMSetUpdateStrategy UpdateStrategy defines how to replace existing VMs with new ones
minReadySeconds integer MinReadySeconds is the minimum number of seconds for which a newly created VM
should be ready without any of its containers crashing
Maximum: 3600
Minimum: 0
revisionHistoryLimit integer RevisionHistoryLimit is the number of old VMSets to retain 10 Maximum: 100
Minimum: 0
persistentVolumeClaimRetentionPolicy VMSetPersistentVolumeClaimRetentionPolicy PersistentVolumeClaimRetentionPolicy defines the retention policy for PVCs
ordinals VMSetOrdinals Ordinals configures the sequential ordering of VM indices
serviceName string ServiceName is the name of the service that governs this VMSet MaxLength: 253
volumeClaimTemplates PersistentVolumeClaimTemplate array VolumeClaimTemplates defines a list of claims that VMs are allowed to reference MaxItems: 20

VMSetStatus

VMSetStatus defines the observed state of VMSet

Appears in: - VMSet

Field Description Default Validation
observedGeneration integer ObservedGeneration is the most recent generation observed by the controller
replicas integer Replicas is the number of VMs created by the VMSet controller
readyReplicas integer ReadyReplicas is the number of VMs that are ready
availableReplicas integer AvailableReplicas is the number of VMs that are available
updatedReplicas integer UpdatedReplicas is the number of VMs that have been updated
currentRevision string CurrentRevision is the revision of the current VMSet
updateRevision string UpdateRevision is the revision of the updated VMSet
collisionCount integer CollisionCount is the count of hash collisions for the VMSet
conditions Condition array Conditions represent the current service state
currentReplicas integer CurrentReplicas is the number of VMs currently running
updateStatus VMSetUpdateStatus UpdateStatus provides detailed update operation status
vmStatus VMSetVMStatus array VMStatus provides per-VM status information MaxItems: 1000

VMSetTemplate

VMSetTemplate defines the template for VMs in a VMSet

Appears in: - VMSetSpec

Field Description Default Validation
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VirtualMachineSpec Spec is the VM specification

VMSetUpdatePhase

Underlying type: string

VMSetUpdatePhase represents the phase of a VMSet update

Validation: - Enum: [Pending InProgress Paused Completed Failed]

Appears in: - VMSetUpdateStatus

Field Description
Pending VMSetUpdatePhasePending indicates the update is pending
InProgress VMSetUpdatePhaseInProgress indicates the update is in progress
Paused VMSetUpdatePhasePaused indicates the update is paused
Completed VMSetUpdatePhaseCompleted indicates the update is completed
Failed VMSetUpdatePhaseFailed indicates the update failed

VMSetUpdateStatus

VMSetUpdateStatus provides detailed update operation status

Appears in: - VMSetStatus

Field Description Default Validation
phase VMSetUpdatePhase Phase represents the current phase of the update Enum: [Pending InProgress Paused Completed Failed]
message string Message provides additional details about the update
startTime Time StartTime is when the update started
completionTime Time CompletionTime is when the update completed
updatedVMs string array UpdatedVMs lists VMs that have been updated MaxItems: 1000
pendingVMs string array PendingVMs lists VMs that are pending update MaxItems: 1000
failedVMs VMSetFailedVM array FailedVMs lists VMs that failed to update MaxItems: 1000

VMSetUpdateStrategy

VMSetUpdateStrategy defines the update strategy for a VMSet

Appears in: - VMSetSpec

Field Description Default Validation
type VMSetUpdateStrategyType Type can be "RollingUpdate" or "OnDelete" RollingUpdate Enum: [RollingUpdate OnDelete Recreate]
rollingUpdate RollingUpdateVMSetStrategy RollingUpdate is used when Type is RollingUpdate

VMSetUpdateStrategyType

Underlying type: string

VMSetUpdateStrategyType defines the type of update strategy

Validation: - Enum: [RollingUpdate OnDelete Recreate]

Appears in: - VMSetUpdateStrategy

Field Description
RollingUpdate RollingUpdateVMSetStrategyType replaces VMs one by one
OnDelete OnDeleteVMSetStrategyType replaces VMs only when manually deleted
Recreate RecreateVMSetStrategyType deletes all VMs before creating new ones

VMSetVMStatus

VMSetVMStatus provides per-VM status information

Appears in: - VMSetStatus

Field Description Default Validation
name string Name is the VM name
phase VirtualMachinePhase Phase is the VM phase Enum: [Pending Provisioning Running Stopped Reconfiguring Deleting Failed]
ready boolean Ready indicates if the VM is ready
revision string Revision is the VM revision
creationTime Time CreationTime is when the VM was created
lastUpdateTime Time LastUpdateTime is when the VM was last updated
message string Message provides additional VM status information

VMSnapshot

VMSnapshot is the Schema for the vmsnapshots API

Appears in: - VMSnapshotList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMSnapshot
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VMSnapshotSpec
status VMSnapshotStatus

VMSnapshotInfo

VMSnapshotInfo provides information about a VM snapshot

Appears in: - VirtualMachineStatus

Field Description Default Validation
id string ID is the provider-specific snapshot identifier
name string Name is the snapshot name
creationTime Time CreationTime is when the snapshot was created
description string Description provides additional context
sizeBytes integer SizeBytes is the size of the snapshot
hasMemory boolean HasMemory indicates if memory state is included

VMSnapshotList

VMSnapshotList contains a list of VMSnapshot

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VMSnapshotList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VMSnapshot array

VMSnapshotOperation

VMSnapshotOperation defines snapshot operations in VM spec

Appears in: - VirtualMachineSpec

Field Description Default Validation
revertToRef LocalObjectReference RevertToRef specifies a snapshot to revert to

VMSnapshotSpec

VMSnapshotSpec defines the desired state of VMSnapshot

Appears in: - VMSnapshot

Field Description Default Validation
vmRef LocalObjectReference VMRef references the virtual machine to snapshot
snapshotConfig SnapshotConfig SnapshotConfig defines snapshot configuration options
retentionPolicy SnapshotRetentionPolicy RetentionPolicy defines how long to keep this snapshot
schedule SnapshotSchedule Schedule defines automated snapshot scheduling
metadata SnapshotMetadata Refer to Kubernetes API documentation for fields of metadata.

VMSnapshotStatus

VMSnapshotStatus defines the observed state of VMSnapshot

Appears in: - VMSnapshot

Field Description Default Validation
snapshotID string SnapshotID is the provider-specific identifier for the snapshot
phase SnapshotPhase Phase represents the current phase of the snapshot Enum: [Pending Creating Ready Deleting Failed Expired]
message string Message provides additional details about the current state
creationTime Time CreationTime is when the snapshot was created
completionTime Time CompletionTime is when the snapshot creation completed
size Quantity Size is the size of the snapshot
virtualSize Quantity VirtualSize is the virtual size of the snapshot
taskRef string TaskRef tracks any ongoing async operations
conditions Condition array Conditions represent the current service state
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
progress SnapshotProgress Progress shows the snapshot creation progress
providerStatus object (keys:string, values:ProviderSnapshotStatus) ProviderStatus contains provider-specific status information
children SnapshotRef array Children lists child snapshots (for snapshot trees)
parent SnapshotRef Parent references the parent snapshot (for snapshot trees)
expiryTime Time ExpiryTime is when the snapshot will expire (based on retention policy)

VMTaintEffect

Underlying type: string

VMTaintEffect represents the effect of a taint

Validation: - Enum: [NoSchedule PreferNoSchedule NoExecute]

Appears in: - VMToleration

Field Description
NoSchedule VMTaintEffectNoSchedule means no new VMs will be scheduled
PreferNoSchedule VMTaintEffectPreferNoSchedule means avoid scheduling if possible
NoExecute VMTaintEffectNoExecute means existing VMs will be evicted

VMToleration

VMToleration represents a toleration for VM placement

Appears in: - PlacementConstraints

Field Description Default Validation
key string Key is the taint key that the toleration applies to MaxLength: 253
operator VMTolerationOperator Operator represents the relationship between the key and value Equal Enum: [Exists Equal]
value string Value is the taint value the toleration matches to MaxLength: 253
effect VMTaintEffect Effect indicates the taint effect to match Enum: [NoSchedule PreferNoSchedule NoExecute]
tolerationSeconds integer TolerationSeconds represents the period of time the toleration tolerates the taint Minimum: 0

VMTolerationOperator

Underlying type: string

VMTolerationOperator represents the operator for toleration

Validation: - Enum: [Exists Equal]

Appears in: - VMToleration

Field Description
Exists VMTolerationOpExists means the toleration exists
Equal VMTolerationOpEqual means the toleration equals the value

VSphereImageSource

VSphereImageSource defines vSphere-specific image configuration

Appears in: - ImageSource

Field Description Default Validation
templateName string TemplateName references an existing vSphere template MaxLength: 255
contentLibrary ContentLibraryRef ContentLibrary references a vSphere content library item
ovaURL string OVAURL provides a URL to an OVA file to import Pattern: ^https?://.*\.(ova\|ovf)$
checksum string Checksum provides expected checksum for verification
checksumType ChecksumType ChecksumType specifies the checksum algorithm sha256 Enum: [md5 sha1 sha256 sha512]
providerRef LocalObjectReference ProviderRef references the vSphere provider for importing

VSphereNetworkConfig

VSphereNetworkConfig defines vSphere-specific network configuration

Appears in: - NetworkConfig

Field Description Default Validation
portgroup string Portgroup specifies the vSphere portgroup name MaxLength: 255
distributedSwitch DistributedSwitchConfig DistributedSwitch specifies the distributed virtual switch
vlan VLANConfig VLAN specifies the VLAN configuration
security PortgroupSecurityConfig Security defines portgroup security settings
trafficShaping TrafficShapingConfig TrafficShaping defines traffic shaping settings

VSphereStorageOptions

VSphereStorageOptions defines vSphere storage preparation options

Appears in: - StoragePrepareOptions

Field Description Default Validation
datastore string Datastore specifies the target datastore for import MaxLength: 255
folder string Folder specifies the target folder for import MaxLength: 255
thinProvisioned boolean ThinProvisioned indicates whether to use thin provisioning
diskType string DiskType specifies the disk provisioning type Enum: [thin thick eagerzeroedthick]

ValidationChecks

ValidationChecks defines validation checks to perform

Appears in: - MigrationOptions

Field Description Default Validation
checkDiskSize boolean CheckDiskSize verifies disk size matches true
checkChecksum boolean CheckChecksum verifies checksums match true
checkBoot boolean CheckBoot verifies VM boots successfully false
checkConnectivity boolean CheckConnectivity tests network connectivity false

ValidationResult

ValidationResult represents a validation result for a provider

Appears in: - VMClassStatus

Field Description Default Validation
valid boolean Valid indicates if the class is valid for the provider
message string Message provides details about the validation result
warnings string array Warnings lists any validation warnings
lastValidated Time LastValidated is when this validation was last performed

ValidationResults

ValidationResults contains results of validation checks

Appears in: - VMMigrationStatus

Field Description Default Validation
diskSizeMatch boolean DiskSizeMatch indicates if disk sizes match
checksumMatch boolean ChecksumMatch indicates if checksums match
bootSuccess boolean BootSuccess indicates if the target VM booted successfully
connectivitySuccess boolean ConnectivitySuccess indicates if network connectivity works
validationErrors string array ValidationErrors lists any validation errors

VirtualMachine

VirtualMachine is the Schema for the virtualmachines API

Appears in: - VirtualMachineList

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VirtualMachine
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VirtualMachineSpec
status VirtualMachineStatus

VirtualMachineLifecycle

VirtualMachineLifecycle defines lifecycle configuration for a VM

Appears in: - VirtualMachineSpec

Field Description Default Validation
preStop LifecycleHandler PreStop defines actions to take before stopping the VM
postStart LifecycleHandler PostStart defines actions to take after starting the VM
gracefulShutdownTimeout Duration GracefulShutdownTimeout defines how long to wait for graceful shutdown 60s

VirtualMachineList

VirtualMachineList contains a list of VirtualMachine

Field Description Default Validation
apiVersion string infra.virtrigaud.io/v1beta1
kind string VirtualMachineList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items VirtualMachine array

VirtualMachinePhase

Underlying type: string

VirtualMachinePhase represents the phase of a VM

Validation: - Enum: [Pending Provisioning Running Stopped Reconfiguring Deleting Failed]

Appears in: - VMSetVMStatus - VirtualMachineStatus

Field Description
Pending VirtualMachinePhasePending indicates the VM is waiting to be processed
Provisioning VirtualMachinePhaseProvisioning indicates the VM is being created
Running VirtualMachinePhaseRunning indicates the VM is running
Stopped VirtualMachinePhaseStopped indicates the VM is stopped
Reconfiguring VirtualMachinePhaseReconfiguring indicates the VM is being reconfigured
Deleting VirtualMachinePhaseDeleting indicates the VM is being deleted
Failed VirtualMachinePhaseFailed indicates the VM is in a failed state

VirtualMachineResources

VirtualMachineResources defines resource overrides for a VM

Appears in: - VirtualMachineSpec - VirtualMachineStatus

Field Description Default Validation
cpu integer CPU specifies the number of virtual CPUs Maximum: 128
Minimum: 1
memoryMiB integer MemoryMiB specifies the amount of memory in MiB Maximum: 1.048576e+06
Minimum: 128
gpu GPUConfig GPU specifies GPU configuration

VirtualMachineSpec

VirtualMachineSpec defines the desired state of VirtualMachine.

Appears in: - VMSetTemplate - VirtualMachine

Field Description Default Validation
providerRef ObjectRef ProviderRef references the Provider that manages this VM
classRef ObjectRef ClassRef references the VMClass that defines resource allocation
imageRef ObjectRef ImageRef references the VMImage to use as base template.
Either ImageRef or ImportedDisk must be specified, but not both.
importedDisk ImportedDiskRef ImportedDisk references a pre-imported disk (e.g., from migration).
Either ImageRef or ImportedDisk must be specified, but not both.
networks VMNetworkRef array Networks specifies network attachments for the VM MaxItems: 10
disks DiskSpec array Disks specifies additional disks beyond the root disk MaxItems: 20
userData UserData UserData contains cloud-init configuration
metaData MetaData MetaData contains cloud-init metadata configuration
placement Placement Placement provides hints for VM placement
powerState PowerState PowerState specifies the desired power state Enum: [On Off OffGraceful]
tags string array Tags are applied to the VM for organization MaxItems: 50
resources VirtualMachineResources Resources allows overriding resource allocation from the VMClass
placementRef LocalObjectReference PlacementRef references a VMPlacementPolicy for advanced placement rules
snapshot VMSnapshotOperation Snapshot defines snapshot-related operations
lifecycle VirtualMachineLifecycle Lifecycle defines VM lifecycle configuration

VirtualMachineStatus

VirtualMachineStatus defines the observed state of VirtualMachine.

Appears in: - VirtualMachine

Field Description Default Validation
id string ID is the provider-specific identifier for this VM
powerState PowerState PowerState reflects the current power state Enum: [On Off OffGraceful]
ips string array IPs contains the IP addresses assigned to the VM
consoleURL string ConsoleURL provides access to the VM console
conditions Condition array Conditions represent the latest available observations
observedGeneration integer ObservedGeneration reflects the generation observed by the controller
lastTaskRef string LastTaskRef references the last async operation
provider object (keys:string, values:string) Provider contains provider-specific details
reconfigureTaskRef string ReconfigureTaskRef tracks reconfiguration operations
lastReconfigureTime Time LastReconfigureTime records when the last reconfiguration occurred
currentResources VirtualMachineResources CurrentResources shows the current resource allocation
snapshots VMSnapshotInfo array Snapshots lists available snapshots for this VM
phase VirtualMachinePhase Phase represents the current phase of the VM Enum: [Pending Provisioning Running Stopped Reconfiguring Deleting Failed]
message string Message provides additional details about the current state

WeightedVMAffinityTerm

WeightedVMAffinityTerm defines a weighted VM affinity term

Appears in: - VMAffinity - VMAntiAffinity

Field Description Default Validation
weight integer Weight associated with matching the corresponding VMAffinityTerm Maximum: 100
Minimum: 1
vmAffinityTerm VMAffinityTerm VMAffinityTerm defines the VM affinity term

ZoneAffinityRule

ZoneAffinityRule defines zone affinity rules

Appears in: - AffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if zone affinity is enabled
preferredZones string array PreferredZones lists preferred zones MaxItems: 10
scope string Scope defines the scope of the affinity rule Enum: [strict preferred]

ZoneAntiAffinityRule

ZoneAntiAffinityRule defines zone anti-affinity rules

Appears in: - AntiAffinityRules

Field Description Default Validation
enabled boolean Enabled indicates if zone anti-affinity is enabled
maxVMsPerZone integer MaxVMsPerZone limits the number of VMs per zone Maximum: 10000
Minimum: 1
scope string Scope defines the scope of the anti-affinity rule Enum: [strict preferred]