20 lines
616 B
Nix
20 lines
616 B
Nix
lib: {
|
|
|
|
machines =
|
|
config:
|
|
let
|
|
instanceNames = builtins.attrNames config.clan.inventory.services.data-mesher;
|
|
instanceName = builtins.head instanceNames;
|
|
dataMesherInstances = config.clan.inventory.services.data-mesher.${instanceName};
|
|
|
|
uniqueStrings = list: builtins.attrNames (builtins.groupBy lib.id list);
|
|
in
|
|
rec {
|
|
admins = dataMesherInstances.roles.admin.machines or [ ];
|
|
signers = dataMesherInstances.roles.signer.machines or [ ];
|
|
peers = dataMesherInstances.roles.peer.machines or [ ];
|
|
bootstrap = uniqueStrings (admins ++ signers);
|
|
};
|
|
|
|
}
|