storage-refactor #9

Open
jan-leila wants to merge 40 commits from storage-refactor into main
2 changed files with 20 additions and 3 deletions
Showing only changes of commit 0de97fa4a2 - Show all commits

View file

@ -59,6 +59,13 @@ in {
config = lib.mkIf config.storage.impermanence.enable (lib.mkMerge [ config = lib.mkIf config.storage.impermanence.enable (lib.mkMerge [
{ {
assertions = [
{
assertion = config.storage.zfs.enable;
message = "storage.impermanence can not be used without storage.zfs.";
}
];
environment.persistence = environment.persistence =
lib.mapAttrs (datasetName: dataset: { lib.mapAttrs (datasetName: dataset: {
enable = true; enable = true;
@ -77,8 +84,12 @@ in {
}) (lib.filterAttrs (_: fileConfig: fileConfig.enable) dataset.files); }) (lib.filterAttrs (_: fileConfig: fileConfig.enable) dataset.files);
}) })
config.storage.impermanence.datasets; config.storage.impermanence.datasets;
# TODO: need for boot on filesystems
} }
(lib.mkIf config.storage.zfs.enable { (lib.mkIf config.storage.zfs.enable {
# TODO: activationScripts config for private folders
# TODO: rollback post resume
# TODO: fuse userAllowOther
storage.zfs.datasets = storage.zfs.datasets =
lib.mapAttrs ( lib.mapAttrs (
datasetName: dataset: datasetName: dataset:

View file

@ -23,7 +23,7 @@
}; };
"persist/system/var/log" = { "persist/system/var/log" = {
type = "zfs_fs"; type = "zfs_fs";
mountpoint = "/persist/system/var/log"; mountpoint = "/var/log";
options = { options = {
"com.sun:auto-snapshot" = "false"; "com.sun:auto-snapshot" = "false";
}; };
@ -31,7 +31,6 @@
}; };
} }
(util.mkUnless config.storage.impermanence.enable { (util.mkUnless config.storage.impermanence.enable {
# TODO: configure datasets for normal zfs
# TODO: create datasets for systemd.services.<name>.storage.impermanence.datasets # TODO: create datasets for systemd.services.<name>.storage.impermanence.datasets
storage.zfs.datasets = { storage.zfs.datasets = {
"persist/system/root" = { "persist/system/root" = {
@ -48,7 +47,6 @@
}; };
}; };
storage.zfs.datasets = { storage.zfs.datasets = {
# TODO: is there a way that we can link these two folders in configs via storage.impermanence.datasets
"local/system/root" = { "local/system/root" = {
type = "zfs_fs"; type = "zfs_fs";
mountpoint = "/"; mountpoint = "/";
@ -58,6 +56,14 @@
postCreateHook = '' postCreateHook = ''
zfs snapshot rpool/local/system/root@blank zfs snapshot rpool/local/system/root@blank
''; '';
directories = {
"/var/lib/nixos".enable = true;
"/var/lib/systemd/coredump".enable = true;
};
files = {
"/etc/machine-id".enable = true;
};
}; };
}; };