Create a VM Pool

Deploy a VM pool

A VM pool is a set of pre-provisioned KubeVirt VMs. Idle VMs are allocated on SSH connection, destroyed on disconnect, and automatically replaced to maintain replica count.

Deploy

kubectl apply -f https://github.com/Azure/blip/releases/latest/download/pool.yaml

Pin a version by replacing latest/download with e.g. download/v0.1.0.

Kustomize

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - https://github.com/Azure/blip/releases/latest/download/pool.yaml
patches:
  - target:
      kind: VirtualMachinePool
      name: blip
    patch: |
      - op: replace
        path: /spec/replicas
        value: 10

Customization

curl -fsSLO https://github.com/Azure/blip/releases/latest/download/pool.yaml

CPU and memory

domain:
  cpu:
    cores: 4
  memory:
    guest: 8Gi
  resources:
    requests:
      memory: 2Gi
      cpu: "1"

Base image

The root disk is served as a containerDisk — a regular container image containing the VM filesystem. No PVCs or CDI are required.

volumes:
  - containerDisk:
      image: quay.io/containerdisks/fedora:40
    name: rootdisk

The image must be cloud-init-compatible with sshd installed.

Next steps