mirror of
https://github.com/CHN-beta/nixos.git
synced 2026-01-12 02:09:26 +08:00
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "nas")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "one")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "pc")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,7 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.findModules ./.;
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.cluster.clusterName or null == "srv1")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "srv1-node0")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "srv1-node1")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "srv1-node2")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,5 @@
|
||||
inputs:
|
||||
{
|
||||
imports = inputs.localLib.findModules ./.;
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "srv2-node0")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "srv2-node1")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "vps6")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
inputs:
|
||||
{
|
||||
config = inputs.lib.mkIf (inputs.config.nixos.model.hostname == "vps7")
|
||||
config =
|
||||
{
|
||||
nixos =
|
||||
{
|
||||
@@ -1,21 +1,43 @@
|
||||
{ inputs, localLib }:
|
||||
let
|
||||
singles = [ "nas" "pc" "vps6" "vps7" "one" ];
|
||||
machine = [ "nas" "pc" "vps6" "vps7" "one" ];
|
||||
cluster = { srv1 = 3; srv2 = 2; };
|
||||
devices = builtins.listToAttrs
|
||||
(
|
||||
(builtins.map (n: { name = n; value.hostname = n; }) singles)
|
||||
++ (builtins.concatLists (builtins.map
|
||||
(cluster: builtins.map
|
||||
(node: { name = "${cluster.name}-${node}"; value.cluster = { clusterName = cluster.name; nodeName = node; }; })
|
||||
(builtins.genList (n: "node${builtins.toString n}") cluster.value))
|
||||
(localLib.attrsToList cluster)))
|
||||
);
|
||||
in builtins.mapAttrs
|
||||
(_: v: inputs.nixpkgs.lib.nixosSystem
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { topInputs = inputs; inherit localLib; };
|
||||
modules = localLib.mkModules [ { config.nixos.model = v; } ../modules ];
|
||||
})
|
||||
devices
|
||||
in builtins.listToAttrs
|
||||
(
|
||||
(builtins.map
|
||||
(system:
|
||||
{
|
||||
name = system;
|
||||
value = inputs.nixpkgs.lib.nixosSystem
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { topInputs = inputs; inherit localLib; };
|
||||
modules = localLib.mkModules
|
||||
[ { config.nixos.model.hostname = system; } ../modules ../devices/${system} ../devices/cross ];
|
||||
};
|
||||
})
|
||||
machine)
|
||||
++ (builtins.concatLists (builtins.map
|
||||
(cluster:
|
||||
let nodes = builtins.genList (n: "node${builtins.toString n}") cluster.value;
|
||||
in builtins.map
|
||||
(node:
|
||||
{
|
||||
name = "${cluster.name}-${node}";
|
||||
value = inputs.nixpkgs.lib.nixosSystem
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { topInputs = inputs; inherit localLib; };
|
||||
modules = localLib.mkModules
|
||||
[
|
||||
{ config.nixos.model.cluster = { clusterName = cluster.name; nodeName = node; }; }
|
||||
../modules
|
||||
../devices/${cluster.name}
|
||||
../devices/${cluster.name}/${node}
|
||||
../devices/cross
|
||||
];
|
||||
};
|
||||
})
|
||||
nodes)
|
||||
(localLib.attrsToList cluster)))
|
||||
)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
inputs: { imports = inputs.localLib.findModules ./.; }
|
||||
Reference in New Issue
Block a user