diff --git a/packages/apps/kubernetes/Chart.yaml b/packages/apps/kubernetes/Chart.yaml index 7ae338d6..78204701 100644 --- a/packages/apps/kubernetes/Chart.yaml +++ b/packages/apps/kubernetes/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.12.0 +version: 0.13.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index fdbad05c..bbc55cfd 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -27,26 +27,181 @@ How to access to deployed cluster: kubectl get secret -n kubernetes--admin-kubeconfig -o go-template='{{ printf "%s\n" (index .data "super-admin.conf" | base64decode) }}' > test ``` -## Parameters +# Series -### Common parameters + -| Name | Description | Value | -| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -| `host` | The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host). | `""` | -| `controlPlane.replicas` | Number of replicas for Kubernetes contorl-plane components | `2` | -| `storageClass` | StorageClass used to store user data | `replicated` | -| `nodeGroups` | nodeGroups configuration | `{}` | +. | U | O | CX | M | RT +----------------------------|-----|-----|------|-----|------ +*Has GPUs* | | | | | +*Hugepages* | | | ✓ | ✓ | ✓ +*Overcommitted Memory* | | ✓ | | | +*Dedicated CPU* | | | ✓ | | ✓ +*Burstable CPU performance* | ✓ | ✓ | | ✓ | +*Isolated emulator threads* | | | ✓ | | ✓ +*vNUMA* | | | ✓ | | ✓ +*vCPU-To-Memory Ratio* | 1:4 | 1:4 | 1:2 | 1:8 | 1:4 -### Cluster Addons -| Name | Description | Value | -| ------------------------------------ | ---------------------------------------------------------------------------------- | ------- | -| `addons.certManager.enabled` | Enables the cert-manager | `false` | -| `addons.certManager.valuesOverride` | Custom values to override | `{}` | -| `addons.ingressNginx.enabled` | Enable Ingress-NGINX controller (expect nodes with 'ingress-nginx' role) | `false` | -| `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` | -| `addons.ingressNginx.hosts` | List of domain names that should be passed through to the cluster by upper cluster | `[]` | -| `addons.fluxcd.enabled` | Enables Flux CD | `false` | -| `addons.fluxcd.valuesOverride` | Custom values to override | `{}` | +## U Series +The U Series is quite neutral and provides resources for +general purpose applications. + +*U* is the abbreviation for "Universal", hinting at the universal +attitude towards workloads. + +VMs of instance types will share physical CPU cores on a +time-slice basis with other VMs. + +### U Series Characteristics + +Specific characteristics of this series are: +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4, for less + noise per node. + +## O Series + +The O Series is based on the U Series, with the only difference +being that memory is overcommitted. + +*O* is the abbreviation for "Overcommitted". + +### UO Series Characteristics + +Specific characteristics of this series are: +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *Overcommitted Memory* - Memory is over-committed in order to achieve + a higher workload density. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4, for less + noise per node. + +## CX Series + +The CX Series provides exclusive compute resources for compute +intensive applications. + +*CX* is the abbreviation of "Compute Exclusive". + +The exclusive resources are given to the compute threads of the +VM. In order to ensure this, some additional cores (depending +on the number of disks and NICs) will be requested to offload +the IO threading from cores dedicated to the workload. +In addition, in this series, the NUMA topology of the used +cores is provided to the VM. + +### CX Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Dedicated CPU* - Physical cores are exclusively assigned to every + vCPU in order to provide fixed and high compute guarantees to the + workload. +- *Isolated emulator threads* - Hypervisor emulator threads are isolated + from the vCPUs in order to reduce emaulation related impact on the + workload. +- *vNUMA* - Physical NUMA topology is reflected in the guest in order to + optimize guest sided cache utilization. +- *vCPU-To-Memory Ratio (1:2)* - A vCPU-to-Memory ratio of 1:2. + +## M Series + +The M Series provides resources for memory intensive +applications. + +*M* is the abbreviation of "Memory". + +### M Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *vCPU-To-Memory Ratio (1:8)* - A vCPU-to-Memory ratio of 1:8, for much + less noise per node. + +## RT Series + +The RT Series provides resources for realtime applications, like Oslat. + +*RT* is the abbreviation for "realtime". + +This series of instance types requires nodes capable of running +realtime applications. + +### RT Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Dedicated CPU* - Physical cores are exclusively assigned to every + vCPU in order to provide fixed and high compute guarantees to the + workload. +- *Isolated emulator threads* - Hypervisor emulator threads are isolated + from the vCPUs in order to reduce emaulation related impact on the + workload. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4 starting from + the medium size. + +## Resources + +The following instancetype resources are provided by Cozystack: + +Name | vCPUs | Memory +-----|-------|------- +cx1.2xlarge | 8 | 16Gi +cx1.4xlarge | 16 | 32Gi +cx1.8xlarge | 32 | 64Gi +cx1.large | 2 | 4Gi +cx1.medium | 1 | 2Gi +cx1.xlarge | 4 | 8Gi +gn1.2xlarge | 8 | 32Gi +gn1.4xlarge | 16 | 64Gi +gn1.8xlarge | 32 | 128Gi +gn1.xlarge | 4 | 16Gi +m1.2xlarge | 8 | 64Gi +m1.4xlarge | 16 | 128Gi +m1.8xlarge | 32 | 256Gi +m1.large | 2 | 16Gi +m1.xlarge | 4 | 32Gi +n1.2xlarge | 16 | 32Gi +n1.4xlarge | 32 | 64Gi +n1.8xlarge | 64 | 128Gi +n1.large | 4 | 8Gi +n1.medium | 4 | 4Gi +n1.xlarge | 8 | 16Gi +o1.2xlarge | 8 | 32Gi +o1.4xlarge | 16 | 64Gi +o1.8xlarge | 32 | 128Gi +o1.large | 2 | 8Gi +o1.medium | 1 | 4Gi +o1.micro | 1 | 1Gi +o1.nano | 1 | 512Mi +o1.small | 1 | 2Gi +o1.xlarge | 4 | 16Gi +rt1.2xlarge | 8 | 32Gi +rt1.4xlarge | 16 | 64Gi +rt1.8xlarge | 32 | 128Gi +rt1.large | 2 | 8Gi +rt1.medium | 1 | 4Gi +rt1.micro | 1 | 1Gi +rt1.small | 1 | 2Gi +rt1.xlarge | 4 | 16Gi +u1.2xlarge | 8 | 32Gi +u1.2xmedium | 2 | 4Gi +u1.4xlarge | 16 | 64Gi +u1.8xlarge | 32 | 128Gi +u1.large | 2 | 8Gi +u1.medium | 1 | 4Gi +u1.micro | 1 | 1Gi +u1.nano | 1 | 512Mi +u1.small | 1 | 2Gi +u1.xlarge | 4 | 16Gi diff --git a/packages/apps/kubernetes/templates/cluster.yaml b/packages/apps/kubernetes/templates/cluster.yaml index 637902af..d7607c67 100644 --- a/packages/apps/kubernetes/templates/cluster.yaml +++ b/packages/apps/kubernetes/templates/cluster.yaml @@ -15,6 +15,11 @@ spec: node-role.kubernetes.io/{{ . }}: "" {{- end }} spec: + {{- with .group.instanceType }} + instancetype: + kind: VirtualMachineClusterInstancetype + name: {{ . }} + {{- end }} runStrategy: Always template: metadata: @@ -26,10 +31,12 @@ spec: {{- end }} spec: domain: + {{- if and .group.resources .group.resources.cpu }} cpu: threads: 1 cores: {{ .group.resources.cpu }} sockets: 1 + {{- end }} devices: disks: - name: system @@ -43,8 +50,10 @@ spec: interfaces: - name: default bridge: {} + {{- if and .group.resources .group.resources.memory }} memory: guest: {{ .group.resources.memory }} + {{- end }} evictionStrategy: External volumes: - name: system @@ -176,6 +185,14 @@ spec: template: {{- $kubevirtmachinetemplate | nindent 4 }} --- +{{- $instanceType := dict }} +{{- if $group.instanceType }} +{{- $instanceType = (lookup "instancetype.kubevirt.io/v1beta1" "VirtualMachineClusterInstancetype" "" $group.instanceType) }} +{{- if not $instanceType }} +{{- fail (printf "Specified instancetype not exists in cluster: %s" $group.instanceType) }} +{{- end }} +{{- end }} + apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineDeployment metadata: @@ -184,8 +201,16 @@ metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "{{ $group.minReplicas }}" cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "{{ $group.maxReplicas }}" + {{- if and $group.resources $group.resources.memory }} capacity.cluster-autoscaler.kubernetes.io/memory: "{{ $group.resources.memory }}" + {{- else }} + capacity.cluster-autoscaler.kubernetes.io/memory: "{{ $instanceType.spec.memory.guest }}" + {{- end }} + {{- if and $group.resources $group.resources.cpu }} capacity.cluster-autoscaler.kubernetes.io/cpu: "{{ $group.resources.cpu }}" + {{- else }} + capacity.cluster-autoscaler.kubernetes.io/cpu: "{{ $instanceType.spec.cpu.guest }}" + {{- end }} spec: clusterName: {{ $.Release.Name }} template: diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index bdfcc4c1..8250e895 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -15,13 +15,15 @@ nodeGroups: md0: minReplicas: 0 maxReplicas: 10 - resources: - cpu: 2 - memory: 1024Mi + instanceType: "u1.medium" ephemeralStorage: 20Gi roles: - ingress-nginx + resources: + cpu: "" + memory: "" + ## @section Cluster Addons ## addons: diff --git a/packages/apps/versions_map b/packages/apps/versions_map index 302bbcae..38cebde5 100644 --- a/packages/apps/versions_map +++ b/packages/apps/versions_map @@ -34,7 +34,8 @@ kubernetes 0.9.0 9b6dd19 kubernetes 0.10.0 ac5c38b kubernetes 0.11.0 4eaca42 kubernetes 0.11.1 4f430a90 -kubernetes 0.12.0 HEAD +kubernetes 0.12.0 31a45c4d +kubernetes 0.13.0 HEAD mysql 0.1.0 f642698 mysql 0.2.0 8b975ff0 mysql 0.3.0 5ca8823 @@ -77,7 +78,8 @@ virtual-machine 0.1.4 f2015d6 virtual-machine 0.1.5 7cd7de7 virtual-machine 0.2.0 5ca8823 virtual-machine 0.3.0 b908400 -virtual-machine 0.4.0 HEAD +virtual-machine 0.4.0 4746d51 +virtual-machine 0.5.0 HEAD vpn 0.1.0 f642698 vpn 0.2.0 7151424 vpn 0.3.0 HEAD diff --git a/packages/apps/virtual-machine/Chart.yaml b/packages/apps/virtual-machine/Chart.yaml index 6affe799..b176fe7b 100644 --- a/packages/apps/virtual-machine/Chart.yaml +++ b/packages/apps/virtual-machine/Chart.yaml @@ -17,7 +17,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.4.0 +version: 0.5.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/virtual-machine/Makefile b/packages/apps/virtual-machine/Makefile index 709bd438..cf5eab3c 100644 --- a/packages/apps/virtual-machine/Makefile +++ b/packages/apps/virtual-machine/Makefile @@ -1,10 +1,9 @@ include ../../../scripts/package.mk generate: - readme-generator -v values.yaml -s values.schema.json.tmp -r README.md - cat values.schema.json.tmp | \ - jq '.properties.image.enum = ["ubuntu", "cirros", "alpine", "fedora", "talos"]' | \ - jq '.properties.resources.properties.memory["x-display"] = "slider"' | \ - jq '.properties.externalPorts.items.type = "integer"' \ - > values.schema.json - rm -f values.schema.json.tmp + readme-generator -v values.yaml -s values.schema.json -r README.md + INSTANCE_TYPES=$$(yq e '.metadata.name' -o=json -r ../../system/kubevirt-common-instancetypes/templates/instancetypes.yaml | yq 'split(" ") | . + [""]' -o json) \ + && yq -i -o json ".properties.instanceType.optional=true | .properties.instanceType.enum = $${INSTANCE_TYPES}" values.schema.json + PREFERENCES=$$(yq e '.metadata.name' -o=json -r ../../system/kubevirt-common-instancetypes/templates/preferences.yaml | yq 'split(" ") | . + [""]' -o json) \ + && yq -i -o json ".properties.instanceProfile.optional=true | .properties.instanceProfile.enum = $${PREFERENCES}" values.schema.json + yq -i -o json '.properties.externalPorts.items.type = "integer"' values.schema.json diff --git a/packages/apps/virtual-machine/README.md b/packages/apps/virtual-machine/README.md index 3846d75b..93e350a8 100644 --- a/packages/apps/virtual-machine/README.md +++ b/packages/apps/virtual-machine/README.md @@ -36,40 +36,233 @@ virtctl ssh @ ### Common parameters -| Name | Description | Value | -| ------------------ | ---------------------------------------------------------------------------------------------------------- | ---------------- | -| `external` | Enable external access from outside the cluster | `false` | -| `externalPorts` | Specify ports to forward from outside the cluster | `[]` | -| `running` | Determines if the virtual machine should be running | `true` | -| `image` | The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos` | `ubuntu` | -| `storageClass` | StorageClass used to store the data | `replicated` | -| `resources.cpu` | The number of CPU cores allocated to the virtual machine | `1` | -| `resources.memory` | The amount of memory allocated to the virtual machine | `1024M` | -| `resources.disk` | The size of the disk allocated for the virtual machine | `5Gi` | -| `sshKeys` | List of SSH public keys for authentication. Can be a single key or a list of keys. | `[]` | -| `cloudInit` | cloud-init user data config. See cloud-init documentation for more details. | `#cloud-config +| Name | Description | Value | +| ------------------------- | ---------------------------------------------------------------------------------- | ---------------- | +| `external` | Enable external access from outside the cluster | `false` | +| `externalPorts` | Specify ports to forward from outside the cluster | `[]` | +| `running` | Determines if the virtual machine should be running | `true` | +| `instanceType` | Virtual Machine instance type | `u1.medium` | +| `instanceProfile` | Virtual Machine prefferences profile | `ubuntu` | +| `systemDisk.origin` | The HTTP URL for source image | `""` | +| `systemDisk.storage` | The size of the disk allocated for the virtual machine | `5Gi` | +| `systemDisk.storageClass` | StorageClass used to store the data | `replicated` | +| `resources.cpu` | The number of CPU cores allocated to the virtual machine | `""` | +| `resources.memory` | The amount of memory allocated to the virtual machine | `""` | +| `sshKeys` | List of SSH public keys for authentication. Can be a single key or a list of keys. | `[]` | +| `cloudInit` | cloud-init user data config. See cloud-init documentation for more details. | `#cloud-config ` | -You can customize the exposed ports by specifying them under `service.ports` in the `values.yaml` file. +## U Series -## Example virtual machine: +The U Series is quite neutral and provides resources for +general purpose applications. -```yaml -running: true -image: fedora -storageClass: replicated -resources: - cpu: 1 - memory: 1024M - disk: 10Gi +*U* is the abbreviation for "Universal", hinting at the universal +attitude towards workloads. -sshKeys: -- ssh-rsa ... +VMs of instance types will share physical CPU cores on a +time-slice basis with other VMs. -cloudInit: | - #cloud-config - user: fedora - password: fedora - chpasswd: { expire: False } - ssh_pwauth: True -``` +### U Series Characteristics + +Specific characteristics of this series are: +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4, for less + noise per node. + +## O Series + +The O Series is based on the U Series, with the only difference +being that memory is overcommitted. + +*O* is the abbreviation for "Overcommitted". + +### UO Series Characteristics + +Specific characteristics of this series are: +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *Overcommitted Memory* - Memory is over-committed in order to achieve + a higher workload density. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4, for less + noise per node. + +## CX Series + +The CX Series provides exclusive compute resources for compute +intensive applications. + +*CX* is the abbreviation of "Compute Exclusive". + +The exclusive resources are given to the compute threads of the +VM. In order to ensure this, some additional cores (depending +on the number of disks and NICs) will be requested to offload +the IO threading from cores dedicated to the workload. +In addition, in this series, the NUMA topology of the used +cores is provided to the VM. + +### CX Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Dedicated CPU* - Physical cores are exclusively assigned to every + vCPU in order to provide fixed and high compute guarantees to the + workload. +- *Isolated emulator threads* - Hypervisor emulator threads are isolated + from the vCPUs in order to reduce emaulation related impact on the + workload. +- *vNUMA* - Physical NUMA topology is reflected in the guest in order to + optimize guest sided cache utilization. +- *vCPU-To-Memory Ratio (1:2)* - A vCPU-to-Memory ratio of 1:2. + +## M Series + +The M Series provides resources for memory intensive +applications. + +*M* is the abbreviation of "Memory". + +### M Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Burstable CPU performance* - The workload has a baseline compute + performance but is permitted to burst beyond this baseline, if + excess compute resources are available. +- *vCPU-To-Memory Ratio (1:8)* - A vCPU-to-Memory ratio of 1:8, for much + less noise per node. + +## RT Series + +The RT Series provides resources for realtime applications, like Oslat. + +*RT* is the abbreviation for "realtime". + +This series of instance types requires nodes capable of running +realtime applications. + +### RT Series Characteristics + +Specific characteristics of this series are: +- *Hugepages* - Hugepages are used in order to improve memory + performance. +- *Dedicated CPU* - Physical cores are exclusively assigned to every + vCPU in order to provide fixed and high compute guarantees to the + workload. +- *Isolated emulator threads* - Hypervisor emulator threads are isolated + from the vCPUs in order to reduce emaulation related impact on the + workload. +- *vCPU-To-Memory Ratio (1:4)* - A vCPU-to-Memory ratio of 1:4 starting from + the medium size. + +## Development + +To get started with customizing or creating your own instancetypes and preferences +see [DEVELOPMENT.md](./DEVELOPMENT.md). + +## Resources + +The following instancetype resources are provided by Cozystack: + +Name | vCPUs | Memory +-----|-------|------- +cx1.2xlarge | 8 | 16Gi +cx1.4xlarge | 16 | 32Gi +cx1.8xlarge | 32 | 64Gi +cx1.large | 2 | 4Gi +cx1.medium | 1 | 2Gi +cx1.xlarge | 4 | 8Gi +gn1.2xlarge | 8 | 32Gi +gn1.4xlarge | 16 | 64Gi +gn1.8xlarge | 32 | 128Gi +gn1.xlarge | 4 | 16Gi +m1.2xlarge | 8 | 64Gi +m1.4xlarge | 16 | 128Gi +m1.8xlarge | 32 | 256Gi +m1.large | 2 | 16Gi +m1.xlarge | 4 | 32Gi +n1.2xlarge | 16 | 32Gi +n1.4xlarge | 32 | 64Gi +n1.8xlarge | 64 | 128Gi +n1.large | 4 | 8Gi +n1.medium | 4 | 4Gi +n1.xlarge | 8 | 16Gi +o1.2xlarge | 8 | 32Gi +o1.4xlarge | 16 | 64Gi +o1.8xlarge | 32 | 128Gi +o1.large | 2 | 8Gi +o1.medium | 1 | 4Gi +o1.micro | 1 | 1Gi +o1.nano | 1 | 512Mi +o1.small | 1 | 2Gi +o1.xlarge | 4 | 16Gi +rt1.2xlarge | 8 | 32Gi +rt1.4xlarge | 16 | 64Gi +rt1.8xlarge | 32 | 128Gi +rt1.large | 2 | 8Gi +rt1.medium | 1 | 4Gi +rt1.micro | 1 | 1Gi +rt1.small | 1 | 2Gi +rt1.xlarge | 4 | 16Gi +u1.2xlarge | 8 | 32Gi +u1.2xmedium | 2 | 4Gi +u1.4xlarge | 16 | 64Gi +u1.8xlarge | 32 | 128Gi +u1.large | 2 | 8Gi +u1.medium | 1 | 4Gi +u1.micro | 1 | 1Gi +u1.nano | 1 | 512Mi +u1.small | 1 | 2Gi +u1.xlarge | 4 | 16Gi + +The following preference resources are provided by Cozystack: + +Name | Guest OS +-----|--------- +alpine | Alpine +centos.7 | CentOS 7 +centos.7.desktop | CentOS 7 +centos.stream10 | CentOS Stream 10 +centos.stream10.desktop | CentOS Stream 10 +centos.stream8 | CentOS Stream 8 +centos.stream8.desktop | CentOS Stream 8 +centos.stream8.dpdk | CentOS Stream 8 +centos.stream9 | CentOS Stream 9 +centos.stream9.desktop | CentOS Stream 9 +centos.stream9.dpdk | CentOS Stream 9 +cirros | Cirros +fedora | Fedora (amd64) +fedora.arm64 | Fedora (arm64) +opensuse.leap | OpenSUSE Leap +opensuse.tumbleweed | OpenSUSE Tumbleweed +rhel.10 | Red Hat Enterprise Linux 10 Beta (amd64) +rhel.10.arm64 | Red Hat Enterprise Linux 10 Beta (arm64) +rhel.7 | Red Hat Enterprise Linux 7 +rhel.7.desktop | Red Hat Enterprise Linux 7 +rhel.8 | Red Hat Enterprise Linux 8 +rhel.8.desktop | Red Hat Enterprise Linux 8 +rhel.8.dpdk | Red Hat Enterprise Linux 8 +rhel.9 | Red Hat Enterprise Linux 9 (amd64) +rhel.9.arm64 | Red Hat Enterprise Linux 9 (arm64) +rhel.9.desktop | Red Hat Enterprise Linux 9 Desktop (amd64) +rhel.9.dpdk | Red Hat Enterprise Linux 9 DPDK (amd64) +rhel.9.realtime | Red Hat Enterprise Linux 9 Realtime (amd64) +sles | SUSE Linux Enterprise Server +ubuntu | Ubuntu +windows.10 | Microsoft Windows 10 +windows.10.virtio | Microsoft Windows 10 (virtio) +windows.11 | Microsoft Windows 11 +windows.11.virtio | Microsoft Windows 11 (virtio) +windows.2k16 | Microsoft Windows Server 2016 +windows.2k16.virtio | Microsoft Windows Server 2016 (virtio) +windows.2k19 | Microsoft Windows Server 2019 +windows.2k19.virtio | Microsoft Windows Server 2019 (virtio) +windows.2k22 | Microsoft Windows Server 2022 +windows.2k22.virtio | Microsoft Windows Server 2022 (virtio) +windows.2k25 | Microsoft Windows Server 2025 +windows.2k25.virtio | Microsoft Windows Server 2025 (virtio) diff --git a/packages/apps/virtual-machine/hack/update-instance-types.sh b/packages/apps/virtual-machine/hack/update-instance-types.sh new file mode 100755 index 00000000..1a248525 --- /dev/null +++ b/packages/apps/virtual-machine/hack/update-instance-types.sh @@ -0,0 +1 @@ +#!/bin/sh diff --git a/packages/apps/virtual-machine/templates/vm.yaml b/packages/apps/virtual-machine/templates/vm.yaml index f2a07904..f4a1471b 100644 --- a/packages/apps/virtual-machine/templates/vm.yaml +++ b/packages/apps/virtual-machine/templates/vm.yaml @@ -1,3 +1,10 @@ +{{- if and .Values.instanceType (not (lookup "instancetype.kubevirt.io/v1beta1" "VirtualMachineClusterInstancetype" "" .Values.instanceType)) }} +{{- fail (printf "Specified instancetype not exists in cluster: %s" .Values.instanceType) }} +{{- end }} +{{- if and .Values.instanceProfile (not (lookup "instancetype.kubevirt.io/v1beta1" "VirtualMachineClusterPreference" "" .Values.instanceProfile)) }} +{{- fail (printf "Specified profile not exists in cluster: %s" .Values.instanceProfile) }} +{{- end }} + apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: @@ -6,6 +13,16 @@ metadata: {{- include "virtual-machine.labels" . | nindent 4 }} spec: running: {{ .Values.running | default "true" }} + {{- with .Values.instanceType }} + instancetype: + kind: VirtualMachineClusterInstancetype + name: {{ . }} + {{- end }} + {{- with .Values.instanceProfile }} + preference: + kind: VirtualMachineClusterPreference + name: {{ . }} + {{- end }} dataVolumeTemplates: - metadata: name: {{ include "virtual-machine.fullname" . }} @@ -16,23 +33,18 @@ spec: - ReadWriteMany resources: requests: - storage: {{ .Values.resources.disk | quote }} - {{- with $.Values.storageClass }} + storage: {{ $.Values.systemDisk.storage | quote }} + {{- with $.Values.systemDisk.storageClass }} storageClassName: {{ . }} {{- end }} source: + {{- if $.Values.systemDisk.origin }} http: - {{- if eq .Values.image "cirros" }} - url: https://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img - {{- else if eq .Values.image "ubuntu" }} - url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img - {{- else if eq .Values.image "fedora" }} - url: https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 - {{- else if eq .Values.image "alpine" }} - url: https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/cloud/nocloud_alpine-3.20.2-x86_64-bios-tiny-r0.qcow2 - {{- else if eq .Values.image "talos" }} - url: https://github.com/siderolabs/talos/releases/download/v1.7.6/nocloud-amd64.raw.xz - {{- end }} + url: {{ $.Values.systemDisk.origin }} + {{- else }} + blank: {} + {{- end }} + template: metadata: annotations: @@ -41,8 +53,15 @@ spec: {{- include "virtual-machine.labels" . | nindent 8 }} spec: domain: + {{- if and .Values.resources .Values.resources.cpu }} cpu: cores: {{ .Values.resources.cpu }} + {{- end }} + {{- if and .Values.resources .Values.resources.memory }} + resources: + requests: + memory: {{ .Values.resources.memory | quote }} + {{- end }} devices: disks: - disk: @@ -58,9 +77,6 @@ spec: bridge: {} machine: type: "" - resources: - requests: - memory: {{ .Values.resources.memory | quote }} {{- with .Values.sshKeys }} accessCredentials: - sshPublicKey: diff --git a/packages/apps/virtual-machine/values.schema.json b/packages/apps/virtual-machine/values.schema.json index 2c248e4f..c5d8daf8 100644 --- a/packages/apps/virtual-machine/values.schema.json +++ b/packages/apps/virtual-machine/values.schema.json @@ -20,41 +20,146 @@ "description": "Determines if the virtual machine should be running", "default": true }, - "image": { + "instanceType": { "type": "string", - "description": "The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos`", + "description": "Virtual Machine instance type", + "default": "u1.medium", + "optional": true, + "enum": [ + "cx1.2xlarge", + "cx1.4xlarge", + "cx1.8xlarge", + "cx1.large", + "cx1.medium", + "cx1.xlarge", + "gn1.2xlarge", + "gn1.4xlarge", + "gn1.8xlarge", + "gn1.xlarge", + "m1.2xlarge", + "m1.4xlarge", + "m1.8xlarge", + "m1.large", + "m1.xlarge", + "n1.2xlarge", + "n1.4xlarge", + "n1.8xlarge", + "n1.large", + "n1.medium", + "n1.xlarge", + "o1.2xlarge", + "o1.4xlarge", + "o1.8xlarge", + "o1.large", + "o1.medium", + "o1.micro", + "o1.nano", + "o1.small", + "o1.xlarge", + "rt1.2xlarge", + "rt1.4xlarge", + "rt1.8xlarge", + "rt1.large", + "rt1.medium", + "rt1.micro", + "rt1.small", + "rt1.xlarge", + "u1.2xlarge", + "u1.2xmedium", + "u1.4xlarge", + "u1.8xlarge", + "u1.large", + "u1.medium", + "u1.micro", + "u1.nano", + "u1.small", + "u1.xlarge", + "" + ] + }, + "instanceProfile": { + "type": "string", + "description": "Virtual Machine prefferences profile", "default": "ubuntu", + "optional": true, "enum": [ - "ubuntu", - "cirros", "alpine", + "centos.7", + "centos.7.desktop", + "centos.stream10", + "centos.stream10.desktop", + "centos.stream8", + "centos.stream8.desktop", + "centos.stream8.dpdk", + "centos.stream9", + "centos.stream9.desktop", + "centos.stream9.dpdk", + "cirros", "fedora", - "talos" + "fedora.arm64", + "opensuse.leap", + "opensuse.tumbleweed", + "rhel.10", + "rhel.10.arm64", + "rhel.7", + "rhel.7.desktop", + "rhel.8", + "rhel.8.desktop", + "rhel.8.dpdk", + "rhel.9", + "rhel.9.arm64", + "rhel.9.desktop", + "rhel.9.dpdk", + "rhel.9.realtime", + "sles", + "ubuntu", + "windows.10", + "windows.10.virtio", + "windows.11", + "windows.11.virtio", + "windows.2k16", + "windows.2k16.virtio", + "windows.2k19", + "windows.2k19.virtio", + "windows.2k22", + "windows.2k22.virtio", + "windows.2k25", + "windows.2k25.virtio", + "" ] }, - "storageClass": { - "type": "string", - "description": "StorageClass used to store the data", - "default": "replicated" + "systemDisk": { + "type": "object", + "properties": { + "origin": { + "type": "string", + "description": "The HTTP URL for source image", + "default": "" + }, + "storage": { + "type": "string", + "description": "The size of the disk allocated for the virtual machine", + "default": "5Gi" + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "replicated" + } + } }, "resources": { "type": "object", "properties": { "cpu": { - "type": "number", + "type": "string", "description": "The number of CPU cores allocated to the virtual machine", - "default": 1 + "default": "" }, "memory": { "type": "string", "description": "The amount of memory allocated to the virtual machine", - "default": "1024M", - "x-display": "slider" - }, - "disk": { - "type": "string", - "description": "The size of the disk allocated for the virtual machine", - "default": "5Gi" + "default": "" } } }, diff --git a/packages/apps/virtual-machine/values.yaml b/packages/apps/virtual-machine/values.yaml index 6d8f79f0..1e6597db 100644 --- a/packages/apps/virtual-machine/values.yaml +++ b/packages/apps/virtual-machine/values.yaml @@ -2,24 +2,33 @@ ## @param external Enable external access from outside the cluster ## @param externalPorts [array] Specify ports to forward from outside the cluster -## @param running Determines if the virtual machine should be running -## @param image The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos` -## @param storageClass StorageClass used to store the data -## @param resources.cpu The number of CPU cores allocated to the virtual machine -## @param resources.memory The amount of memory allocated to the virtual machine -## @param resources.disk The size of the disk allocated for the virtual machine - external: false externalPorts: - 22 +## @param running Determines if the virtual machine should be running running: true -image: ubuntu -storageClass: replicated + +## @param instanceType Virtual Machine instance type +## @param instanceProfile Virtual Machine prefferences profile +## +instanceType: "u1.medium" +instanceProfile: ubuntu + +## @param systemDisk.origin The HTTP URL for source image +## @param systemDisk.storage The size of the disk allocated for the virtual machine +## @param systemDisk.storageClass StorageClass used to store the data +## +systemDisk: + origin: "" + storage: 5Gi + storageClass: replicated + +## @param resources.cpu The number of CPU cores allocated to the virtual machine +## @param resources.memory The amount of memory allocated to the virtual machine resources: - cpu: 1 - memory: 1024M - disk: 5Gi + cpu: "" + memory: "" ## @param sshKeys [array] List of SSH public keys for authentication. Can be a single key or a list of keys. ## Example: @@ -40,4 +49,3 @@ sshKeys: [] ## cloudInit: | #cloud-config - diff --git a/packages/core/platform/bundles/paas-full.yaml b/packages/core/platform/bundles/paas-full.yaml index 0ecf1527..0397933c 100644 --- a/packages/core/platform/bundles/paas-full.yaml +++ b/packages/core/platform/bundles/paas-full.yaml @@ -79,6 +79,12 @@ releases: privileged: true dependsOn: [cilium,kubeovn,kubevirt-operator] +- name: kubevirt-common-instancetypes + releaseName: kubevirt-common-instancetypes + chart: cozy-kubevirt-common-instancetypes + namespace: cozy-kubevirt + dependsOn: [cilium,kubeovn,kubevirt-operator,kubevirt] + - name: kubevirt-cdi-operator releaseName: kubevirt-cdi-operator chart: cozy-kubevirt-cdi-operator diff --git a/packages/system/kubevirt-common-instancetypes/Chart.yaml b/packages/system/kubevirt-common-instancetypes/Chart.yaml new file mode 100644 index 00000000..6a352088 --- /dev/null +++ b/packages/system/kubevirt-common-instancetypes/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +name: cozy-kubevirt +version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process diff --git a/packages/system/kubevirt-common-instancetypes/Makefile b/packages/system/kubevirt-common-instancetypes/Makefile new file mode 100644 index 00000000..ced6c784 --- /dev/null +++ b/packages/system/kubevirt-common-instancetypes/Makefile @@ -0,0 +1,12 @@ +export NAME=kubevirt-common-instancetypes +export NAMESPACE=cozy-kubevirt + +include ../../../scripts/package.mk + +update: + rm -rf templates + mkdir templates + kustomize build https://github.com/kubevirt/common-instancetypes/preferences > templates/preferences.yaml + yq -i 'select(.kind != "VirtualMachinePreference")' templates/preferences.yaml + kustomize build https://github.com/kubevirt/common-instancetypes/instancetypes > templates/instancetypes.yaml + yq -i 'select(.kind != "VirtualMachineInstancetype")' templates/instancetypes.yaml diff --git a/packages/system/kubevirt-common-instancetypes/templates/instancetypes.yaml b/packages/system/kubevirt-common-instancetypes/templates/instancetypes.yaml new file mode 100644 index 00000000..a4dfe2e9 --- /dev/null +++ b/packages/system/kubevirt-common-instancetypes/templates/instancetypes.yaml @@ -0,0 +1,1649 @@ +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.2xlarge +spec: + cpu: + dedicatedCPUPlacement: true + guest: 8 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 16Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.4xlarge +spec: + cpu: + dedicatedCPUPlacement: true + guest: 16 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 32Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.8xlarge +spec: + cpu: + dedicatedCPUPlacement: true + guest: 32 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 64Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.large +spec: + cpu: + dedicatedCPUPlacement: true + guest: 2 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 4Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 2Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: medium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.medium +spec: + cpu: + dedicatedCPUPlacement: true + guest: 1 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 2Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The CX Series provides exclusive compute resources for compute + intensive applications. + + *CX* is the abbreviation of "Compute Exclusive". + + The exclusive resources are given to the compute threads of the + VM. In order to ensure this, some additional cores (depending + on the number of disks and NICs) will be requested to offload + the IO threading from cores dedicated to the workload. + In addition, in this series, the NUMA topology of the used + cores is provided to the VM. + instancetype.kubevirt.io/displayName: Compute Exclusive + labels: + instancetype.kubevirt.io/class: compute.exclusive + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-registry + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 8Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: cx1.xlarge +spec: + cpu: + dedicatedCPUPlacement: true + guest: 4 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + ioThreadsPolicy: auto + memory: + guest: 8Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The GN Series provides instances types intended for VMs with + NVIDIA GPU resources attached. + + *GN* is the abbreviation of "GPU NVIDIA". + + This series is intended to be used with VMs consuming GPUs + provided by the + [NVIDIA GPU Operator](https://github.com/NVIDIA/gpu-operator) + which can be installed on Kubernetes and also is made available + on OpenShift via OperatorHub. + instancetype.kubevirt.io/displayName: GPU NVIDIA + labels: + instancetype.kubevirt.io/class: gpu.nvidia + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/gpus: "true" + instancetype.kubevirt.io/icon-pf: fa-microchip + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: gn1.2xlarge +spec: + cpu: + guest: 8 + gpus: + - deviceName: nvidia.com/A400 + name: gpu1 + memory: + guest: 32Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The GN Series provides instances types intended for VMs with + NVIDIA GPU resources attached. + + *GN* is the abbreviation of "GPU NVIDIA". + + This series is intended to be used with VMs consuming GPUs + provided by the + [NVIDIA GPU Operator](https://github.com/NVIDIA/gpu-operator) + which can be installed on Kubernetes and also is made available + on OpenShift via OperatorHub. + instancetype.kubevirt.io/displayName: GPU NVIDIA + labels: + instancetype.kubevirt.io/class: gpu.nvidia + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/gpus: "true" + instancetype.kubevirt.io/icon-pf: fa-microchip + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: gn1.4xlarge +spec: + cpu: + guest: 16 + gpus: + - deviceName: nvidia.com/A400 + name: gpu1 + memory: + guest: 64Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The GN Series provides instances types intended for VMs with + NVIDIA GPU resources attached. + + *GN* is the abbreviation of "GPU NVIDIA". + + This series is intended to be used with VMs consuming GPUs + provided by the + [NVIDIA GPU Operator](https://github.com/NVIDIA/gpu-operator) + which can be installed on Kubernetes and also is made available + on OpenShift via OperatorHub. + instancetype.kubevirt.io/displayName: GPU NVIDIA + labels: + instancetype.kubevirt.io/class: gpu.nvidia + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/gpus: "true" + instancetype.kubevirt.io/icon-pf: fa-microchip + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: gn1.8xlarge +spec: + cpu: + guest: 32 + gpus: + - deviceName: nvidia.com/A400 + name: gpu1 + memory: + guest: 128Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The GN Series provides instances types intended for VMs with + NVIDIA GPU resources attached. + + *GN* is the abbreviation of "GPU NVIDIA". + + This series is intended to be used with VMs consuming GPUs + provided by the + [NVIDIA GPU Operator](https://github.com/NVIDIA/gpu-operator) + which can be installed on Kubernetes and also is made available + on OpenShift via OperatorHub. + instancetype.kubevirt.io/displayName: GPU NVIDIA + labels: + instancetype.kubevirt.io/class: gpu.nvidia + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/gpus: "true" + instancetype.kubevirt.io/icon-pf: fa-microchip + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: gn1.xlarge +spec: + cpu: + guest: 4 + gpus: + - deviceName: nvidia.com/A400 + name: gpu1 + memory: + guest: 16Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The M Series provides resources for memory intensive + applications. + + *M* is the abbreviation of "Memory". + instancetype.kubevirt.io/displayName: Memory Intensive + labels: + instancetype.kubevirt.io/class: memory.intensive + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: fa-memory + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: m1.2xlarge +spec: + cpu: + guest: 8 + memory: + guest: 64Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The M Series provides resources for memory intensive + applications. + + *M* is the abbreviation of "Memory". + instancetype.kubevirt.io/displayName: Memory Intensive + labels: + instancetype.kubevirt.io/class: memory.intensive + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: fa-memory + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: m1.4xlarge +spec: + cpu: + guest: 16 + memory: + guest: 128Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The M Series provides resources for memory intensive + applications. + + *M* is the abbreviation of "Memory". + instancetype.kubevirt.io/displayName: Memory Intensive + labels: + instancetype.kubevirt.io/class: memory.intensive + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: fa-memory + instancetype.kubevirt.io/memory: 256Gi + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: m1.8xlarge +spec: + cpu: + guest: 32 + memory: + guest: 256Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The M Series provides resources for memory intensive + applications. + + *M* is the abbreviation of "Memory". + instancetype.kubevirt.io/displayName: Memory Intensive + labels: + instancetype.kubevirt.io/class: memory.intensive + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: fa-memory + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: m1.large +spec: + cpu: + guest: 2 + memory: + guest: 16Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The M Series provides resources for memory intensive + applications. + + *M* is the abbreviation of "Memory". + instancetype.kubevirt.io/displayName: Memory Intensive + labels: + instancetype.kubevirt.io/class: memory.intensive + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: fa-memory + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: m1.xlarge +spec: + cpu: + guest: 4 + memory: + guest: 32Gi + hugepages: + pageSize: 2Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.2xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 16 + isolateEmulatorThread: true + memory: + guest: 32Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.4xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 32 + isolateEmulatorThread: true + memory: + guest: 64Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "64" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.8xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 64 + isolateEmulatorThread: true + memory: + guest: 128Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 8Gi + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.large +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 4 + isolateEmulatorThread: true + memory: + guest: 8Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/size: medium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.medium +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 4 + isolateEmulatorThread: true + memory: + guest: 4Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The N Series provides resources for network intensive DPDK + applications, like VNFs. + + *N* is the abbreviation for "Network". + + This series of instancetypes requires nodes capable + of running DPDK workloads and being marked with the respective + node-role.kubevirt.io/worker-dpdk label as such. + instancetype.kubevirt.io/displayName: Network + labels: + instancetype.kubevirt.io/class: network + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-network + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: n1.xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 8 + isolateEmulatorThread: true + memory: + guest: 16Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.2xlarge +spec: + cpu: + guest: 8 + memory: + guest: 32Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.4xlarge +spec: + cpu: + guest: 16 + memory: + guest: 64Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.8xlarge +spec: + cpu: + guest: 32 + memory: + guest: 128Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 8Gi + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.large +spec: + cpu: + guest: 2 + memory: + guest: 8Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/size: medium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.medium +spec: + cpu: + guest: 1 + memory: + guest: 4Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 1Gi + instancetype.kubevirt.io/size: micro + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.micro +spec: + cpu: + guest: 1 + memory: + guest: 1Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 512Mi + instancetype.kubevirt.io/size: nano + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.nano +spec: + cpu: + guest: 1 + memory: + guest: 512Mi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 2Gi + instancetype.kubevirt.io/size: small + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.small +spec: + cpu: + guest: 1 + memory: + guest: 2Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The O Series is based on the U Series, with the only difference + being that memory is overcommitted. + + *O* is the abbreviation for "Overcommitted". + instancetype.kubevirt.io/displayName: Overcommitted + labels: + instancetype.kubevirt.io/class: overcommitted + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/icon-pf: pficon-virtual-machine + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: o1.xlarge +spec: + cpu: + guest: 4 + memory: + guest: 16Gi + overcommitPercent: 50 +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.2xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 8 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 32Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.4xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 16 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 64Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.8xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 32 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 128Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 8Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.large +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 2 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 8Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: medium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.medium +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 1 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 4Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 1Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: micro + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.micro +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 1 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 1Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 2Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: small + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.small +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 1 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 2Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The RT Series provides resources for realtime applications, like Oslat. + + *RT* is the abbreviation for "realtime". + + This series of instance types requires nodes capable of running + realtime applications. + instancetype.kubevirt.io/displayName: Realtime + labels: + instancetype.kubevirt.io/class: realtime + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/dedicatedCPUPlacement: "true" + instancetype.kubevirt.io/hugepages: "true" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/isolateEmulatorThread: "true" + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/numa: "true" + instancetype.kubevirt.io/realtime: "true" + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: rt1.xlarge +spec: + annotations: + cpu-load-balancing.crio.io: disable + cpu-quota.crio.io: disable + irq-load-balancing.crio.io: disable + cpu: + dedicatedCPUPlacement: true + guest: 4 + isolateEmulatorThread: true + numa: + guestMappingPassthrough: {} + realtime: {} + memory: + guest: 16Gi + hugepages: + pageSize: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "8" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 32Gi + instancetype.kubevirt.io/size: 2xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.2xlarge +spec: + cpu: + guest: 8 + memory: + guest: 32Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/size: 2xmedium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.2xmedium +spec: + cpu: + guest: 2 + memory: + guest: 4Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "16" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 64Gi + instancetype.kubevirt.io/size: 4xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.4xlarge +spec: + cpu: + guest: 16 + memory: + guest: 64Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "32" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 128Gi + instancetype.kubevirt.io/size: 8xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.8xlarge +spec: + cpu: + guest: 32 + memory: + guest: 128Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "2" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 8Gi + instancetype.kubevirt.io/size: large + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.large +spec: + cpu: + guest: 2 + memory: + guest: 8Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 4Gi + instancetype.kubevirt.io/size: medium + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.medium +spec: + cpu: + guest: 1 + memory: + guest: 4Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 1Gi + instancetype.kubevirt.io/size: micro + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.micro +spec: + cpu: + guest: 1 + memory: + guest: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 512Mi + instancetype.kubevirt.io/size: nano + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.nano +spec: + cpu: + guest: 1 + memory: + guest: 512Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "1" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 2Gi + instancetype.kubevirt.io/size: small + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.small +spec: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterInstancetype +metadata: + annotations: + instancetype.kubevirt.io/description: |- + The U Series is quite neutral and provides resources for + general purpose applications. + + *U* is the abbreviation for "Universal", hinting at the universal + attitude towards workloads. + + VMs of instance types will share physical CPU cores on a + time-slice basis with other VMs. + instancetype.kubevirt.io/displayName: General Purpose + labels: + instancetype.kubevirt.io/class: general.purpose + instancetype.kubevirt.io/cpu: "4" + instancetype.kubevirt.io/icon-pf: pficon-server-group + instancetype.kubevirt.io/memory: 16Gi + instancetype.kubevirt.io/size: xlarge + instancetype.kubevirt.io/vendor: kubevirt.io + instancetype.kubevirt.io/version: "1" + name: u1.xlarge +spec: + cpu: + guest: 4 + memory: + guest: 16Gi diff --git a/packages/system/kubevirt-common-instancetypes/templates/preferences.yaml b/packages/system/kubevirt-common-instancetypes/templates/preferences.yaml new file mode 100644 index 00000000..5931e9f8 --- /dev/null +++ b/packages/system/kubevirt-common-instancetypes/templates/preferences.yaml @@ -0,0 +1,1694 @@ +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-alpine + openshift.io/display-name: Alpine + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,alpine + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: alpine +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 512Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS 7 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.7 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS 7 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.7.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 10 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream10 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 10 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream10.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream8 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream8.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream,dpdk + labels: + instancetype.kubevirt.io/deprecated: "true" + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream8.dpdk +spec: + annotations: + vm.kubevirt.io/os: linux + cpu: + preferredCPUTopology: spread + spreadOptions: + across: SocketsCoresThreads + ratio: 4 + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + requirements: + cpu: + guest: 2 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 9 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream9 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 9 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream9.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-centos + openshift.io/display-name: CentOS Stream 9 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,centos-stream,dpdk + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: centos.stream9.dpdk +spec: + annotations: + vm.kubevirt.io/os: linux + cpu: + preferredCPUTopology: spread + spreadOptions: + across: SocketsCoresThreads + ratio: 4 + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + preferredRng: {} + requirements: + cpu: + guest: 2 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-cirros + openshift.io/display-name: Cirros + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,cirros + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: cirros +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 256Mi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-fedora + openshift.io/display-name: Fedora (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,fedora + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: fedora +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-fedora + openshift.io/display-name: Fedora (arm64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,fedora + labels: + instancetype.kubevirt.io/arch: arm64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: fedora.arm64 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-opensuse-leap + openshift.io/display-name: OpenSUSE Leap + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,opensuse.leap + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: opensuse.leap +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-opensuse-tumbleweed + openshift.io/display-name: OpenSUSE Tumbleweed + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,opensuse.tumbleweed + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: opensuse.tumbleweed +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 10 Beta (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.10 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 10 Beta (arm64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/arch: arm64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.10.arm64 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 7 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.7 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 7 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.7.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.8 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.8.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 8 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel,dpdk + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.8.dpdk +spec: + annotations: + vm.kubevirt.io/os: linux + cpu: + preferredCPUTopology: spread + spreadOptions: + across: SocketsCoresThreads + ratio: 4 + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + requirements: + cpu: + guest: 2 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 9 (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.9 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 9 (arm64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/arch: arm64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.9.arm64 +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 9 Desktop (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.9.desktop +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 9 DPDK (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel,dpdk + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.9.dpdk +spec: + annotations: + vm.kubevirt.io/os: linux + cpu: + preferredCPUTopology: spread + spreadOptions: + across: SocketsCoresThreads + ratio: 4 + devices: + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 2 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-rhel + openshift.io/display-name: Red Hat Enterprise Linux 9 Realtime (amd64) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,linux,rhel,realtime + labels: + instancetype.kubevirt.io/arch: amd64 + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: rhel.9.realtime +spec: + annotations: + vm.kubevirt.io/os: linux + cpu: + preferredCPUTopology: spread + spreadOptions: + across: SocketsCoresThreads + devices: + preferredAutoattachGraphicsDevice: false + preferredAutoattachMemBalloon: false + preferredAutoattachSerialConsole: true + preferredDiskBus: virtio + preferredDiskDedicatedIoThread: true + preferredInterfaceModel: virtio + preferredNetworkInterfaceMultiQueue: true + preferredRng: {} + features: + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + requirements: + cpu: + guest: 1 + memory: + guest: 1.5Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-sles + openshift.io/display-name: SUSE Linux Enterprise Server + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,sles + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: sles +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-ubuntu + openshift.io/display-name: Ubuntu + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,ubuntu + labels: + instancetype.kubevirt.io/os-type: linux + instancetype.kubevirt.io/vendor: kubevirt.io + name: ubuntu +spec: + annotations: + vm.kubevirt.io/os: linux + devices: + preferredDiskBus: virtio + preferredInterfaceModel: virtio + preferredRng: {} + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows 10 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.10 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows 10 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.10.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows 11 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.11 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 2 + memory: + guest: 4Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows 11 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.11.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 2 + memory: + guest: 4Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2016 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k16 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2016 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k16.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2019 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k19 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2019 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k19.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2022 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k22 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2022 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k22.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2025 + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k25 +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: sata + preferredInterfaceModel: e1000e + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi +--- +apiVersion: instancetype.kubevirt.io/v1beta1 +kind: VirtualMachineClusterPreference +metadata: + annotations: + iconClass: icon-windows + openshift.io/display-name: Microsoft Windows Server 2025 (virtio) + openshift.io/documentation-url: https://github.com/kubevirt/common-instancetypes + openshift.io/provider-display-name: KubeVirt + openshift.io/support-url: https://github.com/kubevirt/common-instancetypes/issues + tags: hidden,kubevirt,windows + labels: + instancetype.kubevirt.io/os-type: windows + instancetype.kubevirt.io/vendor: kubevirt.io + name: windows.2k25.virtio +spec: + annotations: + vm.kubevirt.io/os: windows + clock: + preferredClockOffset: + utc: {} + preferredTimer: + hpet: + present: false + hyperv: {} + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + cpu: + preferredCPUTopology: sockets + devices: + preferredAutoattachInputDevice: true + preferredDiskBus: virtio + preferredInputBus: virtio + preferredInputType: tablet + preferredInterfaceModel: virtio + preferredTPM: + persistent: true + features: + preferredAcpi: {} + preferredApic: {} + preferredHyperv: + frequencies: {} + ipi: {} + reenlightenment: {} + relaxed: {} + reset: {} + runtime: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + vapic: {} + vpindex: {} + preferredSmm: {} + firmware: + preferredEfi: + persistent: true + secureBoot: true + preferredTerminationGracePeriodSeconds: 3600 + requirements: + cpu: + guest: 1 + memory: + guest: 2Gi diff --git a/packages/system/kubevirt-common-instancetypes/values.yaml b/packages/system/kubevirt-common-instancetypes/values.yaml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/system/kubevirt-common-instancetypes/values.yaml @@ -0,0 +1 @@ + diff --git a/packages/system/kubevirt/templates/kubevirt-cr.yaml b/packages/system/kubevirt/templates/kubevirt-cr.yaml index b98e3119..bc9c6845 100644 --- a/packages/system/kubevirt/templates/kubevirt-cr.yaml +++ b/packages/system/kubevirt/templates/kubevirt-cr.yaml @@ -7,10 +7,12 @@ metadata: spec: certificateRotateStrategy: {} configuration: + vmStateStorageClass: "replicated" developerConfiguration: featureGates: - HotplugVolumes - ExpandDisks + - VMPersistentState customizeComponents: {} imagePullPolicy: IfNotPresent workloadUpdateStrategy: {}