nixosModules: remove unnecessary ./iso and disk-layout, clanModules: fix issue #1349

This commit is contained in:
Qubasa
2024-09-03 00:09:45 +02:00
parent 57513bef93
commit e35fd0976a
8 changed files with 14 additions and 152 deletions

View File

@@ -12,11 +12,11 @@
{ lib, modulesPath, ... }:
{
imports = [
"${self}/nixosModules/disk-layouts"
self.clanModules.single-disk
(modulesPath + "/testing/test-instrumentation.nix") # we need these 2 modules always to be able to run the tests
(modulesPath + "/profiles/qemu-guest.nix")
];
clan.disk-layouts.singleDiskExt4.device = "/dev/vdb";
clan.single-disk.device = "/dev/vdb";
environment.etc."install-successful".text = "ok";

View File

@@ -22,12 +22,12 @@
content = {
type = "gpt";
partitions = {
boot = {
"${config.networking.hostName}-boot" = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
"${config.networking.hostName}-ESP" = {
size = "512M";
type = "EF00";
content = {
@@ -36,7 +36,7 @@
mountpoint = "/boot";
};
};
root = {
"${config.networking.hostName}-root" = {
size = "100%";
content = {
type = "filesystem";

View File

@@ -23,12 +23,12 @@ lsblk --output NAME,ID-LINK,FSTYPE,SIZE,MOUNTPOINT
content = {
type = "gpt";
partitions = {
boot = {
"${config.networking.hostName}-boot" = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = lib.mkIf (idx == "nvme-eui.002538b931b59865") {
"${config.networking.hostName}-ESP" = lib.mkIf (idx == "nvme-eui.002538b931b59865") {
size = "1G";
type = "EF00";
content = {
@@ -38,7 +38,7 @@ lsblk --output NAME,ID-LINK,FSTYPE,SIZE,MOUNTPOINT
mountOptions = [ "nofail" ];
};
};
zfs = {
"${config.networking.hostName}-root" = {
size = "100%";
content = {
type = "zfs";

View File

@@ -1,48 +0,0 @@
{ config, lib, ... }:
{
options.clan.disk-layouts.singleDiskExt4 = {
device = lib.mkOption {
type = lib.types.str;
example = "/dev/disk/by-id/ata-Samsung_SSD_850_EVO_250GB_S21PNXAGB12345";
};
};
config = {
boot.loader.grub.efiSupport = lib.mkDefault true;
boot.loader.grub.efiInstallAsRemovable = lib.mkDefault true;
disko.devices = {
disk = {
main = {
type = "disk";
device = config.clan.disk-layouts.singleDiskExt4.device;
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
}

View File

@@ -14,7 +14,6 @@
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.default
./clanCore
./iso
(
{ pkgs, lib, ... }:
{

View File

@@ -1,89 +0,0 @@
{
config,
extendModules,
lib,
pkgs,
...
}:
let
# Generates a fileSystems entry for bind mounting a given state folder path
# It binds directories from /var/clanstate/{some-path} to /{some-path}.
# As a result, all state paths will be persisted across reboots, because
# the state folder is mounted from the host system.
mkBindMount = path: {
name = path;
value = {
device = "/var/clanstate/${path}";
options = [ "bind" ];
};
};
# Flatten the list of state folders into a single list
stateFolders = lib.flatten (
lib.mapAttrsToList (_item: attrs: attrs.folders) config.clan.core.state
);
# A module setting up bind mounts for all state folders
stateMounts = {
fileSystems = lib.listToAttrs (map mkBindMount stateFolders);
};
isoModule =
{ config, ... }:
{
imports = [ stateMounts ];
options.clan.iso.disko = lib.mkOption {
type = lib.types.submodule { freeformType = (pkgs.formats.json { }).type; };
default = {
disk = {
iso = {
type = "disk";
imageSize = "10G"; # TODO add auto image size in disko
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1; # Needs to be first partition
};
ESP = {
size = "100M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
config = {
disko.devices = lib.mkOverride 51 config.clan.iso.disko;
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true;
boot.loader.grub.device = lib.mkForce "/dev/vda";
boot.loader.grub.efiInstallAsRemovable = true;
};
};
isoConfig = extendModules { modules = [ isoModule ]; };
in
{
config = {
# for clan vm create
system.clan.iso = isoConfig.config.system.build.diskoImages;
};
}

View File

@@ -11,12 +11,12 @@
content = {
type = "gpt";
partitions = {
boot = {
"${config.networking.hostName}-boot" = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
"${config.networking.hostName}-ESP" = {
size = "512M";
type = "EF00";
content = {
@@ -25,7 +25,7 @@
mountpoint = "/boot";
};
};
root = {
"${config.networking.hostName}-root" = {
size = "100%";
content = {
type = "filesystem";

View File

@@ -13,12 +13,12 @@
content = {
type = "gpt";
partitions = {
boot = {
"${config.networking.hostName}-boot" = {
size = "1M";
type = "EF02"; # for grub MBR
priority = 1;
};
ESP = {
"${config.networking.hostName}-ESP" = {
size = "512M";
type = "EF00";
content = {
@@ -28,7 +28,7 @@
mountOptions = [ "nofail" ];
};
};
root = {
"${config.networking.hostName}-root" = {
size = "100%";
content = {
type = "filesystem";