mirror of
https://github.com/oddlama/nix-config.git
synced 2025-10-10 23:00:39 +02:00
45 lines
1.1 KiB
Nix
45 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
boot.supportedFilesystems = [ "zfs" ];
|
|
|
|
# The root pool should never be imported forcefully.
|
|
# Failure to import is important to notice!
|
|
boot.zfs.forceImportRoot = false;
|
|
|
|
environment.systemPackages = with pkgs; [ zfs ];
|
|
|
|
services.zfs = {
|
|
autoScrub = {
|
|
enable = true;
|
|
interval = "weekly";
|
|
};
|
|
trim = {
|
|
enable = true;
|
|
interval = "weekly";
|
|
};
|
|
};
|
|
|
|
services.telegraf.extraConfig.inputs = lib.mkIf config.services.telegraf.enable {
|
|
zfs.poolMetrics = true;
|
|
};
|
|
|
|
# TODO remove once this is upstreamed
|
|
boot.initrd.systemd.services."zfs-import-rpool".after = [ "cryptsetup.target" ];
|
|
|
|
# After importing the rpool, rollback the root system to be empty.
|
|
boot.initrd.systemd.services.impermanence-root = {
|
|
wantedBy = [ "initrd.target" ];
|
|
after = [ "zfs-import-rpool.service" ];
|
|
before = [ "sysroot.mount" ];
|
|
unitConfig.DefaultDependencies = "no";
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
ExecStart = "${pkgs.zfs}/bin/zfs rollback -r rpool/local/root@blank";
|
|
};
|
|
};
|
|
}
|