mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-26 02:38:30 +02:00
feat: migrate all nixos services from idols to 12kingdoms
This commit is contained in:
67
hosts/12kingdoms-suzu/microvm/mitsuha/default.nix
Normal file
67
hosts/12kingdoms-suzu/microvm/mitsuha/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{mylib, ...}: {
|
||||
imports =
|
||||
(mylib.scanPaths ./.)
|
||||
++ [
|
||||
../../../../modules/nixos/base/ssh.nix
|
||||
../../../../modules/nixos/base/user-group.nix
|
||||
../../../../modules/base.nix
|
||||
];
|
||||
|
||||
microvm = {
|
||||
mem = 1024; # RAM allocation in MB
|
||||
vcpu = 1; # Number of Virtual CPU cores
|
||||
|
||||
interfaces = [
|
||||
{
|
||||
type = "tap";
|
||||
id = "vm-mitsuha"; # should be prefixed with "vm-"
|
||||
mac = "02:00:00:00:00:02"; # Unique MAC address
|
||||
}
|
||||
];
|
||||
|
||||
# Block device images for persistent storage
|
||||
# microvm use tmpfs for root(/), so everything else
|
||||
# is ephemeral and will be lost on reboot.
|
||||
#
|
||||
# you can check this by running `df -Th` & `lsblk` in the VM.
|
||||
volumes = [
|
||||
{
|
||||
mountPoint = "/var";
|
||||
image = "var.img";
|
||||
size = 512;
|
||||
}
|
||||
{
|
||||
mountPoint = "/etc";
|
||||
image = "etc.img";
|
||||
size = 50;
|
||||
}
|
||||
];
|
||||
|
||||
# shares can not be set to `neededForBoot = true;`
|
||||
# so if you try to use a share in boot script(such as system.activationScripts), it will fail!
|
||||
shares = [
|
||||
{
|
||||
# It is highly recommended to share the host's nix-store
|
||||
# with the VMs to prevent building huge images.
|
||||
# a host's /nix/store will be picked up so that no
|
||||
# squashfs/erofs will be built for it.
|
||||
#
|
||||
# by this way, /nix/store is readonly in the VM,
|
||||
# and thus the VM can't run any command that modifies
|
||||
# the store. such as nix build, nix shell, etc...
|
||||
# if you want to run nix commands in the VM, see
|
||||
# https://github.com/astro/microvm.nix/blob/main/doc/src/shares.md#writable-nixstore-overlay
|
||||
tag = "ro-store"; # Unique virtiofs daemon tag
|
||||
proto = "virtiofs"; # virtiofs is faster than 9p
|
||||
source = "/nix/store";
|
||||
mountPoint = "/nix/.ro-store";
|
||||
}
|
||||
];
|
||||
|
||||
hypervisor = "qemu";
|
||||
# Control socket for the Hypervisor so that a MicroVM can be shutdown cleanly
|
||||
socket = "control.socket";
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
}
|
||||
Reference in New Issue
Block a user