storage-refactor #9

Open
jan-leila wants to merge 40 commits from storage-refactor into main
Showing only changes of commit 318a0a9748 - Show all commits

View file

@ -399,79 +399,75 @@ in {
};
};
}
(lib.mkIf config.host.impermanence.enable {
boot.initrd.postResumeCommands = lib.mkAfter (
lib.strings.concatLines (builtins.map (user: "zfs rollback -r rpool/local/home/${user.name}@blank")
normalUsers)
);
(lib.mkIf config.storage.impermanence.enable (lib.mkMerge [
(lib.mkIf config.storage.zfs.enable {
storage.zfs.datasets."persist/system/sops" = {
type = "zfs_fs";
mount = {
enable = true;
mountPoint = SOPS_AGE_KEY_DIRECTORY;
};
atime = "off";
relatime = "off";
};
})
]))
# (lib.mkIf config.host.impermanence.enable {
# boot.initrd.postResumeCommands = lib.mkAfter (
# lib.strings.concatLines (builtins.map (user: "zfs rollback -r rpool/local/home/${user.name}@blank")
# normalUsers)
# );
systemd = {
tmpfiles.rules =
builtins.map (
user: "d /persist/home/${user.name} 700 ${user.name} ${user.name} -"
)
normalUsers;
};
# systemd = {
# tmpfiles.rules =
# builtins.map (
# user: "d /persist/home/${user.name} 700 ${user.name} ${user.name} -"
# )
# normalUsers;
# };
fileSystems = lib.mkMerge [
{
${SOPS_AGE_KEY_DIRECTORY}.neededForBoot = true;
}
(
builtins.listToAttrs (
builtins.map (user:
lib.attrsets.nameValuePair "/persist/home/${user.name}" {
neededForBoot = true;
})
normalUsers
)
)
(
builtins.listToAttrs (
builtins.map (user:
lib.attrsets.nameValuePair "/home/${user.name}" {
neededForBoot = true;
})
normalUsers
)
)
];
# fileSystems = lib.mkMerge [
# (
# builtins.listToAttrs (
# builtins.map (user:
# lib.attrsets.nameValuePair "/persist/home/${user.name}" {
# neededForBoot = true;
# })
# normalUsers
# )
# )
# (
# builtins.listToAttrs (
# builtins.map (user:
# lib.attrsets.nameValuePair "/home/${user.name}" {
# neededForBoot = true;
# })
# normalUsers
# )
# )
# ];
host.storage.pool.extraDatasets = lib.mkMerge (
[
{
# sops age key needs to be available to pre persist for user generation
"local/system/sops" = {
type = "zfs_fs";
mountpoint = SOPS_AGE_KEY_DIRECTORY;
options = {
atime = "off";
relatime = "off";
canmount = "on";
};
};
}
]
++ (
builtins.map (user: {
"local/home/${user.name}" = {
type = "zfs_fs";
mountpoint = "/home/${user.name}";
options = {
canmount = "on";
};
postCreateHook = ''
zfs snapshot rpool/local/home/${user.name}@blank
'';
};
"persist/home/${user.name}" = {
type = "zfs_fs";
mountpoint = "/persist/home/${user.name}";
};
})
normalUsers
)
);
})
# host.storage.pool.extraDatasets = lib.mkMerge (
# (
# builtins.map (user: {
# "local/home/${user.name}" = {
# type = "zfs_fs";
# mountpoint = "/home/${user.name}";
# options = {
# canmount = "on";
# };
# postCreateHook = ''
# zfs snapshot rpool/local/home/${user.name}@blank
# '';
# };
# "persist/home/${user.name}" = {
# type = "zfs_fs";
# mountpoint = "/persist/home/${user.name}";
# };
# })
# normalUsers
# )
# );
# })
];
}