feat(meta/checks): check only for required ssh keys

This commit is contained in:
catvayor 2025-01-24 16:31:20 +01:00 committed by thubrecht
parent b0bc3fae4a
commit 58bffb0263

View file

@ -8,11 +8,14 @@
let let
inherit (lib) inherit (lib)
concatLists
mapAttrsToList
mkEnableOption mkEnableOption
mkDefault mkDefault
mkIf mkIf
mkOption mkOption
optionalAttrs optionalAttrs
unique
; ;
inherit (lib.types) inherit (lib.types)
@ -382,6 +385,12 @@ in
groupsExists = nameExists groups; groupsExists = nameExists groups;
extract = name: builtins.mapAttrs (_: builtins.getAttr name); extract = name: builtins.mapAttrs (_: builtins.getAttr name);
nodeAdmins =
_:
{ admins, adminGroups, ... }:
(builtins.foldl' (members: group: members ++ org.groups.${group})) admins adminGroups;
all-admins = unique (org.groups.root ++ concatLists (mapAttrsToList nodeAdmins config.nodes));
in in
{ {
assertions = builtins.concatLists [ assertions = builtins.concatLists [
@ -419,7 +428,7 @@ in
(builtins.map (name: { (builtins.map (name: {
assertion = ((import ../keys)._keys.${name} or [ ]) != [ ]; assertion = ((import ../keys)._keys.${name} or [ ]) != [ ];
message = "No ssh keys found for ${name}."; message = "No ssh keys found for ${name}.";
}) members) }) all-admins)
]; ];
}; };
} }