API Reference

Packages

compute.evroclabs.net/v1alpha1

Package v1alpha1 contains API Schema definitions for the compute v1alpha3 API group

Resource Types

AttachedDiskStatus

The current mapping of a permanent Disk to a Device on the VM.

Appears in:

FieldDescriptionDefaultValidation
name stringThe name of the attached Disk.
device stringThe 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:

FieldDescriptionDefaultValidation
amount integerMinimum: 1
unit UnitEnum: [KB MB GB TB]

Disk

The schema for a disk.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringDisk
kind stringKind 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 stringAPIVersion 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 ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DiskSpec
status DiskStatus

DiskImageInfo

The OS image for this disk.

Appears in:

FieldDescriptionDefaultValidation
diskImageRef DiskImageRef

DiskImageRef

A reference to a DiskImage object.

Appears in:

FieldDescriptionDefaultValidation
name stringThe 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.

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringDiskList
kind stringKind 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 stringAPIVersion 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 ListMetaRefer 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:

FieldDescriptionDefaultValidation
name stringName of the Disk object which should be attached to the VM.
bootFrom booleanBootFrom 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:

FieldDescriptionDefaultValidation
amount integerMinimum: 0
unit UnitEnum: [KB MB GB TB ]

DiskSizeOnStatus

Appears in:

FieldDescriptionDefaultValidation
amount integer
unit UnitEnum: [KB MB GB TB ]

DiskSpec

Appears in:

FieldDescriptionDefaultValidation
diskSize DiskSize
diskImage DiskImageInfo
diskStorageClass DiskStorageClassInfo
placement PlacementDisk

DiskStatus

Appears in:

FieldDescriptionDefaultValidation
conditions ConditionsSetThe 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 DiskSizeOnStatusThe allocated disk size — either user-defined or a default.
placement PlacementDisk
diskUsage DiskUse arrayDiskUsage 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:

FieldDescriptionDefaultValidation
name stringThe 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:

FieldDescriptionDefaultValidation
useKind DiskUseKindThe kind of usage.
vm stringThe VM consuming this Disk.
attachment stringThe 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:

FieldDescription
permanentThe disk is permanently attached to a VM.
hotswapThe disk is hotswap attached to a VM.

GPUModel

Underlying type: string

GPUModel specifies a model of GPU.

Appears in:

FieldDescription
nvidia.com/AD102GL_L40S
nvidia.com/GB100_B200

GPUs

Appears in:

FieldDescriptionDefaultValidation
model GPUModelThe model of GPUs.
quantity integerThe quantity of GPUs.Minimum: 0
localDisk integerThe size of the local disk created automatically for this GPU VM, in GB.Minimum: 0

HotswapDiskAttachment

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringHotswapDiskAttachment
kind stringKind 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 stringAPIVersion 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 ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec HotswapDiskAttachmentSpec
status HotswapDiskAttachmentStatus

HotswapDiskAttachmentList

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringHotswapDiskAttachmentList
kind stringKind 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 stringAPIVersion 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 ListMetaRefer to Kubernetes API documentation for fields of metadata.
items HotswapDiskAttachment array

HotswapDiskAttachmentSpec

Appears in:

FieldDescriptionDefaultValidation
vmRef stringName of the VM to which the disk should be attached.
diskRef stringName of the Disk which should be attached to the VM.

HotswapDiskAttachmentStatus

Appears in:

FieldDescriptionDefaultValidation
conditions ConditionsSetThe state of this attachment over time.
serial stringThe serial identifier of the disk when attached.

HotswapDiskAttachmentStatusOnVM

Capture the status of a HotSwapDiskAttachment targeting this VM.

Appears in:

FieldDescriptionDefaultValidation
attachment stringName of HotSwapDiskAttachment being requested.
disk stringName of the disk being attached.
attached booleanAttachment status.
serial stringSerial of an attached disk.
device stringThe device that an attached disk corresponds to on the VM (e.g. /dev/vda).
message stringMessage indicating the reason for a non-attached Disk.

MemoryAmount

Appears in:

FieldDescriptionDefaultValidation
amount integerThe amount of memory, in the related unit for this virtual machine size.Minimum: 1
unit UnitEnum: [KB MB GB TB]

PlacementDisk

Placement defines the placement requirements for this Disk.

Appears in:

FieldDescriptionDefaultValidation
zone ExternalZoneNameThe zone this Network Interface should be deployed to.

PlacementGroup

The schema for a placement group API.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringPlacementGroup
kind stringKind 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 stringAPIVersion 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 ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec PlacementGroupSpec
status PlacementGroupStatus

PlacementGroupList

PlacementGroupList contains a list of PlacementGroup.

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringPlacementGroupList
kind stringKind 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 stringAPIVersion 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 ListMetaRefer to Kubernetes API documentation for fields of metadata.
items PlacementGroup array

PlacementGroupSpec

Appears in:

FieldDescriptionDefaultValidation
strategy PlacementStrategyThe placement strategy for the placement group,
which determines how the virtual machines inside the placement group should be distributed.
placement PlacementPlacementGroup

PlacementGroupStatus

Appears in:

FieldDescriptionDefaultValidation
conditions ConditionsSetThe 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:

FieldDescriptionDefaultValidation
zone ExternalZoneNameThe 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:

FieldDescriptionDefaultValidation
type stringThe 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:

FieldDescriptionDefaultValidation
zone ExternalZoneNameThe zone this Network Interface should be deployed to.

