1
1
Fork 1
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:
oddlama 2023-12-18 00:32:20 +01:00
parent b4c7fbd0e8
commit 8f28273b65
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
6 changed files with 141 additions and 132 deletions

View file

@ -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;