{ lib, ... }: { disko.devices = { disk = { # Boot disk system = { type = "disk"; device = "${BOOT_DISK_1}"; content = { type = "gpt"; partitions = { ESP = { size = "1G"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "umask=0077" ]; }; }; luks = { size = "100%"; content = { type = "luks"; name = "crypted"; settings = { allowDiscards = true; }; content = { type = "lvm_pv"; vg = "pool"; }; }; }; }; }; }; # First data disk data1 = { type = "disk"; device = "${DATA_DISK_1}"; content = { type = "gpt"; partitions = { luks = { size = "100%"; content = { type = "luks"; name = "crypted-data-1"; keyFile = "/run/secrets/disks/data-disk-1"; content = { type = "filesystem"; format = "xfs"; mountpoint = "/mnt/data-1"; }; }; }; }; }; }; # Parity disk parity1 = { type = "disk"; device = "${PARITY_DISK_1}"; content = { type = "gpt"; partitions = { luks = { size = "100%"; content = { type = "luks"; name = "crypted-parity-1"; keyFile = "/run/secrets/disks/parity-disk-1"; content = { type = "filesystem"; format = "xfs"; mountpoint = "/mnt/parity-1"; }; }; }; }; }; }; }; # Boot disk LVM configuration lvm_vg = { pool = { type = "lvm_vg"; lvs = { root = { size = "100%FREE"; content = { type = "filesystem"; format = "ext4"; mountpoint = "/"; }; }; swap = { size = "8G"; content.type = "swap"; }; }; }; }; }; }