feat: infinitely expansible microvms

This commit is contained in:
Nick 2025-12-09 03:46:57 -06:00
parent a92229390e
commit 4c767d369f
55 changed files with 1089 additions and 1015 deletions

View file

@ -1,50 +1,11 @@
{
config,
flake,
pkgs,
labHelpers,
...
}:
let
inherit (labHelpers) guestPath;
inherit (import ./config { inherit config flake pkgs; }) fireflyVM;
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.services.instances) firefly-iii;
interface0Cfg = firefly-iii.interfaces.interface0;
importList =
let
content = builtins.readDir ./.;
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
in
map (name: ./. + "/${name}") dirContent;
in
{
fireflyNick = fireflyVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh0;
host = interface0Cfg.domain;
mnt = guestPath user0;
owner = email.address2;
};
# fireflyStacie = fireflyVM {
# user = "stacie";
# ip = ipAddress (id1);
# mac = "02:00:00:00:${id1}:${id1}";
# userMac = "02:00:00:00:00:${id1}";
# ssh = fireflyEris.ssh1;
# host = "";
# mnt = guestPath "stacie";
# owner = "";
# };
# fireflyGarnet = fireflyVM {
# user = "garnet";
# ip = ipAddress (id2);
# mac = "02:00:00:00:${id2}:${id2}";
# userMac = "02:00:00:00:00:${id2}";
# ssh = fireflyEris.ssh2;
# mnt = guestPath "garnet";
# host = "";
# owner = "";
# };
imports = importList;
}

View file

@ -0,0 +1,27 @@
{
config,
flake,
pkgs,
...
}:
let
inherit (import ../../helpers.nix) labHelpers;
inherit (labHelpers) guestPath;
inherit (import ../config { inherit config flake pkgs; }) fireflyVM;
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.services.instances) firefly-iii;
interface0Cfg = firefly-iii.interfaces.interface0;
fireflyNick = fireflyVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
host = interface0Cfg.domain;
owner = email.address2;
mnt = guestPath user0;
};
in
fireflyNick