API Reference
Packages
compute.evroclabs.net/v1alpha1
Package v1alpha1 contains API Schema definitions for the compute v1alpha3 API group
Resource Types
- Disk
- DiskList
- HotswapDiskAttachment
- HotswapDiskAttachmentList
- PlacementGroup
- PlacementGroupList
- VirtualMachine
- VirtualMachineList
AttachedDiskStatus
The current mapping of a permanent Disk to a Device on the VM.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | The name of the attached Disk. | ||
device string | The device the Disk corresponds to on the VM (e.g. /dev/vda). |
DefaultDiskSize
The default size of the disk if Disk does not specify one.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
amount integer | Minimum: 1 | ||
unit Unit | Enum: [KB MB GB TB] |
Disk
The schema for a disk.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | Disk | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
spec DiskSpec | |||
status DiskStatus |
DiskImageInfo
The OS image for this disk.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
diskImageRef DiskImageRef |
DiskImageRef
A reference to a DiskImage object.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | The name of the DiskImage to use. This can be any of: 'ubuntu-minimal.24-04.1', 'ubuntu.24-04.1', 'ubuntu.22-04.1', 'rocky.10-0.1', 'rocky.9-6.1', 'rocky.9-5.1', 'rocky.8-10.1', 'opensuse.15-6.1', 'opensuse.15-5.1', 'sles.15-6.1', 'sles.15-5.1' 'sl-micro.6-1.1' |
DiskList
DiskList contains a list of disks.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | DiskList | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
items Disk array |
DiskRef
A reference to a Disk object. If marked as bootFrom, the VM will boot from the Disk.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the Disk object which should be attached to the VM. | ||
bootFrom boolean | BootFrom indicates whether the VM should boot from this Disk. Only one Disk can be marked as BootFrom. |
DiskSize
The size of the disk. If not specified, the default size specified in the diskImage is used.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
amount integer | Minimum: 0 | ||
unit Unit | Enum: [KB MB GB TB ] |
DiskSizeOnStatus
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
amount integer | |||
unit Unit | Enum: [KB MB GB TB ] |
DiskSpec
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
diskSize DiskSize | |||
diskImage DiskImageInfo | |||
diskStorageClass DiskStorageClassInfo | |||
placement PlacementDisk |
DiskStatus
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions ConditionsSet | The state of the disk over time. Persistent Disks will report a Ready=true condition when they are ready for use in a VM. Each condition follows the Kubernetes API conventions for a condition: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties | ||
diskSize DiskSizeOnStatus | The allocated disk size — either user-defined or a default. | ||
placement PlacementDisk | |||
diskUsage DiskUse array | DiskUsage shows the where this Disk is being used. It is an array so support future cases where the disk may be shared across VMs. |
DiskStorageClassInfo
The disk storage class for this disk.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | The name of the DiskStorageClass to use. This must be one of: 'persistent' - Survives node failure and can be detached and reused. Recommended for most use cases. | Enum: [persistent] |
DiskUse
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
useKind DiskUseKind | The kind of usage. | ||
vm string | The VM consuming this Disk. | ||
attachment string | The HotswapDiskAttachment driving this usage, if the Kind is "hotswap". |
DiskUseKind
Underlying type: string
DiskUseKind captures the way in which a Disk is being consumed.
Appears in:
| Field | Description |
|---|---|
permanent | The disk is permanently attached to a VM. |
hotswap | The disk is hotswap attached to a VM. |
GPUModel
Underlying type: string
GPUModel specifies a model of GPU.
Appears in:
| Field | Description |
|---|---|
nvidia.com/AD102GL_L40S | |
nvidia.com/GB100_B200 |
GPUs
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
model GPUModel | The model of GPUs. | ||
quantity integer | The quantity of GPUs. | Minimum: 0 | |
localDisk integer | The size of the local disk created automatically for this GPU VM, in GB. | Minimum: 0 |
HotswapDiskAttachment
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | HotswapDiskAttachment | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
spec HotswapDiskAttachmentSpec | |||
status HotswapDiskAttachmentStatus |
HotswapDiskAttachmentList
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | HotswapDiskAttachmentList | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
items HotswapDiskAttachment array |
HotswapDiskAttachmentSpec
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
vmRef string | Name of the VM to which the disk should be attached. | ||
diskRef string | Name of the Disk which should be attached to the VM. |
HotswapDiskAttachmentStatus
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions ConditionsSet | The state of this attachment over time. | ||
serial string | The serial identifier of the disk when attached. |
HotswapDiskAttachmentStatusOnVM
Capture the status of a HotSwapDiskAttachment targeting this VM.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
attachment string | Name of HotSwapDiskAttachment being requested. | ||
disk string | Name of the disk being attached. | ||
attached boolean | Attachment status. | ||
serial string | Serial of an attached disk. | ||
device string | The device that an attached disk corresponds to on the VM (e.g. /dev/vda). | ||
message string | Message indicating the reason for a non-attached Disk. |
MemoryAmount
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
amount integer | The amount of memory, in the related unit for this virtual machine size. | Minimum: 1 | |
unit Unit | Enum: [KB MB GB TB] |
PlacementDisk
Placement defines the placement requirements for this Disk.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
zone ExternalZoneName | The zone this Network Interface should be deployed to. |
PlacementGroup
The schema for a placement group API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | PlacementGroup | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
spec PlacementGroupSpec | |||
status PlacementGroupStatus |
PlacementGroupList
PlacementGroupList contains a list of PlacementGroup.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | PlacementGroupList | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
items PlacementGroup array |
PlacementGroupSpec
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
strategy PlacementStrategy | The placement strategy for the placement group, which determines how the virtual machines inside the placement group should be distributed. | ||
placement PlacementPlacementGroup |
PlacementGroupStatus
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions ConditionsSet | The state of the placement group over time. Each condition follows the Kubernetes API conventions for a condition: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties | ||
virtualMachines VirtualMachineMemberStatus array | |||
placement PlacementPlacementGroup |
PlacementPlacementGroup
Placement defines the placement requirements for this Placement Group.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
zone ExternalZoneName | The zone this Network Interface should be deployed to. |
PlacementStrategy
The strategy for distribution of VMs across hardware. For instance, the "spread" strategy will place VMs in a hard-affinity way: each VM on a different physical host. If there are more VMs than hosts, the placement of some VMs will fail. The "spread" strategy is the only one supported for now.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type string | The name of the PlacementStrategy resource For now there is one placement strategy: "spread" | Enum: [spread] |
PlacementVirtualMachine
Placement defines the placement requirements for this Virtual Machine.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
zone ExternalZoneName | The zone this Network Interface should be deployed to. |
SecurityGroupMembershipRef
A security group the VM belongs to.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
SecurityGroupSettings
Configuration for security groups.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
securityGroupMemberships SecurityGroupMembershipRef array | The security groups the VM belongs to. |
Unit
Underlying type: string
Appears in:
| Field | Description |
|---|---|
KB | |
MB | |
GB | |
TB |
VMAuthorizedKey
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
value string | The content of an authorized key, must be a valid SSH public key according to the sshd(8) manual page. |
VMNetworkStatus
The current state of networking on the VM. Currently this just reports on any assigned IP addresses (both public and private).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
privateIPv4Address string | The assigned private IPv4 address of the VM. | ||
publicIPv4Address string | The assigned public IPv4 address of the VM. |
VMNetworkingSettings
The networking configuration for the VM.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
publicIPv4Address VMPublicIPv4AddressSettings | Options that control whether and how the VM is assigned a public IPv4 address. If this structure is not specified, the VM will not be assigned a public address. This means the machine will only be able to receive inbound flows from the private network (though it can still start outbound flows to outside the private network if an external gateway is configured in the VPC). | ||
securityGroups SecurityGroupSettings | Options related to security groups. |
VMOSSettings
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
cloudInitUserData string | User-data passed to the VM. This can either be a base64 string, or a multi-line string. This cannot be updated after the VM is created, and is only supported on Linux VMs. See the documentation at https://docs.evroc.com/products/compute/using-custom-cloud-init-userdata.html for more information. | ||
ssh VMSSHSettings | SSH settings in the guest operating system. This field is only supported for Linux VMs. It is ignored for other operating systems. |
VMPublicIPv4AddressSettings
The configuration for public IPv4 addresses on the VM.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
static VMStaticPublicIPv4AddressSettings | Settings related to static public IPv4 addressing. Static addresses are not released when the VM is stopped. |
VMSSHSettings
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
authorizedKeys VMAuthorizedKey array | A list of public SSH keys that will be added to the "evroc-user" user created in the guest VM. This allows operators/tools to log in over SSH using the corresponding private key. The acceptable public key algorithms depend on the operating system. For example, on Ubuntu 24.04, the accepted algorithms are defined by sshd_config. No validation is performed toensure that a given algorithm is acceptable for the VM. The keys supplied here are written to /home/evroc-user/.ssh/authorized_keys on first boot. After first boot, changes to this field have no effect. If the operator wants to add more authorized keys, they must connect to the VM and add them to the authorized_keys file directly. If cloudInitUserData is specified, then these keys will only be applied to your VM if your CloudConfig references them - see the documentation at https://docs.evroc.com/products/compute/using-custom-cloud-init-userdata.html for more information. | MaxItems: 10 |
VMStaticPublicIPv4AddressSettings
VMStaticPublicIPv4AddressSettings contains configuration for static IPv4 addressing.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
publicIPRef string | The name of the public IP that the VM will attach to. |
VMVirtualResourcesRef
A reference to a VMVirtualResources object, which in turn defines the number of vCPUs, memory and the processor architecture that this VM will use.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
vmVirtualResourcesRefName string | The name of a VMVirtualResources resource, which defines the number of vCPUs, memory and the processor architecture that this VM will use. e.g. 'test.xs' or 'a1a.l'. It generally has the form where series is one of, but not limited to 'a1a', 'c1a', or 'm1a' and size is one of 'xs', 's', 'm', 'l', 'xl', or '2xl'. See the documentation for an authoritative list of supported profiles. |
VirtualMachine
The schema for an evroc Virtual Machine API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | VirtualMachine | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
spec VirtualMachineSpec | |||
status VirtualMachineStatus |
VirtualMachineList
VirtualMachineList contains a list of VirtualMachine.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | compute.evroclabs.net/v1alpha1 | ||
kind string | VirtualMachineList | ||
kind string | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
apiVersion string | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | ||
items VirtualMachine array |
VirtualMachineMemberStatus
The name of a VM and whether it was successfully scheduled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the Virtual Machine. |
VirtualMachineSpec
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
running boolean | Whether the VM should be running or not. If not set, this defaults to true | true | |
vmVirtualResourcesRef VMVirtualResourcesRef | A reference to a VMVirtualResources object, which in turn defines the number of vCPUs, memory and the processor architecture that this VM will use. | ||
diskRefs DiskRef array | The VM's Disks. | MaxItems: 10 | |
placementGroup string | The name of the placement group to use for this VM. This is used to control the placement of the VM on the underlying hardware. | ||
osSettings VMOSSettings | Settings that are applied to the guest operating system. | ||
networking VMNetworkingSettings | Networking settings for the VM. | ||
placement PlacementVirtualMachine |
VirtualMachineStatus
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions ConditionsSet | The state of the Virtual Machine over time. Each condition follows the Kubernetes API conventions for a condition: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties | ||
virtualMachineStatus VirtualMachineStatusType | The status of the VM. It can be one of: e.g. "Running", "Stopped", "Creating" etc. Refer to the documentation for a full list of the possible values. | ||
networking VMNetworkStatus | The current status of the networking set up on the VM. | ||
attachedDisks AttachedDiskStatus array | The current mapping between permanent evroc Disks and Devices on the VM. | ||
placement PlacementVirtualMachine | |||
hotswapDiskAttachments HotswapDiskAttachmentStatusOnVM array | The current requested Hotswap Disk Attachments for this VM. |
VirtualMachineStatusType
Underlying type: string
Appears in:
| Field | Description |
|---|---|
Creating | VirtualMachineStatusCreating indicates that the virtual machine is being created. |
ProvisioningFailed | VirtualMachineStatusProvisioningFailed indicates that cluster resources associated with the virtual machine could not be provisioned and prepared. |
Deleting | VirtualMachineStatusDeleting indicates that the virtual machine is being deleted. |
Stopped | VirtualMachineStatusStopped indicates that the virtual machine is currently stopped and isn't expected to start. |
Provisioning | VirtualMachineStatusProvisioning indicates that cluster resources associated with the virtual machine are being provisioned and prepared. |
Starting | VirtualMachineStatusStarting indicates that the virtual machine is being prepared for running. |
Running | VirtualMachineStatusRunning indicates that the virtual machine is running. |
Paused | VirtualMachineStatusPaused indicates that the virtual machine is paused. |
Stopping | VirtualMachineStatusStopping indicates that the virtual machine is in the process of being stopped. |
Terminating | VirtualMachineStatusTerminating indicates that the virtual machine is in the process of deletion, as well as its associated resources. |
CrashLoopBackOff | VirtualMachineStatusCrashLoopBackOff indicates that the virtual machine is currently in a crash loop waiting to be retried. |
Migrating | VirtualMachineStatusMigrating indicates that the virtual machine is in the process of being migrated to another host. |
Unknown | VirtualMachineStatusUnknown indicates that the state of the virtual machine could not be obtained, typically due to an error in communicating with the host on which it's running. |
ErrorUnschedulable | VirtualMachineStatusUnschedulable indicates that an error has occurred while scheduling the virtual machine, e.g. due to unsatisfiable resource requests or unsatisfiable scheduling constraints. |
ErrImagePull | VirtualMachineStatusErrImagePull indicates that an error has occurred while pulling an image for a VM volume. |
ImagePullBackOff | VirtualMachineStatusImagePullBackOff indicates that an error has occurred while pulling an image for a VM volume, and that it is backing off before retrying. |
ErrorPvcNotFound | VirtualMachineStatusPvcNotFound indicates that the virtual machine references a volume which doesn't exist. |
DataVolumeError | VirtualMachineStatusDataVolumeError indicates that an error has been reported by one of the volumes referenced by the virtual machines. |
WaitingForVolumeBinding | VirtualMachineStatusWaitingForVolumeBinding indicates that some volume claims backing the virtual machine volume are still not bound. |