From 51672ef5e89750c4ebc35f72fa4cb074eb455487 Mon Sep 17 00:00:00 2001 From: Common-templates Release Automation Date: Tue, 10 Dec 2024 10:44:53 +0000 Subject: [PATCH] Update common-templates bundle to version v0.32.2 Signed-off-by: Common-templates Release Automation --- .../common-templates-amd64-v0.32.2.yaml | 14603 +++++++++++ .../common-templates-s390x-v0.32.2.yaml | 7045 +++++ .../common-templates-v0.32.2.yaml | 21647 ++++++++++++++++ internal/operands/common-templates/version.go | 2 +- 4 files changed, 43296 insertions(+), 1 deletion(-) create mode 100644 data/common-templates-bundle/common-templates-amd64-v0.32.2.yaml create mode 100644 data/common-templates-bundle/common-templates-s390x-v0.32.2.yaml create mode 100644 data/common-templates-bundle/common-templates-v0.32.2.yaml diff --git a/data/common-templates-bundle/common-templates-amd64-v0.32.2.yaml b/data/common-templates-bundle/common-templates-amd64-v0.32.2.yaml new file mode 100644 index 000000000..9575c0063 --- /dev/null +++ b/data/common-templates-bundle/common-templates-amd64-v0.32.2.yaml @@ -0,0 +1,14603 @@ +# Version v0.32.2 +--- +# Source: dist/templates/centos-stream9-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-large + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-medium + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-small + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-tiny + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-large + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-medium + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-small + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-tiny + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-large + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + networkInterfaceMultiqueue: true + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-medium + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-small + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-tiny + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-large + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-medium + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-small + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-tiny + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-large + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-medium + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-small + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-large + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-medium + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-small + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/windows10-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-desktop-large + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-desktop-medium + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-desktop-large + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 2 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-desktop-medium + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 2 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 2 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 2 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images diff --git a/data/common-templates-bundle/common-templates-s390x-v0.32.2.yaml b/data/common-templates-bundle/common-templates-s390x-v0.32.2.yaml new file mode 100644 index 000000000..c72586e5b --- /dev/null +++ b/data/common-templates-bundle/common-templates-s390x-v0.32.2.yaml @@ -0,0 +1,7045 @@ +# Version v0.32.2 +--- +# Source: dist/templates/centos-stream9-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-large-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-medium-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-small-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-tiny-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-large-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-medium-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-small-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-tiny-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-large-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-medium-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-small-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-large-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-medium-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-small-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD diff --git a/data/common-templates-bundle/common-templates-v0.32.2.yaml b/data/common-templates-bundle/common-templates-v0.32.2.yaml new file mode 100644 index 000000000..9db7afce0 --- /dev/null +++ b/data/common-templates-bundle/common-templates-v0.32.2.yaml @@ -0,0 +1,21647 @@ +# Version v0.32.2 +--- +# Source: dist/templates/centos-stream9-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-large-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-large + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-medium-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-medium + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-small-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-small + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-tiny-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-desktop-tiny + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-large-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-large + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-medium-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-medium + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-small-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-small + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-tiny-s390x + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/s390x/images/CentOS-Stream-GenericCloud-9-latest.s390x.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos-stream9-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos-stream9-server-tiny + annotations: + openshift.io/display-name: "CentOS Stream 9 VM" + description: >- + Template for CentOS Stream 9 VM or newer. + A PVC with the CentOS Stream disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centosstream" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/centos-stream:9 + template.kubevirt.io/images: | + https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos-stream9: CentOS Stream 9 or higher + labels: + os.template.kubevirt.io/centos-stream9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos-stream9-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos-stream9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos-stream9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos-stream9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-large + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + networkInterfaceMultiqueue: true + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-medium + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-small + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/centos6-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: centos6-server-tiny + annotations: + template.kubevirt.io/deprecated: "true" + openshift.io/display-name: "CentOS 6 VM" + description: >- + Template for CentOS 6 VM or newer. + A PVC with the CentOS disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,centos" + iconClass: "icon-centos" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/centos6.0: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.1: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.10: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.2: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.3: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.4: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.5: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.6: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.7: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.8: CentOS 6.0 or higher + name.os.template.kubevirt.io/centos6.9: CentOS 6.0 or higher + labels: + os.template.kubevirt.io/centos6.0: "true" + os.template.kubevirt.io/centos6.1: "true" + os.template.kubevirt.io/centos6.10: "true" + os.template.kubevirt.io/centos6.2: "true" + os.template.kubevirt.io/centos6.3: "true" + os.template.kubevirt.io/centos6.4: "true" + os.template.kubevirt.io/centos6.5: "true" + os.template.kubevirt.io/centos6.6: "true" + os.template.kubevirt.io/centos6.7: "true" + os.template.kubevirt.io/centos6.8: "true" + os.template.kubevirt.io/centos6.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: centos6-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "centos6" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + useVirtioTransitional: true + rng: {} + disks: + - bootOrder: 1 + disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: centos + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'centos6-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'centos6' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user centos + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-desktop-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-highperformance-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-large-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-large + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-medium-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-medium + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-small-s390x + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora-secondary/releases/40/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora-secondary/releases/41/Cloud/s390x/images/Fedora-Cloud-Base-Generic.s390x-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/fedora-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: fedora-server-small + annotations: + openshift.io/display-name: "Fedora VM" + description: >- + Template for Fedora Linux 40 VM or newer. + A PVC with the Fedora disk image must be available. + tags: "hidden,kubevirt,virtualmachine,fedora" + iconClass: "icon-fedora" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/fedora:latest + quay.io/containerdisks/fedora:40 + quay.io/containerdisks/fedora:41 + template.kubevirt.io/images: | + https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 + https://download.fedoraproject.org/pub/fedora/linux/releases/41/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-41-1.4.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/fedora40: Fedora Linux 40 or higher + name.os.template.kubevirt.io/fedora41: Fedora Linux 40 or higher + labels: + os.template.kubevirt.io/fedora40: "true" + os.template.kubevirt.io/fedora41: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: fedora-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "fedora" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: fedora + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'fedora-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'fedora' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user fedora + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-large + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-medium + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-small + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/opensuse-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: opensuse-server-tiny + annotations: + openshift.io/display-name: "openSUSE Leap 15.5+ VM" + description: >- + Template for openSUSE Leap 15.5 VM or newer. + A PVC with the openSUSE disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,opensuse" + iconClass: "icon-opensuse" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.5/images/openSUSE-Leap-15.5.x86_64-NoCloud.qcow2 + https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.6/images/openSUSE-Leap-15.6.x86_64-NoCloud.qcow2 + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/opensuse15.5: openSUSE Leap 15.5 or higher + name.os.template.kubevirt.io/opensuse15.6: openSUSE Leap 15.5 or higher + labels: + os.template.kubevirt.io/opensuse15.5: "true" + os.template.kubevirt.io/opensuse15.6: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: opensuse-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "opensuse" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: opensuse + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'opensuse-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'opensuse' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user opensuse + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel7-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel7-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 7 VM" + description: >- + Template for Red Hat Enterprise Linux 7 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel7.0: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.1: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.2: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.3: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.4: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.5: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.6: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.7: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.8: Red Hat Enterprise Linux 7.0 or higher + name.os.template.kubevirt.io/rhel7.9: Red Hat Enterprise Linux 7.0 or higher + labels: + os.template.kubevirt.io/rhel7.0: "true" + os.template.kubevirt.io/rhel7.1: "true" + os.template.kubevirt.io/rhel7.2: "true" + os.template.kubevirt.io/rhel7.3: "true" + os.template.kubevirt.io/rhel7.4: "true" + os.template.kubevirt.io/rhel7.5: "true" + os.template.kubevirt.io/rhel7.6: "true" + os.template.kubevirt.io/rhel7.7: "true" + os.template.kubevirt.io/rhel7.8: "true" + os.template.kubevirt.io/rhel7.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel7-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1073741824 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel7" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: amd64 + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel7-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel7' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel8-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel8-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 8 VM" + description: >- + Template for Red Hat Enterprise Linux 8 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel8/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel8.0: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.1: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.2: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.3: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.4: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.5: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.6: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.7: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.8: Red Hat Enterprise Linux 8.0 or higher + name.os.template.kubevirt.io/rhel8.9: Red Hat Enterprise Linux 8.0 or higher + labels: + os.template.kubevirt.io/rhel8.0: "true" + os.template.kubevirt.io/rhel8.1: "true" + os.template.kubevirt.io/rhel8.10: "true" + os.template.kubevirt.io/rhel8.2: "true" + os.template.kubevirt.io/rhel8.3: "true" + os.template.kubevirt.io/rhel8.4: "true" + os.template.kubevirt.io/rhel8.5: "true" + os.template.kubevirt.io/rhel8.6: "true" + os.template.kubevirt.io/rhel8.7: "true" + os.template.kubevirt.io/rhel8.8: "true" + os.template.kubevirt.io/rhel8.9: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel8-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel8" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel8-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel8' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-desktop-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-desktop-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-desktop-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-highperformance-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-highperformance-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-highperformance-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + ioThreadsPolicy: shared + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + dedicatedIOThread: true + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-large-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-large + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-medium-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-medium + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-small-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-small + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 2Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-tiny-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-tiny-s390x + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-tiny-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/rhel9-server-tiny.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: rhel9-server-tiny + annotations: + openshift.io/display-name: "Red Hat Enterprise Linux 9 VM" + description: >- + Template for Red Hat Enterprise Linux 9 VM or newer. + A PVC with the RHEL disk image must be available. + tags: "hidden,kubevirt,virtualmachine,linux,rhel" + iconClass: "icon-rhel" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + registry.redhat.io/rhel9/rhel-guest-image + template.kubevirt.io/images: | + https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.0/x86_64/product-software + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/rhel9.0: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.1: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.2: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.3: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.4: Red Hat Enterprise Linux 9.0 or higher + name.os.template.kubevirt.io/rhel9.5: Red Hat Enterprise Linux 9.0 or higher + labels: + os.template.kubevirt.io/rhel9.0: "true" + os.template.kubevirt.io/rhel9.1: "true" + os.template.kubevirt.io/rhel9.2: "true" + os.template.kubevirt.io/rhel9.3: "true" + os.template.kubevirt.io/rhel9.4: "true" + os.template.kubevirt.io/rhel9.5: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/tiny: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: rhel9-server-tiny + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 1610612736 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "rhel9" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "tiny" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: tiny + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 1.5Gi + devices: + rng: {} + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + features: + smm: + enabled: true + firmware: + bootloader: + efi: {} + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: cloud-user + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'rhel9-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'rhel9' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user cloud-user + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-large-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-large + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-medium-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-medium + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-small-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-desktop-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-desktop-small + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-desktop-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-large-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-large-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-large-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "s390x" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-large + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: "amd64" + domain: + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + devices: + rng: {} + networkInterfaceMultiqueue: true + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-medium-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-medium-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-medium-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-medium + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-small-s390x.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-small-s390x + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-s390x-disk1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-s390x.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-s390x.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "s390x" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-small-s390x + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "s390x" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/ubuntu-server-small.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ubuntu-server-small + annotations: + openshift.io/display-name: "Ubuntu 16.04+ VM" + description: >- + Template for Ubuntu 16.04 VM or newer. + A PVC with the Ubuntu disk image must be available. + tags: "hidden,kubevirt,virtualmachine,ubuntu" + iconClass: "icon-ubuntu" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + template.kubevirt.io/containerdisks: | + quay.io/containerdisks/ubuntu:18.04 + quay.io/containerdisks/ubuntu:20.04 + quay.io/containerdisks/ubuntu:22.04 + quay.io/containerdisks/ubuntu:24.04 + template.kubevirt.io/images: | + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-uefi1.img + https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.sockets + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.cpu.threads + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/ubuntu16.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu18.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu20.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu22.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.04: Ubuntu 16.04 or higher + name.os.template.kubevirt.io/ubuntu24.10: Ubuntu 16.04 or higher + labels: + os.template.kubevirt.io/ubuntu16.04: "true" + os.template.kubevirt.io/ubuntu18.04: "true" + os.template.kubevirt.io/ubuntu20.04: "true" + os.template.kubevirt.io/ubuntu22.04: "true" + os.template.kubevirt.io/ubuntu24.04: "true" + os.template.kubevirt.io/ubuntu24.10: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/small: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: ubuntu-server-small + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 30Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "ubuntu" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "small" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: small + spec: + architecture: "amd64" + domain: + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 3Gi + devices: + rng: {} + inputs: + - type: tablet + bus: virtio + name: tablet + disks: + - disk: + bus: virtio + name: rootdisk + - disk: + bus: virtio + name: cloudinitdisk + interfaces: + - masquerade: {} + name: default + model: virtio + terminationGracePeriodSeconds: 180 + networks: + - name: default + pod: {} + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + - cloudInitNoCloud: + userData: |- + #cloud-config + user: ubuntu + password: ${CLOUD_USER_PASSWORD} + chpasswd: { expire: False } + name: cloudinitdisk +parameters: +- description: VM name + from: 'ubuntu-[a-z0-9]{16}' + generate: expression + name: NAME +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: 'ubuntu' +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +- description: Randomized password for the cloud-init user ubuntu + from: '[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}' + generate: expression + name: CLOUD_USER_PASSWORD +--- +# Source: dist/templates/windows10-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-desktop-large + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-desktop-medium + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows10-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows10-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows 10 VM" + description: >- + Template for Microsoft Windows 10 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win10: Microsoft Windows 10 + labels: + os.template.kubevirt.io/win10: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows10-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 2147483648 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows10" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows10-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win10 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-desktop-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-desktop-large + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-desktop-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 2 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-desktop-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-desktop-medium + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/desktop: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-desktop-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "desktop" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 2 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 2 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows11-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows11-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows 11 VM" + description: >- + Template for Microsoft Windows 11 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win11: Microsoft Windows 11 + labels: + os.template.kubevirt.io/win11: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows11-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 4294967296 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + }, { + "name": "minimal-required-cores", + "path": "jsonpath::.spec.domain.cpu.cores", + "rule": "integer", + "message": "This VM requires more cores.", + "min": 2 + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows11" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 2 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows11-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win11 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k16-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k16-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2016 VM" + description: >- + Template for Microsoft Windows Server 2016 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k16: Microsoft Windows Server 2016 + labels: + os.template.kubevirt.io/win2k16: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k16-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k16" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2016-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k16 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k19-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k19-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2019 VM" + description: >- + Template for Microsoft Windows Server 2019 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k19: Microsoft Windows Server 2019 + labels: + os.template.kubevirt.io/win2k19: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k19-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k19" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2019-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k19 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k22-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k22-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2022 VM" + description: >- + Template for Microsoft Windows Server 2022 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k22: Microsoft Windows Server 2022 + labels: + os.template.kubevirt.io/win2k22: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k22-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 60Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k22" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2022-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k22 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-highperformance-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-highperformance-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-highperformance-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + networkInterfaceMultiqueue: True + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-highperformance-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-highperformance-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/highperformance: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-highperformance-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "highperformance" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + dedicatedCpuPlacement: True + isolateEmulatorThread: True + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: virtio + name: rootdisk + interfaces: + - masquerade: {} + model: virtio + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-server-large.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-server-large + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/large: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-server-large + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "large" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: large + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 2 + cores: 1 + threads: 1 + memory: + guest: 8Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images +--- +# Source: dist/templates/windows2k25-server-medium.yaml +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows2k25-server-medium + annotations: + openshift.io/display-name: "Microsoft Windows Server 2025 VM" + description: >- + Template for Microsoft Windows 2025 VM. + A PVC with the Windows disk image must be available. + tags: "hidden,kubevirt,virtualmachine,windows" + iconClass: "icon-windows" + openshift.io/provider-display-name: "KubeVirt" + openshift.io/documentation-url: "https://github.com/kubevirt/common-templates" + openshift.io/support-url: "https://github.com/kubevirt/common-templates/issues" + template.openshift.io/bindable: "false" + template.kubevirt.io/version: v1alpha1 + defaults.template.kubevirt.io/disk: rootdisk + defaults.template.kubevirt.io/network: default + template.kubevirt.io/editable: | + /objects[0].spec.template.spec.domain.cpu.cores + /objects[0].spec.template.spec.domain.memory.guest + /objects[0].spec.template.spec.domain.devices.disks + /objects[0].spec.template.spec.volumes + /objects[0].spec.template.spec.networks + name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025 + labels: + os.template.kubevirt.io/win2k25: "true" + workload.template.kubevirt.io/server: "true" + flavor.template.kubevirt.io/medium: "true" + template.kubevirt.io/type: "base" + template.kubevirt.io/version: "v0.32.2" + template.kubevirt.io/default-os-variant: "true" + template.kubevirt.io/architecture: "amd64" +objects: +- apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${NAME} + labels: + vm.kubevirt.io/template: windows2k25-server-medium + vm.kubevirt.io/template.version: "v0.32.2" + vm.kubevirt.io/template.revision: "1" + app: ${NAME} + annotations: + vm.kubevirt.io/validations: | + [ + { + "name": "minimal-required-memory", + "path": "jsonpath::.spec.domain.memory.guest", + "rule": "integer", + "message": "This VM requires more memory.", + "min": 536870912 + }, { + "name": "windows-virtio-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "virtio disk bus type has better performance, install virtio drivers in VM and change bus type", + "values": ["virtio"], + "justWarning": true + }, { + "name": "windows-disk-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].disk.bus", + "rule": "enum", + "message": "disk bus has to be either virtio or sata or scsi", + "values": ["virtio", "sata", "scsi"] + }, { + "name": "windows-cd-bus", + "path": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "valid": "jsonpath::.spec.domain.devices.disks[*].cdrom.bus", + "rule": "enum", + "message": "cd bus has to be sata", + "values": ["sata"] + } + ] + spec: + dataVolumeTemplates: + - apiVersion: cdi.kubevirt.io/v1beta1 + kind: DataVolume + metadata: + name: ${NAME} + spec: + storage: + resources: + requests: + storage: 64Gi + sourceRef: + kind: DataSource + name: ${DATA_SOURCE_NAME} + namespace: ${DATA_SOURCE_NAMESPACE} + runStrategy: Halted + template: + metadata: + annotations: + vm.kubevirt.io/os: "windows2k25" + vm.kubevirt.io/workload: "server" + vm.kubevirt.io/flavor: "medium" + labels: + kubevirt.io/domain: ${NAME} + kubevirt.io/size: medium + spec: + architecture: amd64 + domain: + clock: + utc: {} + timer: + hpet: + present: false + pit: + tickPolicy: delay + rtc: + tickPolicy: catchup + hyperv: {} + cpu: + sockets: 1 + cores: 1 + threads: 1 + memory: + guest: 4Gi + features: + acpi: {} + apic: {} + smm: {} + hyperv: + relaxed: {} + vapic: {} + vpindex: {} + spinlocks: + spinlocks: 8191 + synic: {} + synictimer: + direct: {} + tlbflush: {} + frequencies: {} + reenlightenment: {} + ipi: {} + runtime: {} + reset: {} + firmware: + bootloader: + efi: + secureBoot: true + persistent: true + devices: + disks: + - disk: + bus: sata + name: rootdisk + interfaces: + - masquerade: {} + model: e1000e + name: default + inputs: + - type: tablet + bus: usb + name: tablet + tpm: + persistent: true + terminationGracePeriodSeconds: 3600 + volumes: + - dataVolume: + name: ${NAME} + name: rootdisk + networks: + - name: default + pod: {} +parameters: +- name: NAME + description: VM name + generate: expression + from: "windows2025-[a-z0-9]{6}" +- name: DATA_SOURCE_NAME + description: Name of the DataSource to clone + value: win2k25 +- name: DATA_SOURCE_NAMESPACE + description: Namespace of the DataSource + value: kubevirt-os-images diff --git a/internal/operands/common-templates/version.go b/internal/operands/common-templates/version.go index fb0e8cfd4..d0f531fca 100644 --- a/internal/operands/common-templates/version.go +++ b/internal/operands/common-templates/version.go @@ -8,5 +8,5 @@ package common_templates const ( - Version = "v0.31.0" + Version = "v0.32.2" )