Skip to content

Instantly share code, notes, and snippets.

View mhenriks's full-sized avatar

Michael Henriksen mhenriks

  • Red Hat
  • Boston, MA
View GitHub Profile

PCI Topology and Hotplug Port Reservation

KubeVirt virtual machines use the q35 machine type, which relies on PCIe root ports for device attachment. Each device — disk, network interface, controller — occupies one root port. To support hotplug volumes and hotplug interfaces after boot, empty root ports must be reserved at VM creation time because libvirt does not allow adding root ports to a running VM.

The way these ports are reserved determines the PCI bus addresses assigned to all devices. If the reservation strategy changes between reboots, devices can

KubeVirt DataVolumes are Disaster Recovery

KubeVirt DataVolumes are currently not safe to use in a gitops DR flow. Here's why.

VM Definition

cat <<EOF | k create -f -
apiVersion: kubevirt.io/v1
kind: VirtualMachine

Artisanal Populators

The Goal

This document will explain how Volume Populators work under the covers by creating our "artisanal" populator. I say artisanal because we will be populating the PVCs manually ourselves using just kubectl. No controllers!

The PVC will look something like this:

kind: PersistentVolumeClaim