## ## @section Common parameters ## ## @enum {string} ExternalMethod - Method to pass through traffic to the VM. ## @value PortList - Forward selected ports only. ## @value WholeIP - Forward all traffic for the IP. ## @enum {string} SystemImage - The base image for the virtual machine. ## @value ubuntu ## @value cirros ## @value alpine ## @value fedora ## @value talos ## @typedef {struct} SystemDisk - System disk configuration. ## @field {SystemImage} image - The base image for the virtual machine. ## @field {string} storage - The size of the disk allocated for the virtual machine. ## @field {string} [storageClass] - StorageClass used to store the data. ## @typedef {struct} Subnet - Additional subnets ## @field {string} [name] - Subnet name ## @typedef {struct} GPU - GPU device configuration. ## @field {string} name - The name of the GPU resource to attach. ## @typedef {struct} Resources - Resource configuration for the virtual machine. ## @field {quantity} [cpu] - Number of CPU cores allocated. ## @field {quantity} [sockets] - Number of CPU sockets (vCPU topology). ## @field {quantity} [memory] - Amount of memory allocated. ## @param {bool} external - Enable external access from outside the cluster. external: false ## @param {ExternalMethod} externalMethod - Method to pass through traffic to the VM. externalMethod: "PortList" ## @param {[]int} externalPorts - Ports to forward from outside the cluster. externalPorts: - 22 ## @param {bool} running - Whether the virtual machine should be running. running: true ## @param {string} instanceType - Virtual Machine instance type. ## @param {string} instanceProfile - Virtual Machine preferences profile. instanceType: "u1.medium" instanceProfile: ubuntu ## @param {SystemDisk} systemDisk - System disk configuration. systemDisk: image: ubuntu storage: 5Gi storageClass: replicated ## @param {[]Subnet} subnets - Additional subnets subnets: [] ## Example: ## subnets: ## - name: subnet-84dbec17 ## - name: subnet-aa8896b5 ## - name: subnet-e9b97196 ## @param {[]GPU} gpus - List of GPUs to attach. gpus: [] ## Example: ## gpus: ## - name: nvidia.com/GA102GL_A10 ## @param {Resources} [resources] - Resource configuration for the virtual machine. resources: {} ## Example: ## resources: ## cpu: "4" ## sockets: "1" ## memory: "8Gi" ## @param {[]string} sshKeys - List of SSH public keys for authentication. sshKeys: [] ## Example: ## sshKeys: ## - ssh-rsa ... ## - ssh-ed25519 ... ## ## @param {string} cloudInit - Cloud-init user data. cloudInit: "" ## Example: ## cloudInit: | ## #cloud-config ## password: ubuntu ## chpasswd: { expire: False } ## ## @param {string} cloudInitSeed - Seed string to generate SMBIOS UUID for the VM. cloudInitSeed: "" ## Example: ## cloudInitSeed: "upd1"