Files
nixfiles/nixos/boxes/colony/vms/default.nix
T
jackos1998 43b5bedb48 nixos/vms: Fix LVM disk helper regression
Adding volume-group support changed the LVM disk helper's argument
meaning, so standard VM disks and the legacy darts calls resolved disk
names as volume groups.

Restore the main volume group for standard disks and map the differently
named darts volumes explicitly.
2026-08-02 00:12:36 +01:00

224 lines
6.3 KiB
Nix

{
imports = [
./estuary
./shill
./whale2
./git
];
nixos.systems.colony.configuration = { lib, pkgs, config, systems, ... }:
let
inherit (lib) mkIf mkMerge optionals;
inherit (lib.my) vm;
installerDisk = {
name = "installer";
backend = {
driver = "file";
#filename = "${systems.installer.configuration.config.my.buildAs.iso}/iso/nixos-installer-devplayer0.iso";
filename = "/persist/home/dev/nixos-installer-devplayer0-b4d0d9a.iso";
#filename = "/persist/home/dev/debian-12.1.0-amd64-netinst.iso";
# filename = "/persist/home/dev/ubuntu-22.04.3-live-server-amd64.iso";
read-only = "on";
};
format.driver = "raw";
frontend = "ide-cd";
frontendOpts = {
bootindex = 1;
};
};
in
{
# Kernel Same-Page Merging to attempt memory usage reduction
hardware.ksm.enable = false;
systemd = {
network = {
links = {
#"10-wan10g" = {
# matchConfig.Path = "pci-0000:2d:00.0";
# linkConfig.Name = "wan10g";
#};
};
netdevs = {
#"25-vm-wan10g" = {
# netdevConfig = {
# Name = "vm-wan10g";
# Kind = "macvtap";
# };
# # TODO: Upstream this missing section
# extraConfig = ''
# [MACVTAP]
# Mode=passthru
# '';
#};
};
networks = {
#"75-wan10g" = {
# matchConfig.Name = "wan10g";
# networkConfig.MACVTAP = "vm-wan10g";
#};
#"75-vm-wan10g" = {
# matchConfig.Name = "vm-wan10g";
# linkConfig.RequiredForOnline = "no";
#};
};
};
services = {
#"vm@estuary" =
#let
# vtapUnit = "sys-subsystem-net-devices-vm\\x2dwan10g.device";
#in
#{
# requires = [ vtapUnit ];
# after = [ vtapUnit ];
#};
};
};
my = {
vms = {
instances = {
estuary = {
uuid = "27796a09-c013-4031-9595-44791d6126b9";
cpu = "host,topoext";
smp = {
cpus = 2;
threads = 2;
};
memory = 3072;
networks = {
# Mellanox ConnectX-2 hackery
#wan = {
# ifname = "vm-wan10g";
# bridge = null;
# tapFD = 100;
# # Real hardware MAC
# mac = "00:02:c9:56:24:6e";
# waitOnline = false;
#};
base = {
waitOnline = "carrier";
mac = "52:54:00:15:1a:53";
};
};
drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
(mkMerge [ (vm.disk "estuary" "esp") { frontendOpts.bootindex = 0; } ])
(vm.disk "estuary" "nix")
(vm.disk "estuary" "persist")
]);
hostDevices = {
net-wan0 = {
index = 0;
hostBDF = if config.my.build.isDevVM then "00:02.0" else "27:00.0";
};
};
};
shill = {
uuid = "fc02d8c8-6f60-4b69-838a-e7aed6ee7617";
cpu = "host,topoext";
smp = {
cpus = 12;
threads = 2;
};
memory = 40960;
networks.vms.mac = "52:54:00:27:3d:5c";
cleanShutdown.timeout = 120;
drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
(mkMerge [ (vm.disk "shill" "esp") { frontendOpts.bootindex = 0; } ])
(vm.disk "shill" "nix")
(vm.disk "shill" "persist")
(vm.lvmDisk "media")
(vm.lvmDisk "minio")
(vm.lvmDisk "nix-cache")
(vm.lvmDisk "jam")
]);
};
whale2 = {
uuid = "6d31b672-1f32-4e2b-a39f-78a5b5e949a0";
cpu = "host,topoext";
smp = {
cpus = 8;
threads = 2;
};
memory = 16384;
networks.vms.mac = "52:54:00:d5:d9:c6";
cleanShutdown.timeout = 120;
drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
(mkMerge [ (vm.disk "whale2" "esp") { frontendOpts.bootindex = 0; } ])
(vm.disk "whale2" "nix")
(vm.disk "whale2" "persist")
(vm.lvmDisk "oci")
]);
};
git = {
uuid = "c0659fdc-3356-4717-a6a1-5f289ef03c4a";
cpu = "host,topoext";
smp = {
cpus = 12;
threads = 2;
};
memory = 40960;
networks.vms.mac = "52:54:00:75:78:a8";
cleanShutdown.timeout = 120;
drives = [
(mkMerge [ (vm.disk "git" "esp") { frontendOpts.bootindex = 0; } ])
(vm.disk "git" "nix")
(vm.disk "git" "persist")
(vm.disk "git" "oci")
(vm.lvmDisk "git")
(vm.lvmDisk "gitea-actions-cache")
];
};
mail = {
uuid = "fd95fe0f-c204-4dd5-b16f-2b808e14a43a";
cpu = "host,topoext";
smp = {
cpus = 3;
threads = 2;
};
memory = 6144;
networks.public = {
bridge = null;
mac = "52:54:00:a8:d1:03";
};
cleanShutdown.timeout = 120;
drives = [
(mkMerge [ (vm.disk "mail" "root") { frontendOpts.bootindex = 0; } ])
(vm.disk "mail" "data")
];
};
darts = {
uuid = "ee3882a9-5616-4fcb-83d7-89eb41a84d28";
cpu = "host,topoext";
smp = {
cpus = 4;
threads = 2;
};
memory = 16384;
networks.public = {
bridge = null;
mac = "52:54:00:a8:29:cd";
};
cleanShutdown.timeout = 120;
drives = [
(mkMerge [ (vm.disk "darts" "root") { frontendOpts.bootindex = 0; } ])
(vm.lvmDisk'' "media" "main" "darts-media")
(vm.lvmDisk'' "ext" "main" "darts-ext")
];
};
};
};
};
};
}