refactor(hosts): streamline host and node builders

This commit is contained in:
tux
2026-08-12 16:35:28 +05:30
parent 95cd68aac2
commit cc2766509e

View File

@@ -1,12 +1,11 @@
{ {
self, self,
inputs, inputs,
outputs,
config, config,
... ...
}: }:
let let
mkHost = mkNixOSHost =
hostName: hostName:
{ {
userName ? "tux", userName ? "tux",
@@ -55,8 +54,6 @@ let
}; };
extraSpecialArgs = { extraSpecialArgs = {
inherit inherit
inputs
outputs
hostName hostName
userName userName
userEmail userEmail
@@ -68,35 +65,47 @@ let
]; ];
}; };
mkNixOSNode = hostname: { mkNixOSNode =
inherit hostname; hostName:
profiles.system = { {
user = "root"; system ? "x86_64-linux",
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${hostname}; }:
{
hostname = hostName;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.${hostName};
};
}; };
};
activateNixOnDroid = activateNixOnDroid =
configuration: system: configuration:
inputs.deploy-rs.lib.aarch64-linux.activate.custom configuration.activationPackage "${configuration.activationPackage}/activate"; inputs.deploy-rs.lib.${system}.activate.custom configuration.activationPackage
"${configuration.activationPackage}/activate";
mkDroidNode = hostname: { mkDroidNode =
inherit hostname; hostName:
profiles.system = { {
sshUser = "nix-on-droid"; system ? "aarch64-linux",
user = "nix-on-droid"; }:
magicRollback = true; {
sshOpts = [ hostname = hostName;
"-p" profiles.system = {
"8033" sshUser = "nix-on-droid";
]; user = "nix-on-droid";
path = activateNixOnDroid self.nixOnDroidConfigurations.${hostname}; magicRollback = true;
sshOpts = [
"-p"
"8033"
];
path = activateNixOnDroid system self.nixOnDroidConfigurations.${hostName};
};
}; };
};
in in
{ {
flake = { flake = {
nixosConfigurations = builtins.mapAttrs mkHost { nixosConfigurations = builtins.mapAttrs mkNixOSHost {
sirius = { }; sirius = { };
canopus = { }; canopus = { };
arcturus = { }; arcturus = { };
@@ -108,18 +117,14 @@ in
vega = { }; vega = { };
}; };
deploy.nodes = { deploy.nodes =
sirius = mkNixOSNode "sirius"; builtins.mapAttrs (hostName: _: mkNixOSNode hostName { }) self.nixosConfigurations
canopus = mkNixOSNode "canopus"; // builtins.mapAttrs (hostName: _: mkDroidNode hostName { }) self.nixOnDroidConfigurations;
arcturus = mkNixOSNode "arcturus";
alpha = mkNixOSNode "alpha";
vega = mkDroidNode "vega";
};
}; };
perSystem = { perSystem = {
checks = builtins.mapAttrs ( checks = builtins.mapAttrs (
_: config: config.config.system.build.toplevel _: hostConfig: hostConfig.config.system.build.toplevel
) self.nixosConfigurations; ) self.nixosConfigurations;
}; };
} }