Refactor machine logic

This commit is contained in:
Pim Kunis 2024-11-04 23:35:04 +01:00
parent fd423b8237
commit 1e80b36037
11 changed files with 53 additions and 114 deletions

View file

@ -1,17 +1,13 @@
{
machines.atlas = {
nixosModule = {
facter.reportPath = ./facter.json;
facter.reportPath = ./facter.json;
lab = {
storage.profile = "kubernetes";
tailscale.enable = true;
lab = {
storage.profile = "kubernetes";
tailscale.enable = true;
k3s = {
enable = true;
serverAddr = "https://jefke.dmz:6443";
};
};
k3s = {
enable = true;
serverAddr = "https://jefke.dmz:6443";
};
};
}

View file

@ -1,43 +1,8 @@
{
nixpkgs,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
lib = pkgs.lib;
machineOpts = {config, ...}: {
options = {
nixosModule = lib.mkOption {
default = {...}: {};
type = lib.types.anything;
description = ''
Customized configuration for this machine in the form of a NixOS module.
'';
};
};
{...}: {
machines = {
atlas = import ./atlas;
jefke = import ./jefke;
lewis = import ./lewis;
warwick = import ./warwick;
};
allOpts = {
options = {
machines = lib.mkOption {
type = with lib.types; attrsOf (submodule machineOpts);
};
};
};
in {
machines =
(lib.modules.evalModules {
modules = [
allOpts
./warwick
./atlas
./jefke
./lewis
# ./talos.nix
];
})
.config
.machines;
})
}

View file

@ -1,17 +1,13 @@
{
machines.jefke = {
nixosModule = {
facter.reportPath = ./facter.json;
facter.reportPath = ./facter.json;
lab = {
storage.profile = "kubernetes";
tailscale.enable = true;
lab = {
storage.profile = "kubernetes";
tailscale.enable = true;
k3s = {
enable = true;
clusterInit = true;
};
};
k3s = {
enable = true;
clusterInit = true;
};
};
}

View file

@ -1,19 +1,15 @@
{
machines.lewis = {
nixosModule = {
facter.reportPath = ./facter.json;
facter.reportPath = ./facter.json;
lab = {
storage.profile = "kubernetes";
backups.enable = true;
data-sharing.enable = true;
tailscale.enable = true;
lab = {
storage.profile = "kubernetes";
backups.enable = true;
data-sharing.enable = true;
tailscale.enable = true;
k3s = {
enable = true;
serverAddr = "https://jefke.dmz:6443";
};
};
k3s = {
enable = true;
serverAddr = "https://jefke.dmz:6443";
};
};
}

View file

@ -1,9 +0,0 @@
{
machines.talos = {
nixosModule = {lib, ...}: {
lab.storage.profile = "normal";
# boot.loader.systemd-boot.enable = lib.mkForce false;
};
};
}

View file

@ -1,20 +1,16 @@
{
machines.warwick = {
nixosModule = {inputs, ...}: {
imports = [inputs.nixos-hardware.nixosModules.raspberry-pi-4];
{inputs, ...}: {
imports = [inputs.nixos-hardware.nixosModules.raspberry-pi-4];
config = {
facter.reportPath = ./facter.json;
config = {
facter.reportPath = ./facter.json;
lab = {
storage.profile = "pi";
monitoring.server.enable = true;
lab = {
storage.profile = "pi";
monitoring.server.enable = true;
tailscale = {
advertiseExitNode = true;
enable = true;
};
};
tailscale = {
advertiseExitNode = true;
enable = true;
};
};
};