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,57 +1,11 @@
{
flake,
pkgs,
labHelpers,
...
}:
let
inherit (labHelpers) mntPath guestPath;
inherit (import ./config { inherit flake pkgs; }) opencloudVM;
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface0;
interface1Cfg = opencloud.interfaces.interface1;
importList =
let
content = builtins.readDir ./.;
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
in
map (name: ./. + "/${name}") dirContent;
in
{
opencloudNick = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = guestPath user0;
host = interface0Cfg.domain;
};
opencloudProject = opencloudVM {
user = user0;
ip = interface1Cfg.microvm.ip;
mac = interface1Cfg.microvm.mac;
userMac = interface1Cfg.microvm.macUser;
ssh = interface1Cfg.microvm.ssh;
mnt = mntPath;
host = "${interface0Cfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
};
# opencloudStacie = opencloudVM {
# user = "stacie";
# ip = ipAddress id1;
# mac = "02:00:00:00:${id1}:${id1}";
# userMac = "02:00:00:00:00:${id1}";
# ssh = opencloud.ssh1;
# mnt = guestPath "stacie";
# host = "";
# };
# opencloudGarnet = opencloudVM {
# user = "garnet";
# ip = ipAddress id2;
# mac = "02:00:00:00:${id2}:${id2}";
# userMac = "02:00:00:00:00:${id2}";
# ssh = opencloud.ssh2;
# mnt = guestPath "garnet";
# host = "";
# };
imports = importList;
}

View file

@ -0,0 +1,25 @@
{
flake,
pkgs,
...
}:
let
inherit (import ../../helpers.nix) labHelpers;
inherit (labHelpers) mntPath;
inherit (import ../config { inherit flake pkgs; }) opencloudVM;
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface0;
opencloudProject = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = mntPath;
host = "${interface0Cfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
};
in
opencloudProject

View file

@ -0,0 +1,25 @@
{
flake,
pkgs,
...
}:
let
inherit (import ../../helpers.nix) labHelpers;
inherit (labHelpers) guestPath;
inherit (import ../config { inherit flake pkgs; }) opencloudVM;
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) opencloud;
interface0Cfg = opencloud.interfaces.interface0;
opencloudNick = opencloudVM {
user = user0;
ip = interface0Cfg.microvm.ip;
mac = interface0Cfg.microvm.mac;
userMac = interface0Cfg.microvm.macUser;
ssh = interface0Cfg.microvm.ssh;
mnt = guestPath user0;
host = interface0Cfg.domain;
};
in
opencloudNick