API Reference¶
Packages¶
infra.virtrigaud.io/v1beta1¶
Package v1beta1 contains API Schema definitions for the infra.virtrigaud.io v1beta1 API group
Resource Types¶
- Provider
- ProviderList
- VMClass
- VMClassList
- VMClone
- VMCloneList
- VMImage
- VMImageList
- VMMigration
- VMMigrationList
- VMNetworkAttachment
- VMNetworkAttachmentList
- VMPlacementPolicy
- VMPlacementPolicyList
- VMSet
- VMSetList
- VMSnapshot
- VMSnapshotList
- VirtualMachine
- VirtualMachineList
AffinityRules¶
AffinityRules defines affinity placement rules
Appears in: - VMPlacementPolicySpec
| Field | Description | Default | Validation |
|---|---|---|---|
vmAffinity VMAffinity | VMAffinity defines affinity rules between VMs | Optional: {} | |
hostAffinity HostAffinityRule | HostAffinity encourages VMs to be placed on the same host | Optional: {} | |
clusterAffinity ClusterAffinityRule | ClusterAffinity encourages VMs to be placed in the same cluster | Optional: {} | |
datastoreAffinity DatastoreAffinityRule | DatastoreAffinity encourages VMs to be placed on the same datastore | Optional: {} | |
zoneAffinity ZoneAffinityRule | ZoneAffinity encourages VMs to be placed in the same zone | Optional: {} | |
applicationAffinity ApplicationAffinityRule | ApplicationAffinity encourages VMs from the same application to be co-located | Optional: {} |
AntiAffinityRules¶
AntiAffinityRules defines anti-affinity placement rules
Appears in: - VMPlacementPolicySpec
| Field | Description | Default | Validation |
|---|---|---|---|
vmAntiAffinity VMAntiAffinity | VMAntiAffinity defines anti-affinity rules between VMs | Optional: {} | |
hostAntiAffinity HostAntiAffinityRule | HostAntiAffinity prevents VMs from being placed on the same host | Optional: {} | |
clusterAntiAffinity ClusterAntiAffinityRule | ClusterAntiAffinity prevents VMs from being placed in the same cluster | Optional: {} | |
datastoreAntiAffinity DatastoreAntiAffinityRule | DatastoreAntiAffinity prevents VMs from being placed on the same datastore | Optional: {} | |
zoneAntiAffinity ZoneAntiAffinityRule | ZoneAntiAffinity prevents VMs from being placed in the same zone | Optional: {} | |
applicationAntiAffinity ApplicationAntiAffinityRule | ApplicationAntiAffinity prevents VMs from different applications being co-located | Optional: {} |
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 | Optional: {} |
scope string | Scope defines the scope of the affinity rule | Enum: [strict preferred] Optional: {} |
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 | Optional: {} |
scope string | Scope defines the scope of the anti-affinity rule | Enum: [strict preferred] Optional: {} |
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 | Optional: {} |
passwordKey string | PasswordKey is the key in the secret containing the password (default: password) | password | Optional: {} |
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 | Optional: {} |
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 | Optional: {} |
delay integer | Delay is the STP forwarding delay | Maximum: 30 Minimum: 0 Optional: {} |
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) | Optional: {} | |
secretRef LocalObjectReference | SecretRef references a secret containing the certificate | Optional: {} | |
secretKey string | SecretKey is the key in the secret containing the certificate | tls.crt | Optional: {} |
store string | Store specifies the certificate store | root | Enum: [root ca my trust] Optional: {} |
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 | Optional: {} |
keyKey string | KeyKey is the key in the secret containing the private key (default: tls.key) | tls.key | Optional: {} |
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] Optional: {} | |
createdBy string | CreatedBy identifies who or what created the clone | MaxLength: 255 Optional: {} | |
project string | Project identifies the project this clone belongs to | MaxLength: 255 Optional: {} | |
environment string | Environment specifies the environment | Enum: [dev staging prod test qa uat] Optional: {} | |
tags object (keys:string, values:string) | Tags are key-value pairs for categorizing the clone | MaxProperties: 50 Optional: {} |
CloneOptions¶
CloneOptions defines cloning options
Appears in: - VMCloneSpec
| Field | Description | Default | Validation |
|---|---|---|---|
type CloneType | Type specifies the clone type | FullClone | Enum: [FullClone LinkedClone InstantClone] Optional: {} |
powerOn boolean | PowerOn indicates whether to power on the cloned VM | false | Optional: {} |
includeSnapshots boolean | IncludeSnapshots indicates whether to include snapshots in the clone | false | Optional: {} |
parallel boolean | Parallel enables parallel disk cloning (if supported) | false | Optional: {} |
timeout Duration | Timeout defines the maximum time to wait for clone completion | 30m | Optional: {} |
retryPolicy CloneRetryPolicy | RetryPolicy defines retry behavior for failed clones | Optional: {} | |
storage CloneStorageOptions | Storage defines storage-specific clone options | Optional: {} | |
performance ClonePerformanceOptions | Performance defines performance-related clone options | Optional: {} |
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] Optional: {} |
ioThrottling boolean | IOThrottling enables I/O throttling during clone operations | false | Optional: {} |
maxIOPS integer | MaxIOPS limits the maximum IOPS during clone operations | Maximum: 100000 Minimum: 100 Optional: {} | |
concurrentDisks integer | ConcurrentDisks limits the number of disks cloned concurrently | 2 | Maximum: 10 Minimum: 1 Optional: {} |
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 | Optional: {} | |
completedDisks integer | CompletedDisks is the number of disks completed | Optional: {} | |
currentDisk DiskCloneProgress | CurrentDisk shows progress of the current disk being cloned | Optional: {} | |
overallPercentage integer | OverallPercentage is the overall completion percentage (0-100) | Maximum: 100 Minimum: 0 Optional: {} | |
eta Duration | ETA is the estimated time to completion | Optional: {} |
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 Optional: {} |
retryDelay Duration | RetryDelay is the delay between retry attempts | 5m | Optional: {} |
backoffMultiplier integer | BackoffMultiplier is the multiplier for exponential backoff | 2 | Optional: {} |
CloneSource¶
CloneSource defines the source for cloning
Appears in: - VMCloneSpec
| Field | Description | Default | Validation |
|---|---|---|---|
vmRef LocalObjectReference | VMRef references the source virtual machine to clone | Optional: {} | |
snapshotRef LocalObjectReference | SnapshotRef references a specific snapshot to clone from | Optional: {} | |
templateRef ObjectRef | TemplateRef references a VM template to clone from | Optional: {} | |
imageRef ObjectRef | ImageRef references a VM image to clone from | Optional: {} |
CloneStorageOptions¶
CloneStorageOptions defines storage-specific clone options
Appears in: - CloneOptions
| Field | Description | Default | Validation |
|---|---|---|---|
preferThinProvisioning boolean | PreferThinProvisioning prefers thin provisioning for cloned disks | true | Optional: {} |
diskFormat DiskType | DiskFormat specifies the preferred disk format for cloned disks | Enum: [thin thick eagerzeroedthick ssd hdd nvme] Optional: {} | |
storageClass string | StorageClass specifies the storage class for cloned disks | MaxLength: 253 Optional: {} | |
datastore string | Datastore specifies the target datastore for cloned disks | MaxLength: 255 Optional: {} | |
folder string | Folder specifies the target folder for the cloned VM | MaxLength: 255 Optional: {} | |
enableCompression boolean | EnableCompression enables compression during clone operations | false | Optional: {} |
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 | Optional: {} | |
secretRef LocalObjectReference | SecretRef references a Secret containing cloud-init data | Optional: {} |
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 | Optional: {} | |
secretRef LocalObjectReference | SecretRef references a Secret containing cloud-init metadata | Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the affinity rule | Enum: [strict preferred] Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the anti-affinity rule | Enum: [strict preferred] Optional: {} |
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 Optional: {} |
maxIdleConnections integer | MaxIdleConnections is the maximum number of idle connections | 5 | Minimum: 1 Optional: {} |
connectionTimeout Duration | ConnectionTimeout is the timeout for establishing connections | 30s | Optional: {} |
idleTimeout Duration | IdleTimeout is the timeout for idle connections | 5m | Optional: {} |
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) | Optional: {} |
CustomizationStatus¶
CustomizationStatus contains customization operation status
Appears in: - VMCloneStatus
| Field | Description | Default | Validation |
|---|---|---|---|
started boolean | Started indicates if customization has started | Optional: {} | |
completed boolean | Completed indicates if customization has completed | Optional: {} | |
completedSteps string array | CompletedSteps lists completed customization steps | Optional: {} | |
failedSteps string array | FailedSteps lists failed customization steps | Optional: {} | |
currentStep string | CurrentStep is the current customization step | Optional: {} | |
message string | Message provides customization status details | Optional: {} |
DHCPConfig¶
DHCPConfig defines DHCP configuration
Appears in: - IPAllocationConfig
| Field | Description | Default | Validation |
|---|---|---|---|
clientID string | ClientID specifies the DHCP client ID | MaxLength: 255 Optional: {} | |
hostname string | Hostname specifies the hostname to request | MaxLength: 255 Optional: {} | |
options object (keys:string, values:string) | Options contains DHCP options | MaxProperties: 20 Optional: {} |
DNSConfig¶
DNSConfig defines DNS configuration
Appears in: - IPAllocationConfig
| Field | Description | Default | Validation |
|---|---|---|---|
servers string array | Servers contains DNS server addresses | MaxItems: 10 Optional: {} | |
searchDomains string array | SearchDomains contains DNS search domains | MaxItems: 10 Optional: {} | |
options object (keys:string, values:string) | Options contains DNS resolver options | MaxProperties: 10 Optional: {} |
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])?$ Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the affinity rule | Enum: [strict preferred] Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the anti-affinity rule | Enum: [strict preferred] Optional: {} |
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 | Optional: {} | |
completedBytes integer | CompletedBytes is the number of bytes completed | Optional: {} | |
percentage integer | Percentage is the completion percentage (0-100) | Maximum: 100 Minimum: 0 Optional: {} | |
transferRate integer | TransferRate is the current transfer rate in bytes per second | Optional: {} |
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] Optional: {} |
size Quantity | Size specifies the default root disk size | 40Gi | Optional: {} |
iops integer | IOPS specifies the default IOPS limit | Maximum: 100000 Minimum: 100 Optional: {} | |
storageClass string | StorageClass specifies the default storage class | MaxLength: 253 Optional: {} |
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] Optional: {} |
expandPolicy string | ExpandPolicy defines how the disk can be expanded | Offline | Enum: [Online Offline] Optional: {} |
storageClass string | StorageClass specifies the storage class (optional) | Optional: {} | |
scsi SCSIControllerSpec | SCSI specifies SCSI controller configuration (vSphere only) | 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) | Optional: {} | |
portgroupType string | PortgroupType specifies the type of portgroup | Enum: [ephemeral distributed] Optional: {} |
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 Optional: {} |
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] Optional: {} | |
requireEncryption boolean | RequireEncryption mandates encryption (fails if not available) | false | Optional: {} |
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 | Optional: {} |
defaultPolicy string | DefaultPolicy specifies the default firewall policy | ACCEPT | Enum: [ACCEPT DROP REJECT] Optional: {} |
rules FirewallRule array | Rules contains firewall rules | MaxItems: 100 Optional: {} |
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] Optional: {} | |
sourceCIDR string | SourceCIDR specifies the source CIDR | Optional: {} | |
destinationCIDR string | DestinationCIDR specifies the destination CIDR | Optional: {} | |
ports PortRange | Ports specifies the port range | Optional: {} | |
priority integer | Priority specifies the rule priority | Maximum: 1000 Minimum: 1 Optional: {} |
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-_]+$ Optional: {} | |
memory integer | Memory specifies GPU memory in MiB | Minimum: 512 Optional: {} |
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 Optional: {} | |
workingDirectory string | WorkingDirectory specifies the working directory | MaxLength: 500 Optional: {} | |
runAsUser string | RunAsUser specifies the user to run the command as | MaxLength: 255 Optional: {} | |
timeout Duration | Timeout specifies the command timeout | 5m | Optional: {} |
stage string | Stage specifies when to run the command | post-customization | Enum: [pre-customization post-customization first-boot] Optional: {} |
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 | Optional: {} | |
bearer BearerTokenConfig | Bearer contains bearer token authentication | Optional: {} | |
clientCert ClientCertConfig | ClientCert contains client certificate authentication | Optional: {} |
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) | Optional: {} | |
scheme string | Scheme to use for connecting (HTTP or HTTPS) | HTTP | Enum: [HTTP HTTPS] Optional: {} |
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 Optional: {} | |
checksum string | Checksum provides expected checksum for verification | Optional: {} | |
checksumType ChecksumType | ChecksumType specifies the checksum algorithm | sha256 | Enum: [md5 sha1 sha256 sha512] Optional: {} |
authentication HTTPAuthentication | Authentication contains authentication configuration | Optional: {} | |
timeout Duration | Timeout specifies the download timeout | 30m | Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the affinity rule | Enum: [strict preferred] Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the anti-affinity rule | Enum: [strict preferred] Optional: {} |
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 | Optional: {} | |
allocatedAt Time | AllocatedAt is when the IP was allocated | Optional: {} | |
leaseExpiry Time | LeaseExpiry is when the IP lease expires (for DHCP) | Optional: {} |
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] Optional: {} |
staticConfig StaticIPConfig | StaticConfig contains static IP configuration | Optional: {} | |
poolConfig IPPoolConfig | PoolConfig contains IP pool configuration | Optional: {} | |
dhcpConfig DHCPConfig | DHCPConfig contains DHCP configuration | Optional: {} | |
dnsConfig DNSConfig | DNSConfig contains DNS configuration | Optional: {} |
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]?)$ Optional: {} |
Ignition¶
Ignition defines Ignition configuration
Appears in: - UserData
| Field | Description | Default | Validation |
|---|---|---|---|
inline string | Inline contains inline Ignition data | Optional: {} | |
secretRef LocalObjectReference | SecretRef references a Secret containing Ignition data | Optional: {} |
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 | Optional: {} | |
transferredBytes integer | TransferredBytes is the number of bytes transferred so far | Optional: {} | |
percentage integer | Percentage is the completion percentage (0-100) | Maximum: 100 Minimum: 0 Optional: {} | |
transferRate integer | TransferRate is the current transfer rate in bytes per second | Optional: {} | |
eta Duration | ETA is the estimated time to completion | Optional: {} | |
startTime Time | StartTime is when the import started | Optional: {} |
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 Optional: {} | |
description string | Description provides a description of the image | MaxLength: 1024 Optional: {} | |
version string | Version specifies the image version | MaxLength: 100 Optional: {} | |
architecture string | Architecture specifies the CPU architecture | amd64 | Enum: [amd64 arm64 x86_64 aarch64] Optional: {} |
tags object (keys:string, values:string) | Tags are key-value pairs for categorizing the image | MaxProperties: 50 Optional: {} | |
annotations object (keys:string, values:string) | Annotations are additional metadata annotations | MaxProperties: 50 Optional: {} |
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 | Optional: {} |
removeUnusedSpace boolean | RemoveUnusedSpace removes unused space from the image | false | Optional: {} |
convertFormat ImageFormat | ConvertFormat converts the image to a more optimal format | Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf] Optional: {} | |
enableDeltaSync boolean | EnableDeltaSync enables delta synchronization for updates | false | Optional: {} |
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] Optional: {} |
validateChecksum boolean | ValidateChecksum validates the image checksum | true | Optional: {} |
timeout Duration | Timeout defines the maximum time to wait for preparation | 30m | Optional: {} |
retries integer | Retries defines the number of retry attempts for failed operations | 3 | Maximum: 10 Minimum: 0 Optional: {} |
force boolean | Force forces re-import even if image exists | Optional: {} | |
storage StoragePrepareOptions | Storage defines storage-specific preparation options | Optional: {} | |
optimization ImageOptimization | Optimization defines image optimization options | Optional: {} |
ImageSource¶
ImageSource defines the source of the VM image
Appears in: - VMImageSpec
| Field | Description | Default | Validation |
|---|---|---|---|
vsphere VSphereImageSource | VSphere contains vSphere-specific image configuration | Optional: {} | |
libvirt LibvirtImageSource | Libvirt contains Libvirt-specific image configuration | Optional: {} | |
http HTTPImageSource | HTTP contains HTTP/HTTPS download configuration | Optional: {} | |
registry RegistryImageSource | Registry contains container registry image configuration | Optional: {} | |
dataVolume DataVolumeImageSource | DataVolume contains DataVolume-based image configuration | Optional: {} | |
proxmox ProxmoxImageSource | Proxmox contains Proxmox VE-specific image configuration | Optional: {} |
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. | Optional: {} | |
format string | Format specifies the disk format (qcow2, vmdk, raw, etc.). | qcow2 | Enum: [qcow2 vmdk raw vdi vhdx] Optional: {} |
source string | Source indicates where the disk came from. | Enum: [migration clone import snapshot manual] Optional: {} | |
migrationRef LocalObjectReference | MigrationRef references the VMMigration that imported this disk. This provides traceability and audit trail for migrated disks. | Optional: {} | |
sizeGiB integer | SizeGiB specifies the expected disk size in GiB. Used for validation and capacity planning. | Minimum: 1 Optional: {} |
KernelInfo¶
KernelInfo contains kernel information
Appears in: - OSDistribution
| Field | Description | Default | Validation |
|---|---|---|---|
version string | Version is the kernel version | Optional: {} | |
type string | Type is the kernel type | Enum: [linux windows freebsd other] Optional: {} |
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 | Optional: {} | |
url string | URL provides a URL to download the image | Pattern: ^(https?\|ftp)://.* Optional: {} | |
format ImageFormat | Format specifies the image format | qcow2 | Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf] Optional: {} |
checksum string | Checksum provides expected checksum for verification | Optional: {} | |
checksumType ChecksumType | ChecksumType specifies the checksum algorithm | sha256 | Enum: [md5 sha1 sha256 sha512] Optional: {} |
storagePool string | StoragePool specifies the libvirt storage pool | MaxLength: 255 Optional: {} |
LibvirtNetworkConfig¶
LibvirtNetworkConfig defines Libvirt-specific network configuration
Appears in: - NetworkConfig
| Field | Description | Default | Validation |
|---|---|---|---|
networkName string | NetworkName specifies the Libvirt network name | MaxLength: 255 Optional: {} | |
bridge BridgeConfig | Bridge specifies the bridge configuration | Optional: {} | |
model string | Model specifies the network device model | virtio | Enum: [virtio e1000 e1000e rtl8139 pcnet ne2k_pci] Optional: {} |
driver NetworkDriverConfig | Driver specifies the network driver configuration | Optional: {} | |
filterRef NetworkFilterRef | FilterRef specifies network filter configuration | Optional: {} |
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 Optional: {} | |
allocationPolicy string | AllocationPolicy defines how storage is allocated | Enum: [eager lazy] Optional: {} | |
preallocation string | Preallocation specifies preallocation mode | Enum: [off metadata falloc full] Optional: {} |
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 | Optional: {} | |
httpGet HTTPGetAction | HTTPGet specifies an HTTP GET request | Optional: {} | |
snapshot SnapshotAction | Snapshot specifies a snapshot to create | Optional: {} |
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 | Optional: {} |
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 | Optional: {} | |
targetFormat string | TargetFormat is the target disk format | Optional: {} | |
targetSize Quantity | TargetSize is the target disk size in bytes | Optional: {} | |
checksum string | Checksum is the SHA256 checksum of the disk | Optional: {} | |
sourceChecksum string | SourceChecksum is the SHA256 checksum of the source disk | Optional: {} | |
targetChecksum string | TargetChecksum is the SHA256 checksum of the target disk | Optional: {} |
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] Optional: {} | |
createdBy string | CreatedBy identifies who or what created the migration | MaxLength: 255 Optional: {} | |
project string | Project identifies the project this migration belongs to | MaxLength: 255 Optional: {} | |
environment string | Environment specifies the environment | Enum: [dev staging prod test qa uat] Optional: {} | |
tags object (keys:string, values:string) | Tags are key-value pairs for categorizing the migration | MaxProperties: 50 Optional: {} |
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] Optional: {} | |
compress boolean | Compress enables compression during transfer | false | Optional: {} |
verifyChecksums boolean | VerifyChecksums enables checksum verification | true | Optional: {} |
timeout Duration | Timeout defines the maximum time for the entire migration | 4h | Optional: {} |
retryPolicy MigrationRetryPolicy | RetryPolicy defines retry behavior for failed operations | Optional: {} | |
cleanupPolicy string | CleanupPolicy defines cleanup behavior | OnSuccess | Enum: [Always OnSuccess Never] Optional: {} |
validationChecks ValidationChecks | ValidationChecks defines validation checks to perform | Optional: {} |
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 | Optional: {} | |
transferredBytes integer | TransferredBytes is the bytes transferred so far | Optional: {} | |
percentage integer | Percentage is the overall completion percentage (0-100) | Maximum: 100 Minimum: 0 Optional: {} | |
eta Duration | ETA is the estimated time to completion | Optional: {} | |
transferRate integer | TransferRate is the current transfer rate in bytes per second | Optional: {} | |
phaseStartTime Time | PhaseStartTime is when the current phase started | Optional: {} |
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 Optional: {} |
retryDelay Duration | RetryDelay is the delay between retry attempts | 5m | Optional: {} |
backoffMultiplier integer | BackoffMultiplier is the multiplier for exponential backoff | 2 | Maximum: 10 Minimum: 1 Optional: {} |
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) | Optional: {} | |
snapshotRef LocalObjectReference | SnapshotRef references a specific snapshot to migrate from | Optional: {} | |
createSnapshot boolean | CreateSnapshot indicates whether to create a snapshot before migration | true | Optional: {} |
powerOffBeforeMigration boolean | PowerOffBeforeMigration ensures VM is powered off before migration | false | Optional: {} |
deleteAfterMigration boolean | DeleteAfterMigration deletes source VM after successful migration | false | Optional: {} |
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 | Optional: {} |
MigrationStorageInfo¶
MigrationStorageInfo contains information about intermediate storage
Appears in: - VMMigrationStatus
| Field | Description | Default | Validation |
|---|---|---|---|
url string | URL is the intermediate storage URL | Optional: {} | |
size Quantity | Size is the size of data in intermediate storage | Optional: {} | |
uploadedAt Time | UploadedAt is when the data was uploaded | Optional: {} | |
cleanedUp boolean | CleanedUp indicates if intermediate storage was cleaned up | Optional: {} |
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])?$ Optional: {} | |
providerRef ObjectRef | ProviderRef references the target provider | ||
classRef LocalObjectReference | ClassRef references the VM class for resource allocation | Optional: {} | |
imageRef LocalObjectReference | ImageRef references the VM image (usually not needed for migration) | Optional: {} | |
networks VMNetworkRef array | Networks defines network configuration for target VM | MaxItems: 10 Optional: {} | |
disks DiskSpec array | Disks defines disk configuration overrides | MaxItems: 20 Optional: {} | |
placementRef LocalObjectReference | PlacementRef references placement policy for the target VM | Optional: {} | |
powerOn boolean | PowerOn indicates whether to power on the target VM after migration | false | Optional: {} |
labels object (keys:string, values:string) | Labels defines labels to apply to the target VM | MaxProperties: 50 Optional: {} | |
annotations object (keys:string, values:string) | Annotations defines annotations to apply to the target VM | MaxProperties: 50 Optional: {} |
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 | Optional: {} | |
libvirt LibvirtNetworkConfig | Libvirt contains Libvirt-specific network configuration | Optional: {} | |
proxmox ProxmoxNetworkConfig | Proxmox contains Proxmox VE-specific network configuration | Optional: {} | |
type NetworkType | Type specifies the network type | bridged | Enum: [bridged nat isolated host-only external] Optional: {} |
mtu integer | MTU specifies the Maximum Transmission Unit | 1500 | Maximum: 9000 Minimum: 68 Optional: {} |
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]?)$ Optional: {} | |
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]?)$ Optional: {} | |
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]?)$ Optional: {} | |
dns string array | DNS sets DNS servers | MaxItems: 5 Optional: {} | |
macAddress string | MACAddress sets a custom MAC address | Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$ Optional: {} | |
dhcp boolean | DHCP enables DHCP for this network | Optional: {} |
NetworkDriverConfig¶
NetworkDriverConfig defines network driver configuration
Appears in: - LibvirtNetworkConfig
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name is the driver name | Enum: [kvm vfio uio] Optional: {} | |
queues integer | Queues specifies the number of queues | Maximum: 16 Minimum: 1 Optional: {} | |
txMode string | TxMode specifies the TX mode | Enum: [iothread timer] Optional: {} | |
ioEventFD boolean | IOEventFD enables IO event file descriptor | Optional: {} | |
eventIDX boolean | EventIDX enables event index | Optional: {} |
NetworkEncryptionConfig¶
NetworkEncryptionConfig defines network encryption settings
Appears in: - NetworkSecurityConfig
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if encryption is enabled | false | Optional: {} |
protocol string | Protocol specifies the encryption protocol | Enum: [ipsec wireguard openvpn] Optional: {} | |
keyRef LocalObjectReference | KeyRef references encryption keys | Optional: {} |
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 Optional: {} |
NetworkIsolationConfig¶
NetworkIsolationConfig defines network isolation settings
Appears in: - NetworkSecurityConfig
| Field | Description | Default | Validation |
|---|---|---|---|
mode string | Mode specifies the isolation mode | Enum: [none strict custom] Optional: {} | |
allowedNetworks string array | AllowedNetworks contains allowed network CIDRs | MaxItems: 50 Optional: {} | |
deniedNetworks string array | DeniedNetworks contains denied network CIDRs | MaxItems: 50 Optional: {} |
NetworkMetadata¶
NetworkMetadata contains network metadata and labels
Appears in: - VMNetworkAttachmentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
displayName string | DisplayName is a human-readable name | MaxLength: 255 Optional: {} | |
description string | Description provides a description | MaxLength: 1024 Optional: {} | |
environment string | Environment specifies the environment (dev, staging, prod, qa, uat) | Enum: [dev staging prod test qa uat] Optional: {} | |
tags object (keys:string, values:string) | Tags are key-value pairs for categorizing | MaxProperties: 50 Optional: {} |
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 Optional: {} | |
egressLimit integer | EgressLimit limits outbound traffic in bits per second | Minimum: 1000 Optional: {} | |
priority integer | Priority specifies traffic priority | Maximum: 7 Minimum: 0 Optional: {} | |
dscp integer | DSCP specifies DSCP marking | Maximum: 63 Minimum: 0 Optional: {} |
NetworkSecurityConfig¶
NetworkSecurityConfig defines network security settings
Appears in: - VMNetworkAttachmentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
firewall FirewallConfig | Firewall contains firewall configuration | Optional: {} | |
isolation NetworkIsolationConfig | Isolation contains network isolation settings | Optional: {} | |
encryption NetworkEncryptionConfig | Encryption contains network encryption settings | Optional: {} |
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 | Optional: {} | |
bytesSent integer | BytesSent is the total bytes sent | Optional: {} | |
packetsReceived integer | PacketsReceived is the total packets received | Optional: {} | |
packetsSent integer | PacketsSent is the total packets sent | Optional: {} |
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] Optional: {} | |
version string | Version is the distribution version | MaxLength: 100 Optional: {} | |
variant string | Variant is the distribution variant (e.g., server, desktop) | MaxLength: 100 Optional: {} | |
family string | Family is the OS family | Enum: [linux windows bsd other] Optional: {} | |
kernel KernelInfo | Kernel specifies kernel information | Optional: {} |
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])?$ Optional: {} |
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 | Optional: {} | |
storageClassName string | StorageClassName for auto-created PVC Required if Name is not specified | Optional: {} | |
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?)$ Optional: {} | |
accessMode string | AccessMode for auto-created PVC | ReadWriteMany | Enum: [ReadWriteOnce ReadWriteMany ReadOnlyMany] Optional: {} |
mountPath string | MountPath within pods where PVC is mounted | /mnt/migration-storage | Optional: {} |
PasswordSpec¶
PasswordSpec defines password configuration
Appears in: - DomainJoinSpec - SysprepCustomization
| Field | Description | Default | Validation |
|---|---|---|---|
value string | Value is the plaintext password (not recommended for production) | Optional: {} | |
secretRef LocalObjectReference | SecretRef references a secret containing the password | Optional: {} | |
secretKey string | SecretKey is the key in the secret containing the password | password | Optional: {} |
PerformanceProfile¶
PerformanceProfile defines performance-related settings
Appears in: - VMClassSpec
| Field | Description | Default | Validation |
|---|---|---|---|
latencySensitivity string | LatencySensitivity configures latency sensitivity | normal | Enum: [low normal high] Optional: {} |
cpuHotAddEnabled boolean | CPUHotAddEnabled allows adding CPUs while VM is running | false | Optional: {} |
memoryHotAddEnabled boolean | MemoryHotAddEnabled allows adding memory while VM is running | false | Optional: {} |
virtualizationBasedSecurity boolean | VirtualizationBasedSecurity enables VBS features | false | Optional: {} |
nestedVirtualization boolean | NestedVirtualization enables nested virtualization | false | Optional: {} |
hyperThreadingPolicy string | HyperThreadingPolicy controls hyperthreading usage | auto | Enum: [auto prefer avoid require] Optional: {} |
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. | Optional: {} | |
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 | Optional: {} | |
host string | Host specifies the target host | Optional: {} | |
datastore string | Datastore specifies the target datastore. Mutually exclusive with StoragePod; Datastore takes precedence if both are set. | Optional: {} | |
storagePod string | StoragePod specifies a vSphere Datastore Cluster (StoragePod) to use for automatic datastore selection. The provider will pick the datastore within the cluster that has the most free space. Ignored when Datastore is also set. | Optional: {} | |
folder string | Folder specifies the target folder | Optional: {} | |
resourcePool string | ResourcePool specifies the target resource pool | Optional: {} |
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 Optional: {} | |
datastores string array | Datastores specifies allowed datastores for VM placement | MaxItems: 100 Optional: {} | |
hosts string array | Hosts specifies allowed hosts for VM placement | MaxItems: 200 Optional: {} | |
folders string array | Folders specifies allowed folders for VM placement | MaxItems: 50 Optional: {} | |
resourcePools string array | ResourcePools specifies allowed resource pools for VM placement | MaxItems: 100 Optional: {} | |
networks string array | Networks specifies allowed networks for VM placement | MaxItems: 50 Optional: {} | |
zones string array | Zones specifies allowed availability zones | MaxItems: 20 Optional: {} | |
regions string array | Regions specifies allowed regions | MaxItems: 20 Optional: {} | |
nodeSelector object (keys:string, values:string) | NodeSelector specifies node selection criteria for libvirt provider | MaxProperties: 20 Optional: {} | |
tolerations VMToleration array | Tolerations specifies tolerations for node placement | MaxItems: 20 Optional: {} | |
excludedClusters string array | ExcludedClusters specifies clusters to exclude from placement | MaxItems: 50 Optional: {} | |
excludedHosts string array | ExcludedHosts specifies hosts to exclude from placement | MaxItems: 200 Optional: {} | |
excludedDatastores string array | ExcludedDatastores specifies datastores to exclude from placement | MaxItems: 100 Optional: {} |
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 | Optional: {} | |
successfulPlacements integer | SuccessfulPlacements is the number of successful placements | Optional: {} | |
failedPlacements integer | FailedPlacements is the number of failed placements | Optional: {} | |
averagePlacementTime Duration | AveragePlacementTime is the average time for VM placement | Optional: {} | |
constraintViolations integer | ConstraintViolations is the number of constraint violations | Optional: {} | |
lastPlacementTime Time | LastPlacementTime is when the last VM was placed using this policy | Optional: {} | |
placementDistribution object (keys:string, values:integer) | PlacementDistribution shows how VMs are distributed across hosts/clusters | Optional: {} |
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 | Optional: {} | |
severity string | Severity indicates the severity of the conflict | Enum: [low medium high critical] Optional: {} | |
resolutionSuggestion string | ResolutionSuggestion provides suggestions for resolving the conflict | Optional: {} |
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 | Optional: {} | |
warnings string array | Warnings lists any validation warnings | MaxItems: 20 Optional: {} | |
errors string array | Errors lists any validation errors | MaxItems: 20 Optional: {} | |
supportedFeatures string array | SupportedFeatures lists features supported by the provider | MaxItems: 50 Optional: {} | |
unsupportedFeatures string array | UnsupportedFeatures lists features not supported by the provider | MaxItems: 50 Optional: {} | |
lastValidated Time | LastValidated is when this validation was last performed | Optional: {} |
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 Optional: {} |
PortgroupSecurityConfig¶
PortgroupSecurityConfig defines portgroup security settings
Appears in: - VSphereNetworkConfig
| Field | Description | Default | Validation |
|---|---|---|---|
allowPromiscuous boolean | AllowPromiscuous allows promiscuous mode | false | Optional: {} |
allowMACChanges boolean | AllowMACChanges allows MAC address changes | true | Optional: {} |
allowForgedTransmits boolean | AllowForgedTransmits allows forged transmits | true | Optional: {} |
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 | Optional: {} | |
discoveredVMs integer | DiscoveredVMs is the count of VMs found in provider | Optional: {} | |
adoptedVMs integer | AdoptedVMs is the count of VMs successfully adopted | Optional: {} | |
failedAdoptions integer | FailedAdoptions is the count of failed adoption attempts | Optional: {} | |
message string | Message provides details about adoption status | Optional: {} |
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. Mutually exclusive with StoragePod; Datastore takes precedence if both are set. | MaxLength: 255 Optional: {} | |
storagePod string | StoragePod specifies a vSphere Datastore Cluster (StoragePod) used as the default for automatic datastore selection when no explicit Datastore is specified. | MaxLength: 255 Optional: {} | |
cluster string | Cluster specifies the default cluster | MaxLength: 255 Optional: {} | |
folder string | Folder specifies the default folder | MaxLength: 255 Optional: {} | |
resourcePool string | ResourcePool specifies the default resource pool | MaxLength: 255 Optional: {} | |
network string | Network specifies the default network | MaxLength: 255 Optional: {} |
ProviderHealthCheck¶
ProviderHealthCheck defines health checking configuration
Appears in: - ProviderSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates whether health checking is enabled | true | Optional: {} |
interval Duration | Interval defines how often to check provider health | 30s | Optional: {} |
timeout Duration | Timeout defines the timeout for health checks | 10s | Optional: {} |
failureThreshold integer | FailureThreshold is the number of consecutive failures before marking unhealthy | 3 | Maximum: 10 Minimum: 1 Optional: {} |
successThreshold integer | SuccessThreshold is the number of consecutive successes before marking healthy | 1 | Maximum: 10 Minimum: 1 Optional: {} |
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 | Optional: {} | |
path string | Path is the provider-specific image path | Optional: {} | |
size Quantity | Size is the image size on this provider | Optional: {} | |
lastUpdated Time | LastUpdated is when the status was last updated | Optional: {} | |
message string | Message provides provider-specific status information | Optional: {} |
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 | Optional: {} | |
state string | State is the provider-specific network state | Optional: {} | |
lastUpdated Time | LastUpdated is when the status was last updated | Optional: {} | |
message string | Message provides provider-specific status information | Optional: {} |
ProviderResourceUsage¶
ProviderResourceUsage provides resource usage statistics
Appears in: - ProviderStatus
| Field | Description | Default | Validation |
|---|---|---|---|
cpu ResourceUsageStats | CPU usage statistics | Optional: {} | |
memory ResourceUsageStats | Memory usage statistics | Optional: {} | |
storage ResourceUsageStats | Storage usage statistics | Optional: {} | |
network NetworkUsageStats | Network usage statistics | Optional: {} |
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] Optional: {} |
image string | Image is the container image for remote providers (required) Supports formats: image:tag, image@digest, or image:tag@digest | Pattern: ^[a-zA-Z0-9._/-]+(:[a-zA-Z0-9._-]+)?(@[a-zA-Z0-9]+:[a-fA-F0-9]\{64\})?$ | |
imagePullPolicy PullPolicy | ImagePullPolicy defines the image pull policy | IfNotPresent | Enum: [Always Never IfNotPresent] Optional: {} |
imagePullSecrets LocalObjectReference array | ImagePullSecrets are references to secrets for pulling images | MaxItems: 10 Optional: {} | |
replicas integer | Replicas is the number of provider instances (default 1) | 1 | Maximum: 10 Minimum: 1 Optional: {} |
service ProviderServiceSpec | Service defines the service configuration | Optional: {} | |
resources ResourceRequirements | Resources defines resource requirements for provider pods | Optional: {} | |
nodeSelector object (keys:string, values:string) | NodeSelector is a selector which must be true for the pod to fit on a node | Optional: {} | |
tolerations Toleration array | Tolerations allow pods to schedule onto nodes with matching taints | MaxItems: 20 Optional: {} | |
affinity Affinity | Affinity defines scheduling constraints | Optional: {} | |
securityContext SecurityContext | SecurityContext defines security context for provider pods | Optional: {} | |
logLevel string | LogLevel sets the log level for provider pods Defaults to the controller's log level if not specified | info | Enum: [debug info warn error] Optional: {} |
logFormat string | LogFormat sets the log format for provider pods | text | Enum: [text json] Optional: {} |
env EnvVar array | Env defines additional environment variables for provider pods | MaxItems: 50 Optional: {} | |
livenessProbe Probe | LivenessProbe defines the liveness probe for provider pods | Optional: {} | |
readinessProbe Probe | ReadinessProbe defines the readiness probe for provider pods | Optional: {} |
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] Optional: {} | |
endpoint string | Endpoint is the gRPC endpoint (host:port) for remote providers | Optional: {} | |
serviceRef LocalObjectReference | ServiceRef references the Kubernetes service for remote providers | Optional: {} | |
phase ProviderRuntimePhase | Phase indicates the runtime phase | Enum: [Pending Starting Running Stopping Failed] Optional: {} | |
message string | Message provides additional details about the runtime status | Optional: {} | |
readyReplicas integer | ReadyReplicas is the number of ready provider replicas | Optional: {} | |
availableReplicas integer | AvailableReplicas is the number of available provider replicas | Optional: {} |
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 Optional: {} |
tls ProviderTLSSpec | TLS defines TLS configuration for the service | Optional: {} |
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 | Optional: {} | |
path string | Path is the provider-specific snapshot path | Optional: {} | |
state string | State is the provider-specific snapshot state | Optional: {} | |
lastUpdated Time | LastUpdated is when the status was last updated | Optional: {} | |
message string | Message provides provider-specific status information | Optional: {} |
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 | Optional: {} |
defaults ProviderDefaults | Defaults provides default placement settings | Optional: {} | |
rateLimit RateLimit | RateLimit configures API rate limiting | Optional: {} | |
runtime ProviderRuntimeSpec | Runtime defines how the provider is executed (required) | ||
healthCheck ProviderHealthCheck | HealthCheck defines health checking configuration | Optional: {} | |
connectionPooling ConnectionPooling | ConnectionPooling defines connection pooling settings | Optional: {} |
ProviderStatus¶
ProviderStatus defines the observed state of Provider
Appears in: - Provider
| Field | Description | Default | Validation |
|---|---|---|---|
healthy boolean | Healthy indicates if the provider is healthy | Optional: {} | |
lastHealthCheck Time | LastHealthCheck records the last health check time | Optional: {} | |
runtime ProviderRuntimeStatus | Runtime provides runtime status information | Optional: {} | |
conditions Condition array | Conditions represent the latest available observations | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
capabilities ProviderCapability array | Capabilities lists the provider's supported capabilities | Enum: [VirtualMachines Snapshots Cloning LiveMigration ConsoleAccess DiskManagement NetworkManagement GPUPassthrough HighAvailability Backup Templates] Optional: {} | |
reportedCapabilities ReportedCapabilities | ReportedCapabilities is the provider's self-reported capability set, fetched from the provider GetCapabilities RPC (issue #176). It reflects what the running provider advertises and is consumed by the manager to surface features and (when capability enforcement is enabled) to gate capability-dependent operations. | Optional: {} | |
version string | Version reports the provider version | Optional: {} | |
connectedVMs integer | ConnectedVMs is the number of VMs currently managed by this provider | Optional: {} | |
resourceUsage ProviderResourceUsage | ResourceUsage provides resource usage statistics | Optional: {} | |
adoption ProviderAdoptionStatus | Adoption tracks VM adoption status | Optional: {} |
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 | Optional: {} | |
insecureSkipVerify boolean | InsecureSkipVerify disables TLS certificate verification | false | Optional: {} |
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 Optional: {} | |
templateName string | TemplateName specifies an existing Proxmox template name | MaxLength: 255 Optional: {} | |
storage string | Storage specifies the Proxmox storage for cloning Examples: "local-lvm", "vms", "nfs-storage" | MaxLength: 255 Optional: {} | |
node string | Node specifies the Proxmox node where the template exists | MaxLength: 255 Optional: {} | |
format string | Format specifies the disk format | qcow2 | Enum: [raw qcow2 vmdk] Optional: {} |
fullClone boolean | FullClone determines if this should be a full clone (default) or linked clone | true | Optional: {} |
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]+$ Optional: {} | |
model string | Model specifies the network card model | virtio | Enum: [virtio e1000 rtl8139 vmxnet3] Optional: {} |
vlanTag integer | VLANTag specifies the VLAN tag | Maximum: 4094 Minimum: 1 Optional: {} | |
firewall boolean | Firewall enables the Proxmox firewall for this interface | false | Optional: {} |
rateLimit integer | RateLimit specifies the bandwidth limit in MB/s | Minimum: 1 Optional: {} | |
mtu integer | MTU specifies the Maximum Transmission Unit | Maximum: 65520 Minimum: 68 Optional: {} |
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 Optional: {} |
burst integer | Burst specifies the burst capacity | 20 | Maximum: 2000 Minimum: 1 Optional: {} |
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 | Optional: {} | |
format ImageFormat | Format specifies the expected image format | qcow2 | Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf] Optional: {} |
ReportedCapabilities¶
ReportedCapabilities mirrors the provider.v1 GetCapabilitiesResponse — the capability set a provider advertises at runtime via the GetCapabilities RPC (issue #176). All fields are optional and default to the zero value when a provider does not advertise them.
Appears in: - ProviderStatus
| Field | Description | Default | Validation |
|---|---|---|---|
supportsReconfigureOnline boolean | SupportsReconfigureOnline reports online CPU/memory reconfigure support. | Optional: {} | |
supportsDiskExpansionOnline boolean | SupportsDiskExpansionOnline reports online disk expansion support. | Optional: {} | |
supportsSnapshots boolean | SupportsSnapshots reports VM snapshot support. | Optional: {} | |
supportsMemorySnapshots boolean | SupportsMemorySnapshots reports memory-inclusive snapshot support. | Optional: {} | |
supportsLinkedClones boolean | SupportsLinkedClones reports linked (copy-on-write) clone support. | Optional: {} | |
supportsImageImport boolean | SupportsImageImport reports image import/preparation support. | Optional: {} | |
supportedDiskTypes string array | SupportedDiskTypes lists supported disk formats. | Optional: {} | |
supportedNetworkTypes string array | SupportedNetworkTypes lists supported NIC models. | Optional: {} | |
supportsDiskExport boolean | SupportsDiskExport reports disk export (migration source) support. | Optional: {} | |
supportsDiskImport boolean | SupportsDiskImport reports disk import (migration target) support. | Optional: {} | |
supportedExportFormats string array | SupportedExportFormats lists supported export formats. | Optional: {} | |
supportedImportFormats string array | SupportedImportFormats lists supported import formats. | Optional: {} | |
supportsExportCompression boolean | SupportsExportCompression reports export compression support. | Optional: {} |
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 Optional: {} | |
minMemoryPerHost Quantity | MinMemoryPerHost specifies minimum memory available per host | Optional: {} | |
minDiskSpacePerHost Quantity | MinDiskSpacePerHost specifies minimum disk space available per host | Optional: {} | |
maxCPUUtilization integer | MaxCPUUtilization specifies maximum allowed CPU utilization | Maximum: 100 Minimum: 0 Optional: {} | |
maxMemoryUtilization integer | MaxMemoryUtilization specifies maximum allowed memory utilization | Maximum: 100 Minimum: 0 Optional: {} | |
maxDiskUtilization integer | MaxDiskUtilization specifies maximum allowed disk utilization | Maximum: 100 Minimum: 0 Optional: {} | |
requiredFeatures string array | RequiredFeatures lists required hardware features | MaxItems: 20 Optional: {} | |
preferredFeatures string array | PreferredFeatures lists preferred hardware features | MaxItems: 20 Optional: {} |
ResourceUsageStats¶
ResourceUsageStats represents usage statistics for a resource
Appears in: - ProviderResourceUsage
| Field | Description | Default | Validation |
|---|---|---|---|
total integer | Total available capacity | Optional: {} | |
used integer | Used capacity | Optional: {} | |
available integer | Available capacity | Optional: {} | |
usagePercent integer | Usage percentage (0-100) | Optional: {} |
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% | Optional: {} |
maxSurge IntOrString | MaxSurge is the maximum number of VMs that can be created above desired replica count | 25% | Optional: {} |
partition integer | Partition indicates the ordinal at which the VMSet should be partitioned for updates | Minimum: 0 Optional: {} | |
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] Optional: {} |
SCSIControllerSpec¶
SCSIControllerSpec defines SCSI controller configuration for vSphere
Appears in: - DiskSpec
| Field | Description | Default | Validation |
|---|---|---|---|
controller integer | Controller specifies the SCSI controller bus number (0-3) If not specified, uses the first available controller | Maximum: 3 Minimum: 0 Optional: {} | |
sharedBus string | SharedBus specifies the SCSI bus sharing mode | noSharing | Enum: [noSharing virtualSharing physicalSharing] Optional: {} |
controllerType string | ControllerType specifies the SCSI controller type | pvscsi | Enum: [lsilogic buslogic lsilogic-sas pvscsi] Optional: {} |
SecurityConstraints¶
SecurityConstraints defines security-based placement constraints
Appears in: - VMPlacementPolicySpec
| Field | Description | Default | Validation |
|---|---|---|---|
requireSecureBoot boolean | RequireSecureBoot requires hosts that support secure boot | Optional: {} | |
requireTPM boolean | RequireTPM requires hosts that support TPM | Optional: {} | |
requireEncryptedStorage boolean | RequireEncryptedStorage requires hosts that support encrypted storage | Optional: {} | |
requireNUMATopology boolean | RequireNUMATopology requires hosts that support NUMA topology | Optional: {} | |
allowedSecurityGroups string array | AllowedSecurityGroups lists allowed security groups | MaxItems: 20 Optional: {} | |
deniedSecurityGroups string array | DeniedSecurityGroups lists denied security groups | MaxItems: 20 Optional: {} | |
isolationLevel string | IsolationLevel specifies the required isolation level | Enum: [none basic strict maximum] Optional: {} | |
trustLevel string | TrustLevel specifies the required trust level | Enum: [untrusted basic trusted highly-trusted] Optional: {} |
SecurityProfile¶
SecurityProfile defines security-related settings
Appears in: - VMClassSpec
| Field | Description | Default | Validation |
|---|---|---|---|
secureBoot boolean | SecureBoot enables secure boot functionality | false | Optional: {} |
tpmEnabled boolean | TPMEnabled enables TPM (Trusted Platform Module) | false | Optional: {} |
tpmVersion string | TPMVersion specifies the TPM version | Enum: [1.2 2] Optional: {} | |
vtdEnabled boolean | VTDEnabled enables Intel VT-d or AMD-Vi | false | Optional: {} |
encryptionPolicy EncryptionPolicy | EncryptionPolicy defines VM encryption settings | Optional: {} |
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 | Optional: {} | |
description string | Description provides context for the snapshot | Optional: {} |
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])?$ Optional: {} | |
description string | Description provides additional context for the snapshot | MaxLength: 1024 Optional: {} | |
includeMemory boolean | IncludeMemory indicates whether to include memory state in the snapshot | false | Optional: {} |
quiesce boolean | Quiesce indicates whether to quiesce the file system before snapshotting | true | Optional: {} |
type SnapshotType | Type specifies the snapshot type | Standard | Enum: [Standard Crash Application] Optional: {} |
compression boolean | Compression enables snapshot compression | false | Optional: {} |
encryption SnapshotEncryption | Encryption enables snapshot encryption | Optional: {} | |
consistencyLevel string | ConsistencyLevel defines the consistency level required | FilesystemConsistent | Enum: [CrashConsistent FilesystemConsistent ApplicationConsistent] Optional: {} |
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] Optional: {} | |
keyRef LocalObjectReference | KeyRef references encryption keys | Optional: {} |
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 Optional: {} | |
pinned boolean | Pinned indicates whether the snapshot is pinned (protected from automatic deletion) | false | Optional: {} |
application string | Application specifies the application that created the snapshot | MaxLength: 255 Optional: {} | |
purpose string | Purpose describes the purpose of the snapshot | Enum: [backup testing migration restore-point update other] Optional: {} | |
environment string | Environment specifies the environment | Enum: [dev staging prod test qa uat] Optional: {} |
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 | Optional: {} | |
completedBytes integer | CompletedBytes is the number of bytes completed | Optional: {} | |
percentage integer | Percentage is the completion percentage (0-100) | Maximum: 100 Minimum: 0 Optional: {} | |
startTime Time | StartTime is when the snapshot creation started | Optional: {} | |
eta Duration | ETA is the estimated time to completion | Optional: {} |
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 | Optional: {} | |
uid string | UID is the snapshot UID | Optional: {} |
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 | Optional: {} | |
maxCount integer | MaxCount is the maximum number of snapshots to retain | Maximum: 100 Minimum: 1 Optional: {} | |
deleteOnVMDelete boolean | DeleteOnVMDelete indicates whether to delete snapshot when VM is deleted | true | Optional: {} |
preservePinned boolean | PreservePinned indicates whether to preserve pinned snapshots | true | Optional: {} |
gracePeriod Duration | GracePeriod is the grace period before deletion | 24h | Optional: {} |
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\})$ Optional: {} | |
timezone string | Timezone specifies the timezone for the schedule | UTC | Optional: {} |
suspend boolean | Suspend indicates whether to suspend scheduled snapshots | false | Optional: {} |
concurrencyPolicy string | ConcurrencyPolicy specifies how to handle concurrent snapshot jobs | Forbid | Enum: [Allow Forbid Replace] Optional: {} |
successfulJobsHistoryLimit integer | SuccessfulJobsHistoryLimit limits retained successful jobs | 3 | Maximum: 100 Minimum: 0 Optional: {} |
failedJobsHistoryLimit integer | FailedJobsHistoryLimit limits retained failed jobs | 1 | Maximum: 100 Minimum: 0 Optional: {} |
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]?)$ Optional: {} | |
routes StaticRoute array | Routes contains static routes | MaxItems: 20 Optional: {} |
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 Optional: {} |
StoragePrepareOptions¶
StoragePrepareOptions defines storage-specific preparation options
Appears in: - ImagePrepare
| Field | Description | Default | Validation |
|---|---|---|---|
vsphere VSphereStorageOptions | VSphere storage options | Optional: {} | |
libvirt LibvirtStorageOptions | Libvirt storage options | Optional: {} | |
preferredFormat ImageFormat | PreferredFormat specifies the preferred target format | Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf] Optional: {} | |
compression boolean | Compression enables compression during import | false | Optional: {} |
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 | Optional: {} | |
organization string | Organization specifies the organization name | MaxLength: 255 Optional: {} | |
owner string | Owner specifies the owner name | MaxLength: 255 Optional: {} | |
adminPassword PasswordSpec | AdminPassword specifies the administrator password | Optional: {} | |
joinDomain DomainJoinSpec | JoinDomain specifies domain join configuration | Optional: {} | |
customCommands string array | CustomCommands specifies custom commands to run during sysprep | MaxItems: 20 Optional: {} |
TrafficShapingConfig¶
TrafficShapingConfig defines traffic shaping settings
Appears in: - VSphereNetworkConfig
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if traffic shaping is enabled | false | Optional: {} |
averageBandwidth integer | AverageBandwidth is the average bandwidth in bits per second | Minimum: 1000 Optional: {} | |
peakBandwidth integer | PeakBandwidth is the peak bandwidth in bits per second | Minimum: 1000 Optional: {} | |
burstSize integer | BurstSize is the burst size in bytes | Minimum: 1024 Optional: {} |
UserData¶
UserData defines cloud-init configuration
Appears in: - VMCustomization - VirtualMachineSpec
| Field | Description | Default | Validation |
|---|---|---|---|
cloudInit CloudInit | CloudInit contains cloud-init configuration | Optional: {} | |
ignition Ignition | Ignition contains Ignition configuration for CoreOS/RHEL | Optional: {} |
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] Optional: {} |
vlanID integer | VlanID specifies the VLAN ID for VLAN type | Maximum: 4094 Minimum: 1 Optional: {} | |
trunkVlanIDs integer array | TrunkVlanIDs specifies VLAN IDs for trunk type | MaxItems: 100 Optional: {} | |
primaryVlanID integer | PrimaryVlanID specifies the primary VLAN ID for PVLAN | Maximum: 4094 Minimum: 1 Optional: {} | |
secondaryVlanID integer | SecondaryVlanID specifies the secondary VLAN ID for PVLAN | Maximum: 4094 Minimum: 1 Optional: {} |
VMAffinity¶
VMAffinity defines affinity rules between VMs
Appears in: - AffinityRules
| Field | Description | Default | Validation |
|---|---|---|---|
requiredDuringScheduling VMAffinityTerm array | RequiredDuringScheduling specifies hard affinity rules | MaxItems: 20 Optional: {} | |
preferredDuringScheduling WeightedVMAffinityTerm array | PreferredDuringScheduling specifies soft affinity rules | MaxItems: 20 Optional: {} |
VMAffinityTerm¶
VMAffinityTerm defines a VM affinity term
Appears in: - VMAffinity - VMAntiAffinity - WeightedVMAffinityTerm
| Field | Description | Default | Validation |
|---|---|---|---|
labelSelector LabelSelector | LabelSelector selects VMs for affinity rules | Optional: {} | |
namespaces string array | Namespaces specifies which namespaces to consider | MaxItems: 20 Optional: {} | |
namespaceSelector LabelSelector | NamespaceSelector selects namespaces using label selectors | Optional: {} | |
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 Optional: {} |
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 Optional: {} | |
preferredDuringScheduling WeightedVMAffinityTerm array | PreferredDuringScheduling specifies soft anti-affinity rules | MaxItems: 20 Optional: {} |
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] Optional: {} |
diskDefaults DiskDefaults | DiskDefaults provides default disk settings | Optional: {} | |
guestToolsPolicy GuestToolsPolicy | GuestToolsPolicy specifies guest tools installation policy | install | Enum: [install skip upgrade uninstall] Optional: {} |
extraConfig object (keys:string, values:string) | ExtraConfig contains provider-specific extra configuration | MaxProperties: 50 Optional: {} | |
resourceLimits VMResourceLimits | ResourceLimits defines resource limits and reservations | Optional: {} | |
performanceProfile PerformanceProfile | PerformanceProfile defines performance-related settings | Optional: {} | |
securityProfile SecurityProfile | SecurityProfile defines security-related settings | Optional: {} |
VMClassStatus¶
VMClassStatus defines the observed state of VMClass
Appears in: - VMClass
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | Conditions represent the latest available observations | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
usedByVMs integer | UsedByVMs is the number of VMs currently using this class | Optional: {} | |
supportedProviders string array | SupportedProviders lists the providers that support this class | Optional: {} | |
validationResults object (keys:string, values:ValidationResult) | ValidationResults contains validation results for different providers | Optional: {} |
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 | Optional: {} | |
customization VMCustomization | Customization defines VM customization options | Optional: {} | |
metadata CloneMetadata | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} |
VMCloneStatus¶
VMCloneStatus defines the observed state of VMClone
Appears in: - VMClone
| Field | Description | Default | Validation |
|---|---|---|---|
targetRef LocalObjectReference | TargetRef references the created target VM | Optional: {} | |
targetVMID string | TargetVMID is the provider-specific identifier of the cloned VM as returned by the provider Clone operation. The controller persists it so the produced VirtualMachine CR's Status.ID can be seeded after an asynchronous clone task completes. | Optional: {} | |
phase ClonePhase | Phase represents the current phase of the clone operation | Enum: [Pending Preparing Cloning Customizing Powering-On Ready Failed] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} | |
taskRef string | TaskRef tracks any ongoing async operations | Optional: {} | |
startTime Time | StartTime is when the clone operation started | Optional: {} | |
completionTime Time | CompletionTime is when the clone operation completed | Optional: {} | |
actualCloneType CloneType | ActualCloneType indicates the actual clone type that was used | Enum: [FullClone LinkedClone InstantClone] Optional: {} | |
progress CloneProgress | Progress shows the clone operation progress | Optional: {} | |
conditions Condition array | Conditions represent the current service state | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
retryCount integer | RetryCount is the number of times the clone has been retried | Optional: {} | |
lastRetryTime Time | LastRetryTime is when the clone was last retried | Optional: {} | |
customizationStatus CustomizationStatus | CustomizationStatus contains customization operation status | Optional: {} |
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])?$ Optional: {} | |
providerRef ObjectRef | ProviderRef references the target provider (defaults to source provider) | Optional: {} | |
classRef LocalObjectReference | ClassRef references the VM class for resource allocation | Optional: {} | |
placementRef LocalObjectReference | PlacementRef references placement policy for the target VM | Optional: {} | |
networks VMNetworkRef array | Networks defines network configuration overrides | MaxItems: 10 Optional: {} | |
disks DiskSpec array | Disks defines disk configuration overrides | MaxItems: 20 Optional: {} | |
labels object (keys:string, values:string) | Labels defines labels to apply to the target VM | MaxProperties: 50 Optional: {} | |
annotations object (keys:string, values:string) | Annotations defines annotations to apply to the target VM | MaxProperties: 50 Optional: {} |
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])?$ Optional: {} | |
domain string | Domain sets the domain name | MaxLength: 255 Optional: {} | |
timeZone string | TimeZone sets the timezone | MaxLength: 100 Optional: {} | |
networks NetworkCustomization array | Networks defines network customization | MaxItems: 10 Optional: {} | |
userData UserData | UserData provides cloud-init or similar customization data | Optional: {} | |
sysprep SysprepCustomization | Sysprep provides Windows sysprep customization | Optional: {} | |
tags string array | Tags defines additional tags for the cloned VM | MaxItems: 50 Optional: {} | |
guestCommands GuestCommand array | GuestCommands defines commands to run in the guest OS | MaxItems: 20 Optional: {} | |
certificates CertificateSpec array | Certificates defines certificates to install | MaxItems: 10 Optional: {} |
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 | Optional: {} | |
metadata ImageMetadata | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
distribution OSDistribution | Distribution contains OS distribution information | Optional: {} |
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 | Optional: {} | |
phase ImagePhase | Phase represents the current phase of image preparation | Enum: [Pending Downloading Importing Converting Optimizing Ready Failed] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} | |
availableOn string array | AvailableOn lists the providers where the image is available | Optional: {} | |
conditions Condition array | Conditions represent the latest available observations | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
lastPrepareTime Time | LastPrepareTime records when the image was last prepared | Optional: {} | |
prepareTaskRef string | PrepareTaskRef tracks any ongoing image preparation operations | Optional: {} | |
importProgress ImageImportProgress | ImportProgress shows the progress of image import operations | Optional: {} | |
size Quantity | Size is the size of the prepared image | Optional: {} | |
checksum string | Checksum is the actual checksum of the prepared image | Optional: {} | |
format ImageFormat | Format is the actual format of the prepared image | Enum: [qcow2 raw vmdk vhd vhdx iso ova ovf] Optional: {} | |
providerStatus object (keys:string, values:ProviderImageStatus) | ProviderStatus contains provider-specific status information | Optional: {} |
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 | Optional: {} | |
storage MigrationStorage | Storage defines storage backend configuration for transfer | Optional: {} | |
metadata MigrationMetadata | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} |
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] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} | |
targetVMRef LocalObjectReference | TargetVMRef references the created target VM | Optional: {} | |
snapshotRef string | SnapshotRef references the source snapshot used for migration | Optional: {} | |
snapshotID string | SnapshotID is the provider-specific snapshot identifier | Optional: {} | |
exportID string | ExportID is the export operation identifier | Optional: {} | |
importID string | ImportID is the import operation identifier | Optional: {} | |
taskRef string | TaskRef is the current task reference for async operations | Optional: {} | |
targetVMID string | TargetVMID is the provider-specific target VM identifier | Optional: {} | |
startTime Time | StartTime is when the migration started | Optional: {} | |
completionTime Time | CompletionTime is when the migration completed | Optional: {} | |
progress MigrationProgress | Progress shows the migration operation progress | Optional: {} | |
diskInfo MigrationDiskInfo | DiskInfo contains information about the migrated disk | Optional: {} | |
storageInfo MigrationStorageInfo | StorageInfo contains information about intermediate storage | Optional: {} | |
storagePVCName string | StoragePVCName is the name of the PVC used for migration storage | Optional: {} | |
conditions Condition array | Conditions represent the current service state | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
retryCount integer | RetryCount is the number of times the migration has been retried | Optional: {} | |
lastRetryTime Time | LastRetryTime is when the migration was last retried | Optional: {} | |
validationResults ValidationResults | ValidationResults contains results of validation checks | Optional: {} |
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 | Optional: {} | |
security NetworkSecurityConfig | Security defines network security settings | Optional: {} | |
qos NetworkQoSConfig | QoS defines Quality of Service settings | Optional: {} | |
metadata NetworkMetadata | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} |
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 | Optional: {} | |
phase NetworkAttachmentPhase | Phase represents the current phase | Enum: [Pending Configuring Ready Failed] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} | |
availableOn string array | AvailableOn lists the providers where the network is available | Optional: {} | |
conditions Condition array | Conditions represent the latest available observations | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
connectedVMs integer | ConnectedVMs is the number of VMs using this network | Optional: {} | |
ipAllocations IPAllocation array | IPAllocations contains current IP allocations | Optional: {} | |
providerStatus object (keys:string, values:ProviderNetworkStatus) | ProviderStatus contains provider-specific status information | Optional: {} |
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 (optional) When not specified, the template's pre-configured network adapter is used. | Optional: {} | |
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]?)$ Optional: {} | |
prefix integer | Prefix specifies the network prefix length (e.g., 24 for /24) | Maximum: 32 Minimum: 1 Optional: {} | |
gateway string | Gateway specifies the default gateway 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]?)$ Optional: {} | |
dns string | DNS specifies DNS server IP addresses (comma-separated) | Optional: {} | |
macAddress string | MACAddress specifies a static MAC address (optional) | Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$ Optional: {} |
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 | Optional: {} | |
soft PlacementConstraints | Soft constraints that should be satisfied if possible | Optional: {} | |
antiAffinity AntiAffinityRules | AntiAffinity defines anti-affinity rules for VMs | Optional: {} | |
affinity AffinityRules | Affinity defines affinity rules for VMs | Optional: {} | |
resourceConstraints ResourceConstraints | ResourceConstraints defines resource-based placement constraints | Optional: {} | |
securityConstraints SecurityConstraints | SecurityConstraints defines security-based placement constraints | Optional: {} | |
priority integer | Priority defines the priority of this placement policy | Maximum: 1000 Minimum: 0 Optional: {} | |
weight integer | Weight defines the weight of this placement policy | Maximum: 100 Minimum: 1 Optional: {} |
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 | Optional: {} | |
usedByVMs LocalObjectReference array | UsedByVMs lists VMs currently using this policy | MaxItems: 1000 Optional: {} | |
conditions Condition array | Conditions represent the current service state | Optional: {} | |
validationResults object (keys:string, values:PolicyValidationResult) | ValidationResults contains validation results for different providers | Optional: {} | |
placementStats PlacementStatistics | PlacementStats provides statistics about VM placements using this policy | Optional: {} | |
conflictingPolicies PolicyConflict array | ConflictingPolicies lists policies that conflict with this policy | MaxItems: 50 Optional: {} |
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 Optional: {} | |
cpuReservation integer | CPUReservation is the guaranteed CPU allocation (in MHz) | Maximum: 100000 Minimum: 0 Optional: {} | |
memoryLimit Quantity | MemoryLimit is the maximum memory usage limit | Optional: {} | |
memoryReservation Quantity | MemoryReservation is the guaranteed memory allocation | Optional: {} | |
cpuShares integer | CPUShares defines the relative CPU priority (higher = more priority) | Maximum: 1e+06 Minimum: 1 Optional: {} |
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 Optional: {} |
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 | Optional: {} | |
message string | Message provides additional details about the failure | Optional: {} | |
lastAttempt Time | LastAttempt is when the last update attempt was made | Optional: {} | |
retryCount integer | RetryCount is the number of retry attempts | Optional: {} |
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 Optional: {} |
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] Optional: {} |
whenScaled PersistentVolumeClaimRetentionPolicyType | WhenScaled specifies what happens to PVCs created from VMSet VolumeClaimTemplates when the VMSet is scaled down | Retain | Enum: [Retain Delete] Optional: {} |
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 Optional: {} |
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 | Optional: {} | |
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 Optional: {} | |
revisionHistoryLimit integer | RevisionHistoryLimit is the number of old VMSets to retain | 10 | Maximum: 100 Minimum: 0 Optional: {} |
persistentVolumeClaimRetentionPolicy VMSetPersistentVolumeClaimRetentionPolicy | PersistentVolumeClaimRetentionPolicy defines the retention policy for PVCs | Optional: {} | |
ordinals VMSetOrdinals | Ordinals configures the sequential ordering of VM indices | Optional: {} | |
serviceName string | ServiceName is the name of the service that governs this VMSet | MaxLength: 253 Optional: {} | |
volumeClaimTemplates PersistentVolumeClaimTemplate array | VolumeClaimTemplates defines a list of claims that VMs are allowed to reference | MaxItems: 20 Optional: {} |
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 | Optional: {} | |
replicas integer | Replicas is the number of VMs created by the VMSet controller | Optional: {} | |
readyReplicas integer | ReadyReplicas is the number of VMs that are ready | Optional: {} | |
availableReplicas integer | AvailableReplicas is the number of VMs that are available | Optional: {} | |
updatedReplicas integer | UpdatedReplicas is the number of VMs that have been updated | Optional: {} | |
currentRevision string | CurrentRevision is the revision of the current VMSet | Optional: {} | |
updateRevision string | UpdateRevision is the revision of the updated VMSet | Optional: {} | |
collisionCount integer | CollisionCount is the count of hash collisions for the VMSet | Optional: {} | |
conditions Condition array | Conditions represent the current service state | Optional: {} | |
currentReplicas integer | CurrentReplicas is the number of VMs currently running | Optional: {} | |
updateStatus VMSetUpdateStatus | UpdateStatus provides detailed update operation status | Optional: {} | |
vmStatus VMSetVMStatus array | VMStatus provides per-VM status information | MaxItems: 1000 Optional: {} |
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. | Optional: {} | |
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] Optional: {} | |
message string | Message provides additional details about the update | Optional: {} | |
startTime Time | StartTime is when the update started | Optional: {} | |
completionTime Time | CompletionTime is when the update completed | Optional: {} | |
updatedVMs string array | UpdatedVMs lists VMs that have been updated | MaxItems: 1000 Optional: {} | |
pendingVMs string array | PendingVMs lists VMs that are pending update | MaxItems: 1000 Optional: {} | |
failedVMs VMSetFailedVM array | FailedVMs lists VMs that failed to update | MaxItems: 1000 Optional: {} |
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] Optional: {} |
rollingUpdate RollingUpdateVMSetStrategy | RollingUpdate is used when Type is RollingUpdate | Optional: {} |
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] Optional: {} | |
ready boolean | Ready indicates if the VM is ready | Optional: {} | |
revision string | Revision is the VM revision | Optional: {} | |
creationTime Time | CreationTime is when the VM was created | Optional: {} | |
lastUpdateTime Time | LastUpdateTime is when the VM was last updated | Optional: {} | |
message string | Message provides additional VM status information | Optional: {} |
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 | Optional: {} | |
sizeBytes integer | SizeBytes is the size of the snapshot | Optional: {} | |
hasMemory boolean | HasMemory indicates if memory state is included | Optional: {} |
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 | Optional: {} |
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 | Optional: {} | |
retentionPolicy SnapshotRetentionPolicy | RetentionPolicy defines how long to keep this snapshot | Optional: {} | |
schedule SnapshotSchedule | Schedule defines automated snapshot scheduling | Optional: {} | |
metadata SnapshotMetadata | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} |
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 | Optional: {} | |
phase SnapshotPhase | Phase represents the current phase of the snapshot | Enum: [Pending Creating Ready Deleting Failed Expired] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} | |
creationTime Time | CreationTime is when the snapshot was created | Optional: {} | |
completionTime Time | CompletionTime is when the snapshot creation completed | Optional: {} | |
size Quantity | Size is the size of the snapshot | Optional: {} | |
virtualSize Quantity | VirtualSize is the virtual size of the snapshot | Optional: {} | |
taskRef string | TaskRef tracks any ongoing async operations | Optional: {} | |
conditions Condition array | Conditions represent the current service state | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
progress SnapshotProgress | Progress shows the snapshot creation progress | Optional: {} | |
providerStatus object (keys:string, values:ProviderSnapshotStatus) | ProviderStatus contains provider-specific status information | Optional: {} | |
children SnapshotRef array | Children lists child snapshots (for snapshot trees) | Optional: {} | |
parent SnapshotRef | Parent references the parent snapshot (for snapshot trees) | Optional: {} | |
expiryTime Time | ExpiryTime is when the snapshot will expire (based on retention policy) | Optional: {} |
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 Optional: {} | |
operator VMTolerationOperator | Operator represents the relationship between the key and value | Equal | Enum: [Exists Equal] Optional: {} |
value string | Value is the taint value the toleration matches to | MaxLength: 253 Optional: {} | |
effect VMTaintEffect | Effect indicates the taint effect to match | Enum: [NoSchedule PreferNoSchedule NoExecute] Optional: {} | |
tolerationSeconds integer | TolerationSeconds represents the period of time the toleration tolerates the taint | Minimum: 0 Optional: {} |
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.
This struct supports multiple ways to reference a VM template: - TemplateName: A simple template name or full inventory path - ContentLibrary: Reference to a vSphere Content Library item - OVAURL: URL to download and import an OVA file
Appears in: - ImageSource
| Field | Description | Default | Validation |
|---|---|---|---|
templateName string | TemplateName references an existing vSphere template by name. This can be a simple name (searched globally) or a full inventory path. | MaxLength: 255 Optional: {} | |
contentLibrary ContentLibraryRef | ContentLibrary references a vSphere content library item | Optional: {} | |
ovaURL string | OVAURL provides a URL to an OVA file to import | Pattern: ^https?://.*\.(ova\|ovf)$ Optional: {} | |
checksum string | Checksum provides expected checksum for verification | Optional: {} | |
checksumType ChecksumType | ChecksumType specifies the checksum algorithm | sha256 | Enum: [md5 sha1 sha256 sha512] Optional: {} |
providerRef LocalObjectReference | ProviderRef references the vSphere provider for importing | Optional: {} |
VSphereNetworkConfig¶
VSphereNetworkConfig defines vSphere-specific network configuration
Appears in: - NetworkConfig
| Field | Description | Default | Validation |
|---|---|---|---|
portgroup string | Portgroup specifies the vSphere portgroup name | MaxLength: 255 Optional: {} | |
distributedSwitch DistributedSwitchConfig | DistributedSwitch specifies the distributed virtual switch | Optional: {} | |
vlan VLANConfig | VLAN specifies the VLAN configuration | Optional: {} | |
security PortgroupSecurityConfig | Security defines portgroup security settings | Optional: {} | |
trafficShaping TrafficShapingConfig | TrafficShaping defines traffic shaping settings | Optional: {} | |
pciSlotNumber integer | PCISlotNumber specifies the PCI slot number for the network adapter. This controls the predictable network interface naming in Linux (e.g., ens192). Common values: 192 for ens192, 224 for ens224, 256 for ens256. If not specified, vSphere assigns a slot automatically. | Maximum: 1024 Minimum: 32 Optional: {} | |
adapterType string | AdapterType specifies the network adapter type | vmxnet3 | Enum: [vmxnet3 e1000 e1000e] Optional: {} |
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 Optional: {} | |
folder string | Folder specifies the target folder for import | MaxLength: 255 Optional: {} | |
thinProvisioned boolean | ThinProvisioned indicates whether to use thin provisioning | Optional: {} | |
diskType string | DiskType specifies the disk provisioning type | Enum: [thin thick eagerzeroedthick] Optional: {} |
ValidationChecks¶
ValidationChecks defines validation checks to perform
Appears in: - MigrationOptions
| Field | Description | Default | Validation |
|---|---|---|---|
checkDiskSize boolean | CheckDiskSize verifies disk size matches | true | Optional: {} |
checkChecksum boolean | CheckChecksum verifies checksums match | true | Optional: {} |
checkBoot boolean | CheckBoot verifies VM boots successfully | false | Optional: {} |
checkConnectivity boolean | CheckConnectivity tests network connectivity | false | Optional: {} |
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 | Optional: {} | |
warnings string array | Warnings lists any validation warnings | Optional: {} | |
lastValidated Time | LastValidated is when this validation was last performed | Optional: {} |
ValidationResults¶
ValidationResults contains results of validation checks
Appears in: - VMMigrationStatus
| Field | Description | Default | Validation |
|---|---|---|---|
diskSizeMatch boolean | DiskSizeMatch indicates if disk sizes match | Optional: {} | |
checksumMatch boolean | ChecksumMatch indicates if checksums match | Optional: {} | |
bootSuccess boolean | BootSuccess indicates if the target VM booted successfully | Optional: {} | |
connectivitySuccess boolean | ConnectivitySuccess indicates if network connectivity works | Optional: {} | |
validationErrors string array | ValidationErrors lists any validation errors | Optional: {} |
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 | Optional: {} | |
postStart LifecycleHandler | PostStart defines actions to take after starting the VM | Optional: {} | |
gracefulShutdownTimeout Duration | GracefulShutdownTimeout defines how long to wait for graceful shutdown | 60s | Optional: {} |
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 Optional: {} | |
memoryMiB integer | MemoryMiB specifies the amount of memory in MiB | Maximum: 1.048576e+06 Minimum: 128 Optional: {} | |
gpu GPUConfig | GPU specifies GPU configuration | Optional: {} |
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. | Optional: {} | |
importedDisk ImportedDiskRef | ImportedDisk references a pre-imported disk (e.g., from migration). Either ImageRef or ImportedDisk must be specified, but not both. | Optional: {} | |
networks VMNetworkRef array | Networks specifies network attachments for the VM | MaxItems: 10 Optional: {} | |
disks DiskSpec array | Disks specifies additional disks beyond the root disk | MaxItems: 20 Optional: {} | |
userData UserData | UserData contains cloud-init configuration | Optional: {} | |
metaData MetaData | MetaData contains cloud-init metadata configuration | Optional: {} | |
placement Placement | Placement provides hints for VM placement | Optional: {} | |
powerState PowerState | PowerState specifies the desired power state | Enum: [On Off OffGraceful] Optional: {} | |
tags string array | Tags are applied to the VM for organization | MaxItems: 50 Optional: {} | |
resources VirtualMachineResources | Resources allows overriding resource allocation from the VMClass | Optional: {} | |
placementRef LocalObjectReference | PlacementRef references a VMPlacementPolicy for advanced placement rules | Optional: {} | |
snapshot VMSnapshotOperation | Snapshot defines snapshot-related operations | Optional: {} | |
lifecycle VirtualMachineLifecycle | Lifecycle defines VM lifecycle configuration | Optional: {} |
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 | Optional: {} | |
powerState PowerState | PowerState reflects the current power state | Enum: [On Off OffGraceful] Optional: {} | |
ips string array | IPs contains the IP addresses assigned to the VM | Optional: {} | |
consoleURL string | ConsoleURL provides access to the VM console | Optional: {} | |
conditions Condition array | Conditions represent the latest available observations | Optional: {} | |
observedGeneration integer | ObservedGeneration reflects the generation observed by the controller | Optional: {} | |
lastTaskRef string | LastTaskRef references the last async operation | Optional: {} | |
provider object (keys:string, values:string) | Provider contains provider-specific details | Optional: {} | |
reconfigureTaskRef string | ReconfigureTaskRef tracks reconfiguration operations | Optional: {} | |
lastReconfigureTime Time | LastReconfigureTime records when the last reconfiguration occurred | Optional: {} | |
currentResources VirtualMachineResources | CurrentResources shows the current resource allocation | Optional: {} | |
snapshots VMSnapshotInfo array | Snapshots lists available snapshots for this VM | Optional: {} | |
phase VirtualMachinePhase | Phase represents the current phase of the VM | Enum: [Pending Provisioning Running Stopped Reconfiguring Deleting Failed] Optional: {} | |
message string | Message provides additional details about the current state | Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the affinity rule | Enum: [strict preferred] Optional: {} |
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 Optional: {} | |
scope string | Scope defines the scope of the anti-affinity rule | Enum: [strict preferred] Optional: {} |