---
apiVersion: template.openshift.io/v1
kind: Template
metadata:
  annotations:
    defaults.template.kubevirt.io/disk: rootdisk
    defaults.template.kubevirt.io/network: default
    description: Template for Microsoft Windows 2025 VM. A PVC with the Windows disk
      image must be available.
    iconClass: icon-windows
    name.os.template.kubevirt.io/win2k25: Microsoft Windows Server 2025
    openshift.io/display-name: Microsoft Windows Server 2025 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,windows
    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
    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:07Z"
  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/large: "true"
    os.template.kubevirt.io/win2k25: "true"
    template.kubevirt.io/architecture: amd64
    template.kubevirt.io/type: base
    template.kubevirt.io/version: v0.34.0
    workload.template.kubevirt.io/server: "true"
  managedFields:
  - apiVersion: template.openshift.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:defaults.template.kubevirt.io/disk: {}
          f:defaults.template.kubevirt.io/network: {}
          f:description: {}
          f:iconClass: {}
          f:name.os.template.kubevirt.io/win2k25: {}
          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/editable: {}
          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/large: {}
          f:os.template.kubevirt.io/win2k25: {}
          f:template.kubevirt.io/architecture: {}
          f:template.kubevirt.io/type: {}
          f:template.kubevirt.io/version: {}
          f:workload.template.kubevirt.io/server: {}
      f:objects: {}
      f:parameters: {}
    manager: manager
    operation: Update
    time: "2025-10-29T11:54:07Z"
  name: windows2k25-server-large
  namespace: openshift
  resourceVersion: "2146414"
  uid: a4f9cf05-1e13-4627-926f-e9c7baa34a57
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": 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"]
          }
        ]
    labels:
      app: ${NAME}
      vm.kubevirt.io/template: windows2k25-server-large
      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: 64Gi
    runStrategy: Halted
    template:
      metadata:
        annotations:
          vm.kubevirt.io/flavor: large
          vm.kubevirt.io/os: windows2k25
          vm.kubevirt.io/workload: server
        labels:
          kubevirt.io/domain: ${NAME}
          kubevirt.io/size: large
      spec:
        architecture: amd64
        domain:
          clock:
            timer:
              hpet:
                present: false
              hyperv: {}
              pit:
                tickPolicy: delay
              rtc:
                tickPolicy: catchup
            utc: {}
          cpu:
            cores: 1
            sockets: 2
            threads: 1
          devices:
            disks:
            - disk:
                bus: sata
              name: rootdisk
            inputs:
            - bus: usb
              name: tablet
              type: tablet
            interfaces:
            - masquerade: {}
              model: e1000e
              name: default
            tpm:
              persistent: true
          features:
            acpi: {}
            apic: {}
            hyperv:
              frequencies: {}
              ipi: {}
              reenlightenment: {}
              relaxed: {}
              reset: {}
              runtime: {}
              spinlocks:
                spinlocks: 8191
              synic: {}
              synictimer:
                direct: {}
              tlbflush: {}
              vapic: {}
              vpindex: {}
            smm: {}
          firmware:
            bootloader:
              efi:
                persistent: true
                secureBoot: true
          memory:
            guest: 8Gi
        networks:
        - name: default
          pod: {}
        terminationGracePeriodSeconds: 3600
        volumes:
        - dataVolume:
            name: ${NAME}
          name: rootdisk
parameters:
- description: VM name
  from: windows2025-[a-z0-9]{6}
  generate: expression
  name: NAME
- description: Name of the DataSource to clone
  name: DATA_SOURCE_NAME
  value: win2k25
- description: Namespace of the DataSource
  name: DATA_SOURCE_NAMESPACE
  value: openshift-virtualization-os-images
