{
  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";
            };
          };
        };
      };
    };
  };
}