version: 1
kind: platform-infra-hyperv-vms
metadata:
  owner: unidesk
  specRef: project-management/PJ2026-01/specs/PJ2026-01060314-hyperv-ubuntu-vm.md
defaults:
  targetId: D601-VM
targets:
  D601-VM:
    enabled: true
    host:
      route: D601-WIN:win/c/Users/liang
      computerName: DESKTOP-1MHOD9I
      stateDir: C:\Users\liang\AppData\Local\UniDesk\hyperv-vm\D601-VM
      vmRoot: F:\UniDesk\VMs\D601-VM
      minimumFreeBytesBeforeInstall: 280000000000
    vm:
      name: D601-VM
      generation: 2
      processorCount: 24
      dynamicMemoryEnabled: true
      memoryStartupBytes: 34359738368
      memoryMinimumBytes: 17179869184
      memoryMaximumBytes: 84825604096
      memoryBufferPercent: 20
      hostReservedMemoryBytes: 17179869184
      diskBytes: 274877906944
      automaticStartAction: StartIfRunning
      automaticStopAction: Save
      automaticStartDelaySeconds: 30
    image:
      fileName: noble-server-cloudimg-amd64.img
      format: qcow2
      sha256: ffe6203da54deeb6db5d2a98a83f9ec8e55f149d3f7ba622e1abe5fa966ee3d6
      sources:
        - id: china-tuna
          region: china
          url: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/noble/current/noble-server-cloudimg-amd64.img
        - id: canonical
          region: global
          url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
      conversion:
        mode: windows-private-qemu-img
        installer:
          fileName: qemu-w64-setup-20260501.exe
          url: https://qemu.weilnetz.de/w64/qemu-w64-setup-20260501.exe
          sha512: 3d6b996bb904666f3b7ff62bed233b2d21dffe96f512af0a7151cfcc828bc5c8f9b62623cf2a9d363a3ae48111761f4630cce776eacb9b70d83e61e6ae50de47
        installDir: C:\Program Files\qemu
        binary: C:\Program Files\qemu\qemu-img.exe
        outputFormat: vhdx
        runtimeDependency: false
    network:
      switchName: UniDesk-D601-VM-NAT
      natName: UniDesk-D601-VM-NAT
      prefix: 172.30.60.0/24
      gateway: 172.30.60.1
      address: 172.30.60.10
      prefixLength: 24
      dns:
        - 223.5.5.5
        - 1.1.1.1
    ubuntu:
      hostname: d601-vm
      user: ubuntu
      timezone: Asia/Shanghai
      locale: en_US.UTF-8
      aptMirror: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
    docker:
      packages:
        - docker.io
        - docker-compose-v2
      registryMirrors:
        - https://docker.m.daocloud.io
    k3s:
      management:
        mode: standalone
        configRef: config/platform-infra/k3s-clusters.yaml#targets.d601.k3s
      version: v1.36.2+k3s1
      installMirror: cn
      binaryUrl: https://github.com/k3s-io/k3s/releases/download/v1.36.2%2Bk3s1/k3s
      binarySha256: 65a55ec56c24eab44383086166ec620a491952b7e23941a49ddca6e8a4c4b4de
      installerUrl: https://get.k3s.io
      nodeName: d601-vm
      maxPods: 500
    provider:
      id: D601-VM
      name: D601-VM
      masterServer: http://152.53.229.148/
      root: /home/ubuntu/unidesk-provider
      stateRoot: /home/ubuntu/.unidesk
      composeProject: unidesk-d601-vm
      containerName: unidesk-provider-gateway-d601-vm
      image: unidesk_provider-gateway:d601-vm
      egressProxyPort: 18789
      systemdUnit: unidesk-provider-gateway-D601-VM.service
    verification:
      probeTimeoutSeconds: 30
      repairReadyTimeoutSeconds: 30
      repairRetryIntervalSeconds: 2
    status:
      heartbeatSeconds: 5
      downloadTimeoutSeconds: 3600
      cloudInitTimeoutSeconds: 1800
      sshTimeoutSeconds: 1200
      logMaxBytes: 10485760
      logBackups: 5
