55 lines
1.4 KiB
Nix
55 lines
1.4 KiB
Nix
{ config, pkgs, lib, self, ... }:
|
|
|
|
let
|
|
mainServer = "server1";
|
|
pillar = self.lib.saltPillarFor mainServer;
|
|
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 (
|
|
[
|
|
{
|
|
"${mainServer}".role = "server";
|
|
}
|
|
|
|
(builtins.mapAttrs (_: switch: {
|
|
inherit (switch) model location password;
|
|
role = "switch";
|
|
}) pillar.switches)
|
|
|
|
(builtins.mapAttrs (_: ap: {
|
|
inherit (ap) model location password;
|
|
role = "ap";
|
|
}) pillar.cpe)
|
|
|
|
(builtins.mapAttrs (_: container: {
|
|
role = "container";
|
|
location = mainServer;
|
|
}) pillar.containers)
|
|
] ++
|
|
|
|
(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))
|
|
);
|
|
}
|