Skip to content

YAML Configuration Schema Reference

ReferenceYAML SchemaAll Components

All PiVirt components use declarative YAML configuration files. This document provides the authoritative schema reference for each daemon and CLI tool.

Declarative Resource Manifests (pivirtctl apply)

Section titled “Declarative Resource Manifests (pivirtctl apply)”

In addition to daemon configuration files, PiVirt uses Kubernetes-style declarative manifests (apiVersion: pivirt.hu/v1) to manage host and cluster virtualization infrastructure objects:

  • VirtualMachine: CPU, memory, virtual disks, network interfaces, firmware (UEFI/TPM), and cloud-init user-data.
  • StoragePool: Directory, ZFS, Btrfs, LVM, and NFS shared storage mounts.
  • VirtualDisk: Standalone disk images and VM-attached volumes.
  • Network & OverlayNetwork: Linux bridges, VLAN filtering, and OVS VXLAN/Geneve tunnel overlays.
  • ExternalIP / IPPool: Public IP bindings, NAT routing, and port-forwarding rules.
  • Snapshot: VM disk and RAM point-in-time state snapshots.

Select a component tab below to inspect its complete YAML specification:

The hypervisor daemon configuration file controls QEMU runtime parameters, listening endpoints, default storage pools, and network bridge bindings:

/etc/pivirtd/config.yaml
server:
grpc_addr: "0.0.0.0:9001"
http_addr: "0.0.0.0:9002"
tls:
cert_file: "/etc/pivirtd/tls/server.crt"
key_file: "/etc/pivirtd/tls/server.key"
ca_file: "/etc/pivirtd/tls/ca.crt"
hypervisor:
type: "qemu"
default_machine_type: "pc-q35-8.0"
cpu_model: "host-passthrough"
storage:
default_pool: "default"
pools: []
network:
default_bridge: "virbr0"
bridges: []
logging:
level: "info"
format: "json"
output: "journald"
metrics:
enabled: true
path: "/metrics"