1
1
Fork 1
mirror of https://github.com/oddlama/nixos-extra-modules.git synced 2025-10-11 06:10:39 +02:00

feat: upstream node generation

This commit is contained in:
Patrick 2025-02-06 21:14:42 +01:00
parent f1a3f0303b
commit 93b08971cf
No known key found for this signature in database
GPG key ID: 451F95EFB8BECD0F
9 changed files with 268 additions and 48 deletions

View file

@ -1,17 +1,20 @@
guestName: guestCfg: {
guestName: guestCfg:
{
config,
inputs,
lib,
pkgs,
extraModules,
...
}: let
inherit
(lib)
}:
let
inherit (lib)
flip
mapAttrs'
nameValuePair
;
in {
in
{
inherit (guestCfg.container) macvlans;
ephemeral = true;
privateNetwork = true;
@ -21,10 +24,10 @@ in {
];
bindMounts = flip mapAttrs' guestCfg.zfs (
_: zfsCfg:
nameValuePair zfsCfg.guestMountpoint {
hostPath = zfsCfg.hostMountpoint;
isReadOnly = false;
}
nameValuePair zfsCfg.guestMountpoint {
hostPath = zfsCfg.hostMountpoint;
isReadOnly = false;
}
);
nixosConfiguration = (import "${inputs.nixpkgs}/nixos/lib/eval-config.nix") {
specialArgs = guestCfg.extraSpecialArgs;
@ -55,16 +58,17 @@ in {
# to the state fs).
fileSystems = flip mapAttrs' guestCfg.zfs (
_: zfsCfg:
nameValuePair zfsCfg.guestMountpoint {
neededForBoot = true;
fsType = "none";
device = zfsCfg.guestMountpoint;
options = ["bind"];
}
nameValuePair zfsCfg.guestMountpoint {
neededForBoot = true;
fsType = "none";
device = zfsCfg.guestMountpoint;
options = [ "bind" ];
}
);
}
(import ./common-guest-config.nix guestName guestCfg)
]
++ guestCfg.modules;
++ guestCfg.modules
++ extraModules;
};
}