dotfiles/nix/hardware/blowhole.nix

88 lines
2 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, secret, ... }:
with lib;
let
cfg = config.magic_rb.hardware.blowhole;
in {
options.magic_rb.hardware.blowhole = mkEnableOption "Enable blowhole.";
config = mkIf cfg {
boot = {
supportedFilesystems = [ "zfs" ];
initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
"nvme"
];
zfs.enableUnstable = true;
kernelPackages = pkgs.zfsUnstable.latestCompatibleLinuxPackages;
};
fileSystems = {
"/boot" =
{
device = "/dev/disk/by-uuid/738acc32-3e2e-4986-987c-40264153d5bf";
fsType = "ext4";
};
"/boot/EFI" =
{
device = "/dev/disk/by-uuid/246F-0E65";
fsType = "vfat";
};
"/" =
{
device = "blowhole-zpool/local/root";
fsType = "zfs";
};
"/nix" =
{
device = "blowhole-zpool/local/nix";
fsType = "zfs";
};
"/var/nfs" =
{
device = "/dev/disk/by-uuid/e06f6d2c-e434-4eec-b00d-b13c1ecc96f0";
fsType = "btrfs";
options =
[ "subvol=/nfs"
"noatime"
];
};
"/old-root" =
{
device = "/dev/disk/by-uuid/e06f6d2c-e434-4eec-b00d-b13c1ecc96f0";
fsType = "btrfs";
options =
[ "subvol=/arch"
"noatime"
];
};
"/var/lib/nomad" =
{
device = "/old-root/var/lib/nomad";
options = singleton "bind";
};
"/var/secrets" =
{
device = "blowhole-zpool/persist/secrets";
fsType = "zfs";
};
"/var/lib/consul" =
{
device = "/old-root/var/lib/consul";
options = singleton "bind";
};
"/var/lib/vault" =
{
device = "/old-root/var/lib/vault";
options = singleton "bind";
};
} // secret.mounts.blowhole;
};
}