---
apiVersion: template.openshift.io/v1
kind: Template
metadata:
  annotations:
    defaults.template.kubevirt.io/disk: rootdisk
    description: Template for Red Hat Enterprise Linux 8 VM or newer. A PVC with the
      RHEL disk image must be available.
    iconClass: icon-rhel
    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.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
    name.os.template.kubevirt.io/rhel8.10: Red Hat Enterprise Linux 8.0 or higher
    openshift.io/display-name: Red Hat Enterprise Linux 8 VM
    openshift.io/documentation-url: https://github.com/kubevirt/common-templates
    openshift.io/provider-display-name: Red Hat
    openshift.io/support-url: https://github.com/kubevirt/common-templates/issues
    openshift.kubevirt.io/pronounceable-suffix-for-name-expression: "true"
    operator-sdk/primary-resource: openshift-cnv/ssp-kubevirt-hyperconverged
    operator-sdk/primary-resource-type: SSP.ssp.kubevirt.io
    tags: hidden,kubevirt,virtualmachine,linux,rhel
    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
    template.kubevirt.io/images: |
      https://access.redhat.com/downloads/content/479/ver=/rhel---8/8.6/x86_64/product-software
    template.kubevirt.io/provider: Red Hat
    template.kubevirt.io/provider-support-level: Full
    template.kubevirt.io/provider-url: https://www.redhat.com
    template.kubevirt.io/version: v1alpha1
    template.openshift.io/bindable: "false"
  creationTimestamp: "2025-10-29T11:54:05Z"
  labels:
    app.kubernetes.io/component: templating
    app.kubernetes.io/managed-by: ssp-operator
    app.kubernetes.io/name: common-templates
    app.kubernetes.io/part-of: hyperconverged-cluster
    app.kubernetes.io/version: 4.19.11
    flavor.template.kubevirt.io/tiny: "true"
    os.template.kubevirt.io/rhel8.0: "true"
    os.template.kubevirt.io/rhel8.1: "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"
    os.template.kubevirt.io/rhel8.10: "true"
    template.kubevirt.io/architecture: amd64
    template.kubevirt.io/type: base
    template.kubevirt.io/version: v0.34.0
    workload.template.kubevirt.io/desktop: "true"
  managedFields:
  - apiVersion: template.openshift.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:defaults.template.kubevirt.io/disk: {}
          f:description: {}
          f:iconClass: {}
          f:name.os.template.kubevirt.io/rhel8.0: {}
          f:name.os.template.kubevirt.io/rhel8.1: {}
          f:name.os.template.kubevirt.io/rhel8.2: {}
          f:name.os.template.kubevirt.io/rhel8.3: {}
          f:name.os.template.kubevirt.io/rhel8.4: {}
          f:name.os.template.kubevirt.io/rhel8.5: {}
          f:name.os.template.kubevirt.io/rhel8.6: {}
          f:name.os.template.kubevirt.io/rhel8.7: {}
          f:name.os.template.kubevirt.io/rhel8.8: {}
          f:name.os.template.kubevirt.io/rhel8.9: {}
          f:name.os.template.kubevirt.io/rhel8.10: {}
          f:openshift.io/display-name: {}
          f:openshift.io/documentation-url: {}
          f:openshift.io/provider-display-name: {}
          f:openshift.io/support-url: {}
          f:openshift.kubevirt.io/pronounceable-suffix-for-name-expression: {}
          f:operator-sdk/primary-resource: {}
          f:operator-sdk/primary-resource-type: {}
          f:tags: {}
          f:template.kubevirt.io/containerdisks: {}
          f:template.kubevirt.io/editable: {}
          f:template.kubevirt.io/images: {}
          f:template.kubevirt.io/provider: {}
          f:template.kubevirt.io/provider-support-level: {}
          f:template.kubevirt.io/provider-url: {}
          f:template.kubevirt.io/version: {}
          f:template.openshift.io/bindable: {}
        f:labels:
          .: {}
          f:app.kubernetes.io/component: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:flavor.template.kubevirt.io/tiny: {}
          f:os.template.kubevirt.io/rhel8.0: {}
          f:os.template.kubevirt.io/rhel8.1: {}
          f:os.template.kubevirt.io/rhel8.2: {}
          f:os.template.kubevirt.io/rhel8.3: {}
          f:os.template.kubevirt.io/rhel8.4: {}
          f:os.template.kubevirt.io/rhel8.5: {}
          f:os.template.kubevirt.io/rhel8.6: {}
          f:os.template.kubevirt.io/rhel8.7: {}
          f:os.template.kubevirt.io/rhel8.8: {}
          f:os.template.kubevirt.io/rhel8.9: {}
          f:os.template.kubevirt.io/rhel8.10: {}
          f:template.kubevirt.io/architecture: {}
          f:template.kubevirt.io/type: {}
          f:template.kubevirt.io/version: {}
          f:workload.template.kubevirt.io/desktop: {}
      f:objects: {}
      f:parameters: {}
    manager: manager
    operation: Update
    time: "2025-10-29T11:54:05Z"
  name: rhel8-desktop-tiny
  namespace: openshift
  resourceVersion: "2146282"
  uid: 2393bad9-11b1-4048-9183-9f7b3812d0e6
objects:
- apiVersion: kubevirt.io/v1
  kind: VirtualMachine
  metadata:
    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
          }
        ]
    labels:
      app: ${NAME}
      vm.kubevirt.io/template: rhel8-desktop-tiny
      vm.kubevirt.io/template.revision: "1"
      vm.kubevirt.io/template.version: v0.34.0
    name: ${NAME}
  spec:
    dataVolumeTemplates:
    - apiVersion: cdi.kubevirt.io/v1beta1
      kind: DataVolume
      metadata:
        name: ${NAME}
      spec:
        sourceRef:
          kind: DataSource
          name: ${DATA_SOURCE_NAME}
          namespace: ${DATA_SOURCE_NAMESPACE}
        storage:
          resources:
            requests:
              storage: 30Gi
    runStrategy: Halted
    template:
      metadata:
        annotations:
          vm.kubevirt.io/flavor: tiny
          vm.kubevirt.io/os: rhel8
          vm.kubevirt.io/workload: desktop
        labels:
          kubevirt.io/domain: ${NAME}
          kubevirt.io/size: tiny
      spec:
        architecture: amd64
        domain:
          cpu:
            cores: 1
            sockets: 1
            threads: 1
          devices:
            disks:
            - disk:
                bus: virtio
              name: rootdisk
            - disk:
                bus: virtio
              name: cloudinitdisk
            inputs:
            - bus: virtio
              name: tablet
              type: tablet
            interfaces:
            - masquerade: {}
              model: virtio
              name: default
            rng: {}
          memory:
            guest: 1.5Gi
        networks:
        - name: default
          pod: {}
        terminationGracePeriodSeconds: 180
        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
- description: Name of the DataSource to clone
  name: DATA_SOURCE_NAME
  value: rhel8
- description: Namespace of the DataSource
  name: DATA_SOURCE_NAMESPACE
  value: openshift-virtualization-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
