{ lib, config, ... }: { options.pim.hasK8sStorageSetup = lib.mkOption { type = lib.types.bool; default = false; }; config = lib.mkIf config.pim.hasK8sStorageSetup { disko.devices = { disk = { nvme = { device = "/dev/nvme0n1"; type = "disk"; content = { type = "gpt"; partitions = { boot = { type = "EF00"; size = "500M"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; }; pv_os = { size = "79G"; content = { type = "lvm_pv"; vg = "vg_os"; }; }; pv_nvme_extra = { size = "100%"; content = { type = "lvm_pv"; vg = "vg_data"; }; }; }; }; }; sata = { device = "/dev/sda"; type = "disk"; content = { type = "gpt"; partitions.pv_sata = { size = "100%"; content = { type = "lvm_pv"; vg = "vg_data"; }; }; }; }; }; lvm_vg = { vg_os = { type = "lvm_vg"; lvs = { root = { size = "75G"; content = { type = "filesystem"; format = "ext4"; mountpoint = "/"; mountOptions = ["defaults"]; }; }; swap = { size = "100%FREE"; content.type = "swap"; }; }; }; vg_data = { type = "lvm_vg"; lvs.longhorn = { size = "100%FREE"; content = { type = "filesystem"; format = "xfs"; mountpoint = "/mnt/longhorn"; }; }; }; }; }; }; }