Files
cozystack/packages/apps/vm-instance/values.schema.json
T
2026-09-26 11:40:08 +03:00

230 lines
7.3 KiB
JSON

{
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"description": "Enable external access from outside the cluster.",
"type": "boolean",
"default": false
},
"externalMethod": {
"description": "Method to pass through traffic to the VM.",
"type": "string",
"default": "PortList",
"enum": [
"PortList",
"WholeIP"
]
},
"externalPorts": {
"description": "Ports to forward from outside the cluster.",
"type": "array",
"default": [
22
],
"items": {
"type": "integer"
}
},
"externalAllowICMP": {
"description": "Whether to accept ICMP traffic to the VM in PortList mode (preserves ping and PMTU discovery). No effect in WholeIP mode. Default true so ping behaves as users expect even when port filtering is in effect.",
"type": "boolean",
"default": true
},
"runStrategy": {
"description": "Requested running state of the VirtualMachineInstance",
"type": "string",
"default": "Always",
"enum": [
"Always",
"Halted",
"Manual",
"RerunOnFailure",
"Once"
]
},
"instanceType": {
"description": "Virtual Machine instance type. Ignored when `resources` sizes the VM, which needs whole-number cpu and sockets plus memory; the whole type is dropped then, so any dedicated CPU placement, hugepages, NUMA or realtime settings it carries go with it. While this field is set, a `resources` block that sizes only part of the VM is rejected outright instead of ignored, so complete it or clear it.",
"type": "string",
"default": "u1.medium",
"x-cozystack-options": {
"source": "instancetype"
}
},
"instanceProfile": {
"description": "Virtual Machine preferences profile.",
"type": "string",
"default": "ubuntu",
"x-cozystack-options": {
"source": "instanceprofile"
}
},
"disks": {
"description": "List of disks to attach.",
"type": "array",
"default": [],
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"bus": {
"description": "Disk bus type (e.g. \"sata\").",
"type": "string"
},
"name": {
"description": "Disk name.",
"type": "string",
"x-cozystack-options": {
"source": "vmdisk"
}
}
}
}
},
"networks": {
"description": "Networks to attach the VM to.",
"type": "array",
"default": [],
"items": {
"type": "object",
"properties": {
"name": {
"description": "Network attachment name.",
"type": "string",
"x-cozystack-options": {
"source": "network"
}
}
}
}
},
"subnets": {
"description": "Deprecated: use networks instead.",
"type": "array",
"default": [],
"items": {
"type": "object",
"properties": {
"name": {
"description": "Network attachment name.",
"type": "string",
"x-cozystack-options": {
"source": "network"
}
}
}
}
},
"gpus": {
"description": "List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).",
"type": "array",
"default": [],
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "The name of the GPU resource to attach.",
"type": "string",
"x-cozystack-options": {
"source": "gpu"
}
}
}
}
},
"cpuModel": {
"description": "Model specifies the CPU model inside the VMI. List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map",
"type": "string",
"default": ""
},
"firmware": {
"description": "Firmware and boot configuration (UEFI/BIOS selection, Secure Boot, persistent EFI NVRAM).",
"type": "object",
"default": {},
"properties": {
"bootloader": {
"description": "Bootloader to boot the VM with: \"uefi\" (OVMF) or \"bios\" (SeaBIOS). Empty inherits the instanceProfile default.",
"type": "string"
},
"efiPersistent": {
"description": "Persist EFI NVRAM (e.g. enrolled Secure Boot keys, such as an updated Microsoft UEFI CA) across reboots. Only applies when bootloader is \"uefi\".",
"type": "boolean"
},
"secureBoot": {
"description": "Enable UEFI Secure Boot. Only applies when bootloader is \"uefi\".",
"type": "boolean"
}
}
},
"resources": {
"description": "Resource configuration for the virtual machine. Set whole-number cpu and sockets together with memory to size the VM directly, which overrides `instanceType`. Alongside an `instanceType`, a block that sizes only part of the VM is rejected; a whole-number cpu or sockets on its own sizes nothing and is ignored.",
"type": "object",
"default": {},
"properties": {
"cpu": {
"description": "Number of CPU cores allocated, as a positive whole number such as `2`. Millicore and fractional quantities are rejected at render time, because the value becomes the VM's integer `domain.cpu.cores`.",
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"x-kubernetes-int-or-string": true
},
"memory": {
"description": "Amount of memory allocated, as a positive quantity such as `8Gi`.",
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"x-kubernetes-int-or-string": true
},
"sockets": {
"description": "Number of CPU sockets (vCPU topology), as a positive whole number such as `1`. Millicore and fractional quantities are rejected at render time, because the value becomes the VM's integer `domain.cpu.sockets`.",
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"x-kubernetes-int-or-string": true
}
}
},
"sshKeys": {
"description": "List of SSH public keys for authentication.",
"type": "array",
"default": [],
"items": {
"type": "string"
}
},
"cloudInit": {
"description": "Cloud-init user data.",
"type": "string",
"default": ""
},
"cloudInitSeed": {
"description": "Seed string to generate SMBIOS UUID for the VM.",
"type": "string",
"default": ""
}
}
}