moved disko needed configuration to disko.nix
This commit is contained in:
parent
7979b4ed17
commit
a68f81cf3b
2 changed files with 39 additions and 29 deletions
|
@ -20,6 +20,8 @@
|
||||||
disk: lib.attrsets.nameValuePair (hashDisk disk) disk
|
disk: lib.attrsets.nameValuePair (hashDisk disk) disk
|
||||||
)
|
)
|
||||||
config.host.storage.pool.cache;
|
config.host.storage.pool.cache;
|
||||||
|
|
||||||
|
datasets = config.host.storage.pool.datasets // config.host.storage.pool.extraDatasets;
|
||||||
in {
|
in {
|
||||||
options.host.storage = {
|
options.host.storage = {
|
||||||
enable = lib.mkEnableOption "are we going create zfs disks with disko on this device";
|
enable = lib.mkEnableOption "are we going create zfs disks with disko on this device";
|
||||||
|
@ -63,6 +65,39 @@ in {
|
||||||
description = "list of drives that are going to be used as cache";
|
description = "list of drives that are going to be used as cache";
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
|
# Default datasets that are needed to make a functioning system
|
||||||
|
datasets = lib.mkOption {
|
||||||
|
type = lib.types.attrsOf (inputs.disko.lib.subType {
|
||||||
|
types = {inherit (inputs.disko.lib.types) zfs_fs zfs_volume;};
|
||||||
|
});
|
||||||
|
default = {
|
||||||
|
"local" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
options.canmount = "off";
|
||||||
|
};
|
||||||
|
# nix directory needs to be available pre persist and doesn't need to be snapshotted or backed up
|
||||||
|
"local/system/nix" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/nix";
|
||||||
|
options = {
|
||||||
|
atime = "off";
|
||||||
|
relatime = "off";
|
||||||
|
canmount = "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# dataset for root that gets rolled back on every boot
|
||||||
|
"local/system/root" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/";
|
||||||
|
options = {
|
||||||
|
canmount = "on";
|
||||||
|
};
|
||||||
|
postCreateHook = ''
|
||||||
|
zfs snapshot rpool/local/system/root@blank
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
extraDatasets = lib.mkOption {
|
extraDatasets = lib.mkOption {
|
||||||
type = lib.types.attrsOf (inputs.disko.lib.subType {
|
type = lib.types.attrsOf (inputs.disko.lib.subType {
|
||||||
types = {inherit (inputs.disko.lib.types) zfs_fs zfs_volume;};
|
types = {inherit (inputs.disko.lib.types) zfs_fs zfs_volume;};
|
||||||
|
@ -222,13 +257,15 @@ in {
|
||||||
);
|
);
|
||||||
|
|
||||||
datasets = lib.mkMerge [
|
datasets = lib.mkMerge [
|
||||||
(lib.attrsets.mapAttrs (name: value: {
|
(
|
||||||
|
lib.attrsets.mapAttrs (name: value: {
|
||||||
type = value.type;
|
type = value.type;
|
||||||
options = value.options;
|
options = value.options;
|
||||||
mountpoint = value.mountpoint;
|
mountpoint = value.mountpoint;
|
||||||
postCreateHook = value.postCreateHook;
|
postCreateHook = value.postCreateHook;
|
||||||
})
|
})
|
||||||
config.host.storage.pool.extraDatasets)
|
datasets
|
||||||
|
)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,33 +38,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
host.storage.pool.extraDatasets = {
|
host.storage.pool.extraDatasets = {
|
||||||
# local datasets are for data that should be considered ephemeral
|
|
||||||
"local" = {
|
|
||||||
type = "zfs_fs";
|
|
||||||
options.canmount = "off";
|
|
||||||
};
|
|
||||||
# nix directory needs to be available pre persist and doesn't need to be snapshotted or backed up
|
|
||||||
"local/system/nix" = {
|
|
||||||
type = "zfs_fs";
|
|
||||||
mountpoint = "/nix";
|
|
||||||
options = {
|
|
||||||
atime = "off";
|
|
||||||
relatime = "off";
|
|
||||||
canmount = "on";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# dataset for root that gets rolled back on every boot
|
|
||||||
"local/system/root" = {
|
|
||||||
type = "zfs_fs";
|
|
||||||
mountpoint = "/";
|
|
||||||
options = {
|
|
||||||
canmount = "on";
|
|
||||||
};
|
|
||||||
postCreateHook = ''
|
|
||||||
zfs snapshot rpool/local/system/root@blank
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# persist datasets are datasets that contain information that we would like to keep around
|
# persist datasets are datasets that contain information that we would like to keep around
|
||||||
"persist" = {
|
"persist" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue