A HyperV VM is a resource instance of the “vm_hyperv” resource_type.
The bom for vm_hyperv comprises its hardware properties such as vCPU, RAM, HDD, SSD and Image. The Operating System image of a vm_hyperv is from the Window Distribution. A vm_hyperv must have at a minimum 1 vCPU, 2GB RAM and 32GB storage (HDD or SSD).
For vCPU and RAM, the maximum values are determined by the capacity availabe on a HyperV devices in the region at the time of the request. For the primary storage, the maximum allowed is the lower of the HypverV device capacity or 2TB. Secondary drives are built on Region’s Ceph cluster.
The vm_hyperv resource_type has a Meta Table that has a vm_hyperv.dns4 text property and vm_hyperv.dns6 text property. These properties are to configure the DNS nameservers on the vm_hyperv e.g. vm_hyperv.dns4 = ‘8.8.8.8, 9.9.9.9’
A vm_hyperv can have one or more vm_hyperv_interfaces. A vm_hyperv_interfaces is connected to a vrf_network_link in its project’s vrf. IPs from subnets in the vrf_network_link can be assigned to the vm_hyperv_interfaces. They will be recorded as vm_hyperv_interfaces.ipv4_address_ids and vm_hyperv_interfaces.ipv6_address_ids. The vm_hyperv_interfaces.gateway can be true for only one vm_hyperv_interfaces of a vm_hyperv. Only IPs from the gateway vm_hyperv_interfaces can be routed to the public internet.