mirror of
https://github.com/oddlama/nix-config.git
synced 2025-10-11 07:10:39 +02:00
feat: allow multiple zfs dataset definitions for container
This commit is contained in:
parent
b4c7fbd0e8
commit
8f28273b65
6 changed files with 141 additions and 132 deletions
|
@ -58,22 +58,26 @@
|
|||
#};
|
||||
|
||||
guests = let
|
||||
mkGuest = mainModule: {
|
||||
mkGuest = guestName: {
|
||||
autostart = true;
|
||||
zfs = {
|
||||
enable = true;
|
||||
zfs."/state" = {
|
||||
pool = "rpool";
|
||||
dataset = "local/guests/${guestName}";
|
||||
};
|
||||
zfs."/persist" = {
|
||||
pool = "rpool";
|
||||
dataset = "safe/guests/${guestName}";
|
||||
};
|
||||
modules = [
|
||||
../../modules
|
||||
./guests/common.nix
|
||||
({config, ...}: {node.secretsDir = ./secrets + "/${config.node.guestName}";})
|
||||
mainModule
|
||||
./guests/${guestName}.nix
|
||||
{node.secretsDir = ./secrets/${guestName};}
|
||||
];
|
||||
};
|
||||
|
||||
mkMicrovm = system: mainModule:
|
||||
mkGuest mainModule
|
||||
mkMicrovm = system: guestName:
|
||||
mkGuest guestName
|
||||
// {
|
||||
backend = "microvm";
|
||||
microvm = {
|
||||
|
@ -82,23 +86,26 @@
|
|||
};
|
||||
};
|
||||
|
||||
mkContainer = mainModule:
|
||||
mkGuest mainModule
|
||||
// {
|
||||
backend = "container";
|
||||
container.macvlan = "lan";
|
||||
};
|
||||
in
|
||||
lib.mkIf (!minimal) {
|
||||
adguardhome = mkContainer ./guests/adguardhome.nix;
|
||||
forgejo = mkContainer ./guests/forgejo.nix;
|
||||
grafana = mkContainer ./guests/grafana.nix;
|
||||
influxdb = mkContainer ./guests/influxdb.nix;
|
||||
kanidm = mkContainer ./guests/kanidm.nix;
|
||||
loki = mkContainer ./guests/loki.nix;
|
||||
paperless = mkContainer ./guests/paperless.nix;
|
||||
vaultwarden = mkContainer ./guests/vaultwarden.nix;
|
||||
mkContainer = guestName: {
|
||||
${guestName} =
|
||||
mkGuest guestName
|
||||
// {
|
||||
backend = "container";
|
||||
container.macvlan = "lan";
|
||||
};
|
||||
};
|
||||
in
|
||||
lib.mkIf (!minimal) (
|
||||
{}
|
||||
// mkContainer "adguardhome"
|
||||
// mkContainer "forgejo"
|
||||
// mkContainer "grafana"
|
||||
// mkContainer "influxdb"
|
||||
// mkContainer "kanidm"
|
||||
// mkContainer "loki"
|
||||
// mkContainer "paperless"
|
||||
// mkContainer "vaultwarden"
|
||||
);
|
||||
|
||||
#ddclient = defineVm;
|
||||
#samba+wsdd = defineVm;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
datasets =
|
||||
defaultZfsDatasets
|
||||
// {
|
||||
"safe/vms" = unmountable;
|
||||
"safe/guests" = unmountable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue