17 lines
469 B
Nix
17 lines
469 B
Nix
{ config, lib, ... }:
|
|
|
|
{
|
|
hostLinks = lib.pipe config.services [
|
|
(lib.filterAttrs (_: svc: svc.meshLinks != {}))
|
|
(lib.mapAttrsToList (svcName: svc:
|
|
lib.mapAttrsToList (groupName: links:
|
|
lib.genAttrs svc.nodes.${groupName} (hostName: lib.mapAttrs (_: cfg: { ... }: {
|
|
imports = [ cfg.link ];
|
|
ipv4 = config.vars.mesh.${hostName}.meshIp;
|
|
}) links)
|
|
) svc.meshLinks
|
|
))
|
|
(map lib.mkMerge)
|
|
lib.mkMerge
|
|
];
|
|
}
|