From 736e29d25e1fad53681d4ee7216e6a61644059ee Mon Sep 17 00:00:00 2001
From: astro microvm.aut
[ ]
Declared by:
Whether to enable the microvm.nix host module.
@@ -192,7 +192,7 @@true
Declared by:
Commands to run after creating a tap interface
@@ -210,7 +210,7 @@Declared by:
Enable if all your MicroVMs run with a Hypervisor that sends readiness notification over a VSOCK.
@@ -222,7 +222,7 @@Directory that contains the MicroVMs
@@ -232,7 +232,7 @@"/var/lib/microvms"
Declared by:
Extra command-line switch to pass to virtiofsd.
@@ -242,7 +242,7 @@When to use file handles to reference inodes instead of O_PATH file descriptors @@ -256,7 +256,18 @@
The amounts of threads virtiofsd should spawn. This option also takes the special
+string \
nproc`` which spawns as many threads as the host has cores.
Type: +string or (unsigned integer, meaning >=0)
+Default:
+"`nproc`"
Declared by:
+The MicroVMs that shall be built declaratively with the host NixOS.
@@ -266,7 +277,7 @@{ }
Declared by:
Add this MicroVM to config.microvm.autostart?
@@ -276,7 +287,7 @@A specification of the desired configuration of this MicroVM, @@ -287,7 +298,7 @@
null
Declared by:
Source flake for declarative build
@@ -297,7 +308,7 @@null
Declared by:
This option is only respected when config
is specified.
@@ -308,7 +319,7 @@
pkgs.path
Declared by:
This option is only respected when config
is specified.
@@ -320,7 +331,7 @@
pkgs
Declared by:
Restart this MicroVM’s services if the systemd units are changed, @@ -332,7 +343,7 @@
This option is only respected when config
is specified.
@@ -345,7 +356,7 @@
Source flake to store for later imperative update
@@ -355,7 +366,7 @@0
Declared by:
Extra arguments to pass to cloud-hypervisor.
@@ -194,7 +194,7 @@What CPU to emulate, if any. If different from the host @@ -206,7 +206,7 @@
null
Declared by:
Extra arguments to pass to crosvm.
@@ -216,7 +216,7 @@Declared by:
A Hypervisor’s sandbox directory
@@ -226,7 +226,7 @@Declared by:
Generated Hypervisor declared by config.microvm.hypervisor
"config.microvm.runner.${config.microvm.hypervisor}"
Declared by:
PCI/USB devices that are passed from the host to the MicroVM
@@ -259,7 +259,7 @@Declared by:
Device is either on the pci
or the usb
bus
Declared by:
Identification of the device on its bus
@@ -275,7 +275,7 @@Declared by:
When using the SLiRP user networking (default), this option allows to @@ -304,7 +304,7 @@
Declared by:
Controls the direction in which the ports are mapped:
@@ -324,7 +324,7 @@The IPv4 address on the guest VLAN.
@@ -334,7 +334,7 @@The guest port to be mapped.
@@ -342,7 +342,7 @@The IPv4 address of the host.
@@ -352,7 +352,7 @@The host port to be mapped.
@@ -360,7 +360,7 @@The protocol to forward.
@@ -370,7 +370,7 @@Enable GUI support.
@@ -386,7 +386,7 @@false
Declared by:
Path of vhost-user socket
@@ -396,7 +396,7 @@"$HOSTNAME-gpu.sock"
Declared by:
Whether to enable the microvm.nix guest module at all.
@@ -406,7 +406,7 @@true
Declared by:
Whether to use hugepages as memory backend. @@ -417,7 +417,7 @@
false
Declared by:
Which hypervisor to use for this MicroVM
@@ -428,7 +428,7 @@"qemu"
Declared by:
Path to the initrd file in the initrd package
@@ -438,7 +438,7 @@"${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}"
Declared by:
Network interfaces
@@ -448,7 +448,7 @@[ ]
Declared by:
Attach network interface to host bridge interface for type = “bridge”
@@ -458,7 +458,7 @@Interface name on the host
@@ -466,7 +466,7 @@Declared by:
MAC address of the guest’s network interface
@@ -474,7 +474,7 @@Declared by:
Attach network interface to host interface for type = “macvlan”
@@ -484,7 +484,7 @@The MACVLAN mode to use
@@ -494,7 +494,7 @@Interface type
@@ -502,7 +502,7 @@Declared by:
Kernel package to use for MicroVM runners
@@ -512,7 +512,7 @@Declared by:
Includes boot.kernelParams but doesn’t end up in toplevel, thereby allowing references to toplevel
@@ -520,7 +520,7 @@Declared by:
Amount of RAM in megabytes
@@ -530,7 +530,7 @@512
Declared by:
Commands to run before starting the hypervisor
@@ -540,7 +540,7 @@""
Declared by:
Set a recognizable process name right before executing the Hyperisor.
@@ -550,7 +550,7 @@Declared by:
Extra arguments to pass to qemu.
@@ -560,7 +560,7 @@[ ]
Declared by:
QEMU machine model, eg. microvm
, or q35
Declared by:
Overwrite the default machine model options.
@@ -581,7 +581,7 @@Declared by:
Whether to enable the virtual serial console on qemu.
@@ -591,7 +591,7 @@Generated Hypervisor runner for this NixOS
@@ -599,7 +599,7 @@Declared by:
Shared directory trees
@@ -609,7 +609,7 @@Declared by:
Where to mount the share inside the container
@@ -617,7 +617,7 @@Protocol for this share
@@ -627,7 +627,7 @@"9p"
Declared by:
What security model to use for the shared directory
@@ -637,7 +637,7 @@Socket for communication with virtiofs daemon
@@ -647,7 +647,7 @@null
Declared by:
Path to shared directory tree
@@ -655,7 +655,7 @@Declared by:
Unique virtiofs daemon tag
@@ -663,7 +663,7 @@Declared by:
Hypervisor control socket path
@@ -673,7 +673,7 @@Declared by:
Whether to boot with the storeDisk, that is, unless the host’s /nix/store is a microvm.share.
@@ -683,7 +683,7 @@true
Declared by:
User to switch to when started as root
@@ -693,7 +693,7 @@null
Declared by:
Number of virtual CPU cores
@@ -703,7 +703,7 @@1
Declared by:
Disk images
@@ -713,7 +713,7 @@[ ]
Declared by:
Created image on host automatically before start?
@@ -723,7 +723,7 @@Filesystem for automatic creation and mounting
@@ -733,7 +733,7 @@"ext4"
Declared by:
Path to disk image on the host
@@ -741,7 +741,7 @@Declared by:
Label of the volume, if any. Only applicable if autoCreate is true; otherwise labeling of the volume must be done manually
@@ -751,7 +751,7 @@null
Declared by:
Set extra Filesystem creation parameters
@@ -761,7 +761,7 @@If and where to mount the volume inside the container
@@ -769,7 +769,7 @@Volume size if created automatically
@@ -777,7 +777,7 @@Declared by:
Virtual Machine address; @@ -794,7 +794,7 @@
null
Declared by:
Path to the writable /nix/store overlay.
@@ -813,7 +813,7 @@Declared by:
Extra arguments to pass to cloud-hypervisor.
@@ -493,7 +493,7 @@What CPU to emulate, if any. If different from the host @@ -505,7 +505,7 @@
null
Declared by:
Extra arguments to pass to crosvm.
@@ -515,7 +515,7 @@Declared by:
A Hypervisor’s sandbox directory
@@ -525,7 +525,7 @@Declared by:
Generated Hypervisor declared by config.microvm.hypervisor
"config.microvm.runner.${config.microvm.hypervisor}"
Declared by:
PCI/USB devices that are passed from the host to the MicroVM
@@ -558,7 +558,7 @@Declared by:
Device is either on the pci
or the usb
bus
Declared by:
Identification of the device on its bus
@@ -574,7 +574,7 @@Declared by:
When using the SLiRP user networking (default), this option allows to @@ -603,7 +603,7 @@
Declared by:
Controls the direction in which the ports are mapped:
@@ -623,7 +623,7 @@The IPv4 address on the guest VLAN.
@@ -633,7 +633,7 @@The guest port to be mapped.
@@ -641,7 +641,7 @@The IPv4 address of the host.
@@ -651,7 +651,7 @@The host port to be mapped.
@@ -659,7 +659,7 @@The protocol to forward.
@@ -669,7 +669,7 @@Enable GUI support.
@@ -685,7 +685,7 @@false
Declared by:
Path of vhost-user socket
@@ -695,7 +695,7 @@"$HOSTNAME-gpu.sock"
Declared by:
Whether to enable the microvm.nix guest module at all.
@@ -705,7 +705,7 @@true
Declared by:
Whether to use hugepages as memory backend. @@ -716,7 +716,7 @@
false
Declared by:
Which hypervisor to use for this MicroVM
@@ -727,7 +727,7 @@"qemu"
Declared by:
Path to the initrd file in the initrd package
@@ -737,7 +737,7 @@"${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}"
Declared by:
Network interfaces
@@ -747,7 +747,7 @@[ ]
Declared by:
Attach network interface to host bridge interface for type = “bridge”
@@ -757,7 +757,7 @@Interface name on the host
@@ -765,7 +765,7 @@Declared by:
MAC address of the guest’s network interface
@@ -773,7 +773,7 @@Declared by:
Attach network interface to host interface for type = “macvlan”
@@ -783,7 +783,7 @@The MACVLAN mode to use
@@ -793,7 +793,7 @@Interface type
@@ -801,7 +801,7 @@Declared by:
Kernel package to use for MicroVM runners
@@ -811,7 +811,7 @@Declared by:
Includes boot.kernelParams but doesn’t end up in toplevel, thereby allowing references to toplevel
@@ -819,7 +819,7 @@Declared by:
Amount of RAM in megabytes
@@ -829,7 +829,7 @@512
Declared by:
Commands to run before starting the hypervisor
@@ -839,7 +839,7 @@""
Declared by:
Set a recognizable process name right before executing the Hyperisor.
@@ -849,7 +849,7 @@Declared by:
Extra arguments to pass to qemu.
@@ -859,7 +859,7 @@[ ]
Declared by:
QEMU machine model, eg. microvm
, or q35
Declared by:
Overwrite the default machine model options.
@@ -880,7 +880,7 @@Declared by:
Whether to enable the virtual serial console on qemu.
@@ -890,7 +890,7 @@Generated Hypervisor runner for this NixOS
@@ -898,7 +898,7 @@Declared by:
Shared directory trees
@@ -908,7 +908,7 @@Declared by:
Where to mount the share inside the container
@@ -916,7 +916,7 @@Protocol for this share
@@ -926,7 +926,7 @@"9p"
Declared by:
What security model to use for the shared directory
@@ -936,7 +936,7 @@Socket for communication with virtiofs daemon
@@ -946,7 +946,7 @@null
Declared by:
Path to shared directory tree
@@ -954,7 +954,7 @@Declared by:
Unique virtiofs daemon tag
@@ -962,7 +962,7 @@Declared by:
Hypervisor control socket path
@@ -972,7 +972,7 @@Declared by:
Whether to boot with the storeDisk, that is, unless the host’s /nix/store is a microvm.share.
@@ -982,7 +982,7 @@true
Declared by:
User to switch to when started as root
@@ -992,7 +992,7 @@null
Declared by:
Number of virtual CPU cores
@@ -1002,7 +1002,7 @@1
Declared by:
Disk images
@@ -1012,7 +1012,7 @@[ ]
Declared by:
Created image on host automatically before start?
@@ -1022,7 +1022,7 @@Filesystem for automatic creation and mounting
@@ -1032,7 +1032,7 @@"ext4"
Declared by:
Path to disk image on the host
@@ -1040,7 +1040,7 @@Declared by:
Label of the volume, if any. Only applicable if autoCreate is true; otherwise labeling of the volume must be done manually
@@ -1050,7 +1050,7 @@null
Declared by:
Set extra Filesystem creation parameters
@@ -1060,7 +1060,7 @@If and where to mount the volume inside the container
@@ -1068,7 +1068,7 @@Volume size if created automatically
@@ -1076,7 +1076,7 @@Declared by:
Virtual Machine address; @@ -1093,7 +1093,7 @@
null
Declared by:
Path to the writable /nix/store overlay.
@@ -1112,7 +1112,7 @@Quickly running a MicroVM interactively is great for testing. You get @@ -1407,7 +1407,7 @@
microvms.
[ ]
Declared by:
-- /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix
+- /nix/store/8vdjpb2vj615mz7d4z4zhry8f1yanfj9-source/nixos-modules/host/options.nix
microvm.host.enable
Whether to enable the microvm.nix host module.
@@ -1417,7 +1417,7 @@ microvm.h
true
Declared by:
-- /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix
+- /nix/store/8vdjpb2vj615mz7d4z4zhry8f1yanfj9-source/nixos-modules/host/options.nix
microvm.host.tapScript
Commands to run after creating a tap interface
@@ -1435,7 +1435,7 @@ mic
Declared by:
Enable if all your MicroVMs run with a Hypervisor that sends readiness notification over a VSOCK.
@@ -1447,7 +1447,7 @@Directory that contains the MicroVMs
@@ -1457,7 +1457,7 @@"/var/lib/microvms"
Declared by:
Extra command-line switch to pass to virtiofsd.
@@ -1467,7 +1467,7 @@When to use file handles to reference inodes instead of O_PATH file descriptors @@ -1481,7 +1481,18 @@
The amounts of threads virtiofsd should spawn. This option also takes the special
+string \
nproc`` which spawns as many threads as the host has cores.
Type: +string or (unsigned integer, meaning >=0)
+Default:
+"`nproc`"
Declared by:
+The MicroVMs that shall be built declaratively with the host NixOS.
@@ -1491,7 +1502,7 @@{ }
Declared by:
Add this MicroVM to config.microvm.autostart?
@@ -1501,7 +1512,7 @@A specification of the desired configuration of this MicroVM, @@ -1512,7 +1523,7 @@
null
Declared by:
Source flake for declarative build
@@ -1522,7 +1533,7 @@null
Declared by:
This option is only respected when config
is specified.
@@ -1533,7 +1544,7 @@
pkgs.path
Declared by:
This option is only respected when config
is specified.
@@ -1545,7 +1556,7 @@
pkgs
Declared by:
Restart this MicroVM’s services if the systemd units are changed, @@ -1557,7 +1568,7 @@
This option is only respected when config
is specified.
@@ -1570,7 +1581,7 @@
Source flake to store for later imperative update
@@ -1580,7 +1591,7 @@Provided your NixOS host includes the host nixosModule,
diff --git a/searchindex.js b/searchindex.js
index cf5a5d8f..9ce21251 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search, {"doc_urls":["intro.html#intro","intro.html#compartmentalization","intro.html#the-case-against-containers","intro.html#just-virtual-machines","declaring.html#declaring-nixos-microvms","declaring.html#the-microvm-module","options.html#configuration-options","interfaces.html#network-interfaces","interfaces.html#type--user","interfaces.html#type--tap","interfaces.html#type--macvtap","interfaces.html#type--bridge","shares.html#shares","shares.html#sharing-a-hosts-nixstore","shares.html#writable-nixstore-overlay","cpu-emulation.html#cpu-emulation","cpu-emulation.html#defining-an-emulated-nixos-system","output-options.html#microvm-output-options","output-options.html#configure-microvmhypervisor-use-microvmdeclaredrunner","microvm-options.html#microvmballoonmem","microvm-options.html#microvmcloud-hypervisorextraargs","microvm-options.html#microvmcpu","microvm-options.html#microvmcrosvmextraargs","microvm-options.html#microvmcrosvmpivotroot","microvm-options.html#microvmdeclaredrunner","microvm-options.html#microvmdevices","microvm-options.html#microvmdevicesbus","microvm-options.html#microvmdevicespath","microvm-options.html#microvmforwardports","microvm-options.html#microvmforwardportsfrom","microvm-options.html#microvmforwardportsguestaddress","microvm-options.html#microvmforwardportsguestport","microvm-options.html#microvmforwardportshostaddress","microvm-options.html#microvmforwardportshostport","microvm-options.html#microvmforwardportsproto","microvm-options.html#microvmgraphicsenable","microvm-options.html#microvmgraphicssocket","microvm-options.html#microvmguestenable","microvm-options.html#microvmhugepagemem","microvm-options.html#microvmhypervisor","microvm-options.html#microvminitrdpath","microvm-options.html#microvminterfaces","microvm-options.html#microvminterfacesbridge","microvm-options.html#microvminterfacesid","microvm-options.html#microvminterfacesmac","microvm-options.html#microvminterfacesmacvtaplink","microvm-options.html#microvminterfacesmacvtapmode","microvm-options.html#microvminterfacestype","microvm-options.html#microvmkernel","microvm-options.html#microvmkernelparams","microvm-options.html#microvmmem","microvm-options.html#microvmprestart","microvm-options.html#microvmprettyprocnames","microvm-options.html#microvmqemuextraargs","microvm-options.html#microvmqemumachine","microvm-options.html#microvmqemumachineopts","microvm-options.html#microvmqemuserialconsole","microvm-options.html#microvmrunner","microvm-options.html#microvmshares","microvm-options.html#microvmsharesmountpoint","microvm-options.html#microvmsharesproto","microvm-options.html#microvmsharessecuritymodel","microvm-options.html#microvmsharessocket","microvm-options.html#microvmsharessource","microvm-options.html#microvmsharestag","microvm-options.html#microvmsocket","microvm-options.html#microvmstoreondisk","microvm-options.html#microvmuser","microvm-options.html#microvmvcpu","microvm-options.html#microvmvolumes","microvm-options.html#microvmvolumesautocreate","microvm-options.html#microvmvolumesfstype","microvm-options.html#microvmvolumesimage","microvm-options.html#microvmvolumeslabel","microvm-options.html#microvmvolumesmkfsextraargs","microvm-options.html#microvmvolumesmountpoint","microvm-options.html#microvmvolumessize","microvm-options.html#microvmvsockcid","microvm-options.html#microvmwritablestoreoverlay","packages.html#running-a-microvm-as-a-package","packages.html#immediately-running-a-nixosconfiguration","packages.html#add-a-runner-package-to-your-flake","host.html#preparing-a-nixos-host-for-declarative-microvms","host.html#preparing-a-non-flakes-host","simple-network.html#a-simple-network-setup","simple-network.html#a-bridge-to-link-tap-interfaces","simple-network.html#docker-and-systemd-network","simple-network.html#advanced-improving-performance","advanced-network.html#advanced-network-setup","advanced-network.html#a-bridge-to-link-tap-interfaces","advanced-network.html#provide-internet-access-with-nat","advanced-network.html#port-forwarding","host-systemd.html#systemd-services-on-a-microvm-host","host-systemd.html#install-microvm-nameservice","host-systemd.html#microvm-tap-interfacesservice","host-systemd.html#microvm-macvtap-interfacesservice","host-systemd.html#microvm-pci-devicesservice","host-systemd.html#microvm-virtiofsdservice","host-systemd.html#microvmservice","host-systemd.html#microvmstarget","host-options.html#microvmautostart","host-options.html#microvmhostenable","host-options.html#microvmhosttapscript","host-options.html#microvmhostusenotifysockets","host-options.html#microvmstatedir","host-options.html#microvmvirtiofsdextraargs","host-options.html#microvmvirtiofsdinodefilehandles","host-options.html#microvmvms","host-options.html#microvmvmsautostart","host-options.html#microvmvmsconfig","host-options.html#microvmvmsflake","host-options.html#microvmvmsnixpkgs","host-options.html#microvmvmspkgs","host-options.html#microvmvmsrestartifchanged","host-options.html#microvmvmsspecialargs","host-options.html#microvmvmsupdateflake","declarative.html#declarative-microvms","declarative.html#fully-declarative","declarative.html#declarative-deployment","microvm-command.html#imperative-microvm-management-with-the-microvm-command","microvm-command.html#create-a-microvm","microvm-command.html#enabling-microvm-autostart","microvm-command.html#update-a-microvm","microvm-command.html#list-microvms","microvm-command.html#removing-microvms","ssh-deploy.html#deploying-via-ssh","ssh-deploy.html#microvmdeployrebuild","ssh-deploy.html#microvmdeployinstallonhost","ssh-deploy.html#microvmdeploysshswitch","conventions.html#conventions-between-microvm-packages-and-the-host","conventions.html#generating-custom-operating-system-hypervisor-packages","faq.html#frequently-asked-questions","faq.html#can-i-support-the-development-and-maintenance-of-this-project","faq.html#how-to-centralize-logging-with-journald","faq.html#can-i-build-with-hypervisors-from-the-hosts-nixpkgs-instead-of-the-microvms","faq.html#how-can-i-deploy-imperatively-from-continuous-integration","faq.html#can-i-include-my-hosts--channel-when-building-the-vm","faq.html#how-do-i-let-the-microvm-user-access-block-devices","faq.html#my-virtiofs-shared-sops-nix-runsecrets-disappears-when-the-host-is-updated"],"index":{"documentStore":{"docInfo":{"0":{"body":19,"breadcrumbs":2,"title":1},"1":{"body":64,"breadcrumbs":2,"title":1},"10":{"body":85,"breadcrumbs":6,"title":2},"100":{"body":20,"breadcrumbs":8,"title":1},"101":{"body":13,"breadcrumbs":8,"title":1},"102":{"body":41,"breadcrumbs":8,"title":1},"103":{"body":25,"breadcrumbs":8,"title":1},"104":{"body":11,"breadcrumbs":8,"title":1},"105":{"body":14,"breadcrumbs":8,"title":1},"106":{"body":38,"breadcrumbs":8,"title":1},"107":{"body":15,"breadcrumbs":8,"title":1},"108":{"body":11,"breadcrumbs":8,"title":1},"109":{"body":20,"breadcrumbs":8,"title":1},"11":{"body":26,"breadcrumbs":6,"title":2},"110":{"body":13,"breadcrumbs":8,"title":1},"111":{"body":19,"breadcrumbs":8,"title":1},"112":{"body":32,"breadcrumbs":8,"title":1},"113":{"body":23,"breadcrumbs":8,"title":1},"114":{"body":26,"breadcrumbs":8,"title":1},"115":{"body":15,"breadcrumbs":8,"title":1},"116":{"body":44,"breadcrumbs":4,"title":2},"117":{"body":84,"breadcrumbs":4,"title":2},"118":{"body":53,"breadcrumbs":4,"title":2},"119":{"body":15,"breadcrumbs":8,"title":5},"12":{"body":49,"breadcrumbs":5,"title":1},"120":{"body":21,"breadcrumbs":5,"title":2},"121":{"body":13,"breadcrumbs":6,"title":3},"122":{"body":38,"breadcrumbs":5,"title":2},"123":{"body":41,"breadcrumbs":5,"title":2},"124":{"body":29,"breadcrumbs":5,"title":2},"125":{"body":68,"breadcrumbs":9,"title":3},"126":{"body":54,"breadcrumbs":7,"title":1},"127":{"body":32,"breadcrumbs":7,"title":1},"128":{"body":49,"breadcrumbs":7,"title":1},"129":{"body":105,"breadcrumbs":6,"title":5},"13":{"body":21,"breadcrumbs":7,"title":3},"130":{"body":42,"breadcrumbs":7,"title":6},"131":{"body":0,"breadcrumbs":6,"title":3},"132":{"body":1,"breadcrumbs":7,"title":4},"133":{"body":92,"breadcrumbs":6,"title":3},"134":{"body":18,"breadcrumbs":9,"title":6},"135":{"body":121,"breadcrumbs":7,"title":4},"136":{"body":11,"breadcrumbs":9,"title":6},"137":{"body":23,"breadcrumbs":8,"title":5},"138":{"body":19,"breadcrumbs":11,"title":8},"14":{"body":65,"breadcrumbs":7,"title":3},"15":{"body":14,"breadcrumbs":6,"title":2},"16":{"body":122,"breadcrumbs":8,"title":4},"17":{"body":55,"breadcrumbs":7,"title":3},"18":{"body":26,"breadcrumbs":8,"title":4},"19":{"body":30,"breadcrumbs":6,"title":1},"2":{"body":65,"breadcrumbs":4,"title":3},"20":{"body":13,"breadcrumbs":7,"title":2},"21":{"body":19,"breadcrumbs":6,"title":1},"22":{"body":12,"breadcrumbs":6,"title":1},"23":{"body":12,"breadcrumbs":6,"title":1},"24":{"body":12,"breadcrumbs":6,"title":1},"25":{"body":27,"breadcrumbs":6,"title":1},"26":{"body":12,"breadcrumbs":6,"title":1},"27":{"body":9,"breadcrumbs":6,"title":1},"28":{"body":67,"breadcrumbs":6,"title":1},"29":{"body":32,"breadcrumbs":6,"title":1},"3":{"body":39,"breadcrumbs":3,"title":2},"30":{"body":11,"breadcrumbs":6,"title":1},"31":{"body":17,"breadcrumbs":6,"title":1},"32":{"body":10,"breadcrumbs":6,"title":1},"33":{"body":17,"breadcrumbs":6,"title":1},"34":{"body":12,"breadcrumbs":6,"title":1},"35":{"body":30,"breadcrumbs":6,"title":1},"36":{"body":13,"breadcrumbs":6,"title":1},"37":{"body":13,"breadcrumbs":6,"title":1},"38":{"body":18,"breadcrumbs":6,"title":1},"39":{"body":27,"breadcrumbs":6,"title":1},"4":{"body":15,"breadcrumbs":5,"title":3},"40":{"body":13,"breadcrumbs":6,"title":1},"41":{"body":10,"breadcrumbs":6,"title":1},"42":{"body":17,"breadcrumbs":6,"title":1},"43":{"body":9,"breadcrumbs":6,"title":1},"44":{"body":11,"breadcrumbs":6,"title":1},"45":{"body":16,"breadcrumbs":6,"title":1},"46":{"body":17,"breadcrumbs":6,"title":1},"47":{"body":12,"breadcrumbs":6,"title":1},"48":{"body":13,"breadcrumbs":6,"title":1},"49":{"body":17,"breadcrumbs":6,"title":1},"5":{"body":60,"breadcrumbs":4,"title":2},"50":{"body":12,"breadcrumbs":6,"title":1},"51":{"body":14,"breadcrumbs":6,"title":1},"52":{"body":16,"breadcrumbs":6,"title":1},"53":{"body":12,"breadcrumbs":6,"title":1},"54":{"body":24,"breadcrumbs":6,"title":1},"55":{"body":16,"breadcrumbs":6,"title":1},"56":{"body":14,"breadcrumbs":6,"title":1},"57":{"body":12,"breadcrumbs":6,"title":1},"58":{"body":11,"breadcrumbs":6,"title":1},"59":{"body":10,"breadcrumbs":6,"title":1},"6":{"body":95,"breadcrumbs":6,"title":2},"60":{"body":12,"breadcrumbs":6,"title":1},"61":{"body":18,"breadcrumbs":6,"title":1},"62":{"body":13,"breadcrumbs":6,"title":1},"63":{"body":12,"breadcrumbs":6,"title":1},"64":{"body":10,"breadcrumbs":6,"title":1},"65":{"body":13,"breadcrumbs":6,"title":1},"66":{"body":15,"breadcrumbs":6,"title":1},"67":{"body":13,"breadcrumbs":6,"title":1},"68":{"body":13,"breadcrumbs":6,"title":1},"69":{"body":10,"breadcrumbs":6,"title":1},"7":{"body":29,"breadcrumbs":6,"title":2},"70":{"body":14,"breadcrumbs":6,"title":1},"71":{"body":12,"breadcrumbs":6,"title":1},"72":{"body":10,"breadcrumbs":6,"title":1},"73":{"body":19,"breadcrumbs":6,"title":1},"74":{"body":13,"breadcrumbs":6,"title":1},"75":{"body":11,"breadcrumbs":6,"title":1},"76":{"body":11,"breadcrumbs":6,"title":1},"77":{"body":24,"breadcrumbs":6,"title":1},"78":{"body":51,"breadcrumbs":6,"title":1},"79":{"body":26,"breadcrumbs":6,"title":3},"8":{"body":26,"breadcrumbs":6,"title":2},"80":{"body":9,"breadcrumbs":6,"title":3},"81":{"body":18,"breadcrumbs":7,"title":4},"82":{"body":95,"breadcrumbs":9,"title":5},"83":{"body":16,"breadcrumbs":8,"title":4},"84":{"body":37,"breadcrumbs":10,"title":3},"85":{"body":110,"breadcrumbs":11,"title":4},"86":{"body":41,"breadcrumbs":10,"title":3},"87":{"body":41,"breadcrumbs":10,"title":3},"88":{"body":30,"breadcrumbs":10,"title":3},"89":{"body":103,"breadcrumbs":11,"title":4},"9":{"body":55,"breadcrumbs":6,"title":2},"90":{"body":53,"breadcrumbs":11,"title":4},"91":{"body":48,"breadcrumbs":9,"title":2},"92":{"body":13,"breadcrumbs":11,"title":4},"93":{"body":39,"breadcrumbs":10,"title":3},"94":{"body":8,"breadcrumbs":10,"title":3},"95":{"body":8,"breadcrumbs":10,"title":3},"96":{"body":5,"breadcrumbs":10,"title":3},"97":{"body":9,"breadcrumbs":9,"title":2},"98":{"body":8,"breadcrumbs":8,"title":1},"99":{"body":5,"breadcrumbs":8,"title":1}},"docs":{"0":{"body":"microvm.nix is a Flake to run lightweight NixOS virtual machines on NixOS. Starting with the reasons why for the remainder of this chapter, this handbook guides you through the provisioning of MicroVMs on your NixOS machine.","breadcrumbs":"Intro » Intro","id":"0","title":"Intro"},"1":{"body":"NixOS makes running services a breeze. Being able to quickly rollback configuration is a life-saver. Not so much however on systems that are shared by multiple services where maintenance of one affects others. Increase stability by partitioning services into virtual NixOS systems that can be updated individually. microvm.nix can isolate your /nix/store into exactly what is required for the guest's NixOS: the root filesystem is a read-only erofs/squashfs file-systems that include only the binaries of your configuration. Of course, that holds only true until you mount the host's /nix/store as a share for faster build times, or mount the store with a writable overlay for Nix builds inside the VM.","breadcrumbs":"Intro » Compartmentalization","id":"1","title":"Compartmentalization"},"10":{"body":"MACVTAP interfaces attach to a host's physical network interface, joining the same Ethernet segment with a separate MAC address. Before running a MicroVM interactively from a package, do the following steps manually: # Parent interface:\nLINK=eth0\n# MACVTAP interface, as specified under microvm.interfaces.*.id:\nID=microvm1\n# Create the interface\nsudo ip l add link $LINK name $ID type macvtap mode bridge\n# Obtain the interface index number\nIFINDEX=$(cat /sys/class/net/$ID/ifindex)\n# Grant yourself permission\nsudo chown $USER /dev/tap$IFINDEX When running MicroVMs through the host module, the macvtap network interfaces are created through a systemd service dependency. Per interface with type = \"macvtap\", a link attribute with the parent interface, and mode attribute for the MACVTAP filtering mode must be specified.","breadcrumbs":"Declaring MicroVMs » Network interfaces » type = \"macvtap\"","id":"10","title":"type = \"macvtap\""},"100":{"body":"MicroVMs to start by default. This includes declarative config.microvm.vms as well as MicroVMs that are managed through the microvm command. Type: list of string Default: [ ] Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.autostart","id":"100","title":"microvm.autostart"},"101":{"body":"Whether to enable the microvm.nix host module. Type: boolean Default: true Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.host.enable","id":"101","title":"microvm.host.enable"},"102":{"body":"Commands to run after creating a tap interface Defaults to bring the interface up. If you do not want the interface to be automatically created at all, just set systemd.services.\"microvm-tap-interfaces@%i.service\".enable = false Type: strings concatenated with “\\n” Example: '' # Attach tap interface to bridge br0, and set it up ''${pkgs.iproute2}/bin/ip link set $id master br0 up\n'' Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.host.tapScript","id":"102","title":"microvm.host.tapScript"},"103":{"body":"Enable if all your MicroVMs run with a Hypervisor that sends readiness notification over a VSOCK. If one of your MicroVMs doesn’t do this, its systemd service will not start up successfully. Type: boolean Default: false Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.host.useNotifySockets","id":"103","title":"microvm.host.useNotifySockets"},"104":{"body":"Directory that contains the MicroVMs Type: path Default: \"/var/lib/microvms\" Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.stateDir","id":"104","title":"microvm.stateDir"},"105":{"body":"Extra command-line switch to pass to virtiofsd. Type: list of string Default: [ ] Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.virtiofsd.extraArgs","id":"105","title":"microvm.virtiofsd.extraArgs"},"106":{"body":"When to use file handles to reference inodes instead of O_PATH file descriptors (never, prefer, mandatory) Allows you to overwrite default behavior in case you hit “too many open files” on eg. ZFS. https://gitlab.com/virtio-fs/virtiofsd/-/issues/121 Type: null or one of “never”, “prefer”, “mandatory” Default: null Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.virtiofsd.inodeFileHandles","id":"106","title":"microvm.virtiofsd.inodeFileHandles"},"107":{"body":"The MicroVMs that shall be built declaratively with the host NixOS. Type: attribute set of (submodule) Default: { } Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.vms","id":"107","title":"microvm.vms"},"108":{"body":"Add this MicroVM to config.microvm.autostart? Type: boolean Default: true Declared by: /nix/store/n6n856yah6frs22scpc98g36lv16vn6p-source/nixos-modules/host/options.nix","breadcrumbs":"Preparing a host for declarative MicroVMs » Host options reference » microvm.vms.