infrastructure/lib/default.nix

35 lines
731 B
Nix
Raw Normal View History

_:
2023-05-22 15:05:20 +02:00
let
2023-07-23 22:16:59 +02:00
sources = import ../npins;
2023-05-22 15:05:20 +02:00
2024-03-08 11:50:37 +01:00
lib = import sources.nix-lib {
inherit ((import sources.nixpkgs { })) lib;
2024-03-08 11:50:37 +01:00
keysRoot = ../keys;
};
2024-02-22 09:56:53 +01:00
2024-03-08 11:50:37 +01:00
meta = import ../meta lib;
inherit (lib.extra) getAllKeys;
in
2024-03-08 11:50:37 +01:00
lib.extra
2024-02-22 09:56:53 +01:00
// rec {
# Get publickeys associated to a node
getNodeKeys =
node:
let
names =
2024-03-08 11:50:37 +01:00
builtins.foldl' (names: group: names ++ meta.organization.groups.${group})
(meta.nodes.${node}.admins ++ [ "/machines/${node}" ])
2024-02-22 09:56:53 +01:00
meta.nodes.${node}.adminGroups;
in
2024-03-08 11:50:37 +01:00
rootKeys ++ (getAllKeys names);
2024-02-22 09:56:53 +01:00
2024-03-08 11:50:37 +01:00
rootKeys = getAllKeys meta.organization.groups.root;
2024-03-08 23:11:10 +01:00
machineKeys =
rootKeys ++ (getAllKeys (builtins.map (n: "machines/${n}") (builtins.attrNames meta.nodes)));
2024-02-22 09:56:53 +01:00
}