Files
kubernetes/vm-windows-demo/virtual-machine.yaml

79 lines
2.3 KiB
YAML

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-demo
namespace: k8s-vm-windows-demo
spec:
runStrategy: Manual # la arrancas tú con "virtctl start windows-demo"
template:
metadata:
labels:
kubevirt.io/domain: windows-demo
spec:
# --- REDES ---
# NIC #1 (admin): pod network (Flannel) con NAT (masquerade). No necesita NAD.
# NIC #2 (servicios): tu NAD Multus "default/br-srv"
networks:
- name: admin
pod: {}
- name: servicios
multus:
networkName: default/br-srv
domain:
machine:
type: q35
cpu:
cores: 2
resources:
requests:
memory: 4Gi
devices:
# Interfaces de red
interfaces:
# Para que Windows tenga red "out of the box" en la NIC de admin,
# ponemos e1000e. (Luego puedes cambiar a virtio para rendimiento)
- name: admin
masquerade: {}
model: e1000e
# En servicios dejamos virtio (requerirá instalar los drivers VirtIO)
- name: servicios
bridge: {}
model: virtio
# Discos
disks:
# 1) ISO de Windows como CD-ROM y primer boot
- name: cdromiso
cdrom:
bus: sata
readonly: true
bootOrder: 1
# 2) Drivers VirtIO para Windows como CD-ROM
- name: virtiocontainerdisk
cdrom:
bus: sata
readonly: true
# 3) Disco del sistema (virtio) como segundo boot
- name: harddrive
disk:
bus: virtio
bootOrder: 2
volumes:
- name: cdromiso
dataVolume:
name: windows-iso
- name: harddrive
persistentVolumeClaim:
claimName: winhd
- name: virtiocontainerdisk
# ISO de drivers VirtIO empaquetada como containerDisk
# (si lo prefieres, puedes servir un virtio-win.iso tuyo desde el isoserver)
containerDisk:
image: kubevirt/virtio-container-disk
# alternativa habitual:
# image: quay.io/kubevirt/virtio-container-disk