nixosModules: remove unnecessary ./iso and disk-layout, clanModules: fix issue #1349
This commit is contained in:
@@ -12,11 +12,11 @@
|
|||||||
{ lib, modulesPath, ... }:
|
{ lib, modulesPath, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
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 + "/testing/test-instrumentation.nix") # we need these 2 modules always to be able to run the tests
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
clan.disk-layouts.singleDiskExt4.device = "/dev/vdb";
|
clan.single-disk.device = "/dev/vdb";
|
||||||
|
|
||||||
environment.etc."install-successful".text = "ok";
|
environment.etc."install-successful".text = "ok";
|
||||||
|
|
||||||
|
|||||||
@@ -22,12 +22,12 @@
|
|||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
"${config.networking.hostName}-boot" = {
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02"; # for grub MBR
|
type = "EF02"; # for grub MBR
|
||||||
priority = 1;
|
priority = 1;
|
||||||
};
|
};
|
||||||
ESP = {
|
"${config.networking.hostName}-ESP" = {
|
||||||
size = "512M";
|
size = "512M";
|
||||||
type = "EF00";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
mountpoint = "/boot";
|
mountpoint = "/boot";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
root = {
|
"${config.networking.hostName}-root" = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
|
|||||||
@@ -23,12 +23,12 @@ lsblk --output NAME,ID-LINK,FSTYPE,SIZE,MOUNTPOINT
|
|||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
"${config.networking.hostName}-boot" = {
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02"; # for grub MBR
|
type = "EF02"; # for grub MBR
|
||||||
priority = 1;
|
priority = 1;
|
||||||
};
|
};
|
||||||
ESP = lib.mkIf (idx == "nvme-eui.002538b931b59865") {
|
"${config.networking.hostName}-ESP" = lib.mkIf (idx == "nvme-eui.002538b931b59865") {
|
||||||
size = "1G";
|
size = "1G";
|
||||||
type = "EF00";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
@@ -38,7 +38,7 @@ lsblk --output NAME,ID-LINK,FSTYPE,SIZE,MOUNTPOINT
|
|||||||
mountOptions = [ "nofail" ];
|
mountOptions = [ "nofail" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
zfs = {
|
"${config.networking.hostName}-root" = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "zfs";
|
type = "zfs";
|
||||||
|
|||||||
@@ -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 = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -14,7 +14,6 @@
|
|||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.disko.nixosModules.default
|
inputs.disko.nixosModules.default
|
||||||
./clanCore
|
./clanCore
|
||||||
./iso
|
|
||||||
(
|
(
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -11,12 +11,12 @@
|
|||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
"${config.networking.hostName}-boot" = {
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02"; # for grub MBR
|
type = "EF02"; # for grub MBR
|
||||||
priority = 1;
|
priority = 1;
|
||||||
};
|
};
|
||||||
ESP = {
|
"${config.networking.hostName}-ESP" = {
|
||||||
size = "512M";
|
size = "512M";
|
||||||
type = "EF00";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
mountpoint = "/boot";
|
mountpoint = "/boot";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
root = {
|
"${config.networking.hostName}-root" = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
|
|||||||
@@ -13,12 +13,12 @@
|
|||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
boot = {
|
"${config.networking.hostName}-boot" = {
|
||||||
size = "1M";
|
size = "1M";
|
||||||
type = "EF02"; # for grub MBR
|
type = "EF02"; # for grub MBR
|
||||||
priority = 1;
|
priority = 1;
|
||||||
};
|
};
|
||||||
ESP = {
|
"${config.networking.hostName}-ESP" = {
|
||||||
size = "512M";
|
size = "512M";
|
||||||
type = "EF00";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
mountOptions = [ "nofail" ];
|
mountOptions = [ "nofail" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
root = {
|
"${config.networking.hostName}-root" = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
|
|||||||
Reference in New Issue
Block a user