42 lines
1.2 KiB
Nix
42 lines
1.2 KiB
Nix
|
{ pkgs, lib, ... }:
|
||
|
|
||
|
let
|
||
|
pillar = import ./salt-support/salt-pillar.nix { inherit pkgs; };
|
||
|
in
|
||
|
{
|
||
|
options.salt-pillar = lib.mkOption {};
|
||
|
config.salt-pillar = pillar;
|
||
|
|
||
|
config.site.net = lib.mkMerge ([
|
||
|
(builtins.mapAttrs (_: vlan: { vlan = vlan; }) pillar.vlans)
|
||
|
(builtins.mapAttrs (_: subnet: { subnet4 = subnet; }) pillar.subnets-inet)
|
||
|
] ++ (
|
||
|
map (ctx:
|
||
|
builtins.mapAttrs (_: subnet: { subnets6.${ctx} = subnet; }) pillar.subnets-inet6.${ctx}
|
||
|
) (builtins.attrNames pillar.subnets-inet6)
|
||
|
));
|
||
|
|
||
|
config.site.hosts = lib.mkMerge (
|
||
|
[
|
||
|
(builtins.mapAttrs (_: switch: {
|
||
|
inherit (switch) model location password;
|
||
|
role = "switch";
|
||
|
}) pillar.switches)
|
||
|
(builtins.mapAttrs (_: ap: {
|
||
|
inherit (ap) model location password;
|
||
|
role = "ap";
|
||
|
}) pillar.cpe)
|
||
|
] ++
|
||
|
(map (net:
|
||
|
builtins.mapAttrs (_: addr4: {
|
||
|
}) pillar.hosts-inet.${net}
|
||
|
) (builtins.attrNames pillar.hosts-inet)) ++
|
||
|
(builtins.concatMap (ctx:
|
||
|
map (net:
|
||
|
builtins.mapAttrs (_: addr6: {
|
||
|
}) pillar.hosts-inet6.${ctx}.${net}
|
||
|
) (builtins.attrNames pillar.hosts-inet6.${ctx})
|
||
|
) (builtins.attrNames pillar.hosts-inet6))
|
||
|
);
|
||
|
}
|