SecurityGroupMembershipRef

A security group the VM belongs to.

Appears in:

FieldDescriptionDefaultValidation
name string

SecurityGroupSettings

Configuration for security groups.

Appears in:

FieldDescriptionDefaultValidation
securityGroupMemberships SecurityGroupMembershipRef arrayThe security groups the VM belongs to.

Unit

Underlying type: string

Appears in:

FieldDescription
KB
MB
GB
TB

VMAuthorizedKey

Appears in:

FieldDescriptionDefaultValidation
value stringThe 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:

FieldDescriptionDefaultValidation
privateIPv4Address stringThe assigned private IPv4 address of the VM.
publicIPv4Address stringThe assigned public IPv4 address of the VM.

VMNetworkingSettings

The networking configuration for the VM.

Appears in:

FieldDescriptionDefaultValidation
publicIPv4Address VMPublicIPv4AddressSettingsOptions 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 SecurityGroupSettingsOptions related to security groups.

VMOSSettings

Appears in:

FieldDescriptionDefaultValidation
cloudInitUserData stringUser-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 VMSSHSettingsSSH 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:

FieldDescriptionDefaultValidation
static VMStaticPublicIPv4AddressSettingsSettings related to static public IPv4 addressing.
Static addresses are not released when the VM is stopped.

VMSSHSettings

Appears in:

FieldDescriptionDefaultValidation
authorizedKeys VMAuthorizedKey arrayA 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 to
ensure 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:

FieldDescriptionDefaultValidation
publicIPRef stringThe 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:

FieldDescriptionDefaultValidation
vmVirtualResourcesRefName stringThe 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:

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringVirtualMachine
kind stringKind 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 stringAPIVersion 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 ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec VirtualMachineSpec
status VirtualMachineStatus

VirtualMachineList

VirtualMachineList contains a list of VirtualMachine.

FieldDescriptionDefaultValidation
apiVersion stringcompute.evroclabs.net/v1alpha1
kind stringVirtualMachineList
kind stringKind 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 stringAPIVersion 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 ListMetaRefer 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:

FieldDescriptionDefaultValidation
name stringName of the Virtual Machine.

VirtualMachineSpec

Appears in:

FieldDescriptionDefaultValidation
running booleanWhether the VM should be running or not. If not set, this defaults to truetrue
vmVirtualResourcesRef VMVirtualResourcesRefA 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 arrayThe VM's Disks.MaxItems: 10
placementGroup stringThe 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 VMOSSettingsSettings that are applied to the guest operating system.
networking VMNetworkingSettingsNetworking settings for the VM.
placement PlacementVirtualMachine

VirtualMachineStatus

Appears in:

FieldDescriptionDefaultValidation
conditions ConditionsSetThe 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 VirtualMachineStatusTypeThe 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 VMNetworkStatusThe current status of the networking set up on the VM.
attachedDisks AttachedDiskStatus arrayThe current mapping between permanent evroc Disks and Devices on the VM.
placement PlacementVirtualMachine
hotswapDiskAttachments HotswapDiskAttachmentStatusOnVM arrayThe current requested Hotswap Disk Attachments for this VM.

VirtualMachineStatusType

Underlying type: string

Appears in:

FieldDescription
CreatingVirtualMachineStatusCreating indicates that the virtual machine is being created.
ProvisioningFailedVirtualMachineStatusProvisioningFailed indicates that cluster resources associated with the
virtual machine could not be provisioned and prepared.
DeletingVirtualMachineStatusDeleting indicates that the virtual machine is being deleted.
StoppedVirtualMachineStatusStopped indicates that the virtual machine is currently stopped and isn't expected to start.
ProvisioningVirtualMachineStatusProvisioning indicates that cluster resources associated with the virtual machine
are being provisioned and prepared.
StartingVirtualMachineStatusStarting indicates that the virtual machine is being prepared for running.
RunningVirtualMachineStatusRunning indicates that the virtual machine is running.
PausedVirtualMachineStatusPaused indicates that the virtual machine is paused.
StoppingVirtualMachineStatusStopping indicates that the virtual machine is in the process of being stopped.
TerminatingVirtualMachineStatusTerminating indicates that the virtual machine is in the process of deletion,
as well as its associated resources.
CrashLoopBackOffVirtualMachineStatusCrashLoopBackOff indicates that the virtual machine is currently in a crash loop waiting to be retried.
MigratingVirtualMachineStatusMigrating indicates that the virtual machine is in the process of being migrated
to another host.
UnknownVirtualMachineStatusUnknown 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.
ErrorUnschedulableVirtualMachineStatusUnschedulable indicates that an error has occurred while scheduling the virtual machine,
e.g. due to unsatisfiable resource requests or unsatisfiable scheduling constraints.
ErrImagePullVirtualMachineStatusErrImagePull indicates that an error has occurred while pulling an image for
a VM volume.
ImagePullBackOffVirtualMachineStatusImagePullBackOff indicates that an error has occurred while pulling an image for
a VM volume, and that it is backing off before retrying.
ErrorPvcNotFoundVirtualMachineStatusPvcNotFound indicates that the virtual machine references a volume which doesn't exist.
DataVolumeErrorVirtualMachineStatusDataVolumeError indicates that an error has been reported by one of the volumes
referenced by the virtual machines.
WaitingForVolumeBindingVirtualMachineStatusWaitingForVolumeBinding indicates that some volume claims backing
the virtual machine volume are still not bound.