${cfg.extraConfig}
${ lib.concatMapStrings
- ({ name, file, master ? true, extra ? "", slaves ? [], masters ? [] }:
+ ({ name, file, master ? true, extraConfig ? "", slaves ? [], masters ? [] }:
''
zone "${name}" {
type ${if master then "master" else "slave"};
};
'' else ""}
allow-query { any; };
- ${extra}
+ ${extraConfig}
};
'')
- cfg.zones }
+ (builtins.attrValues cfg.zones) }
'';
mxes = lib.attrsets.filterAttrs
(n: v: v.mx.enable)
(_: v: "${n} IN MX ${v.mx.priority} ${v.mx.subdomain}.${conf.name}.")
mxes);
in lib.mkIf config.myServices.dns.enable {
+ myServices.chatonsProperties.hostings.dns-secondaire = {
+ file.datetime = "2022-08-22T02:00:00";
+ hosting = {
+ name = "DNS secondaire";
+ description = "DNS secondaire";
+ website = "ns1.immae.eu";
+ status.level = "OK";
+ status.description = "OK";
+ registration.load = "OPEN";
+ install.type = "PACKAGE";
+ };
+ software = {
+ name = "bind9";
+ website = pkgs.bind.meta.homepage;
+ license.url = pkgs.bind.meta.license.url;
+ license.name = pkgs.bind.meta.license.fullName;
+ version = pkgs.bind.version;
+ source.url = "https://www.isc.org/download/";
+ };
+ };
networking.firewall.allowedUDPPorts = [ 53 ];
networking.firewall.allowedTCPPorts = [ 53 ];
users.users.named.extraGroups = [ "keys" ];
masters = if lib.attrsets.hasAttr "masters" conf
then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.masters)
else [];
+ slaves = [];
}) slaveZones)
++ (map (conf: {
name = conf.name;
master = true;
- extra = if lib.attrsets.hasAttr "extra" conf then conf.extra else "";
+ extraConfig = if lib.attrsets.hasAttr "extra" conf then conf.extra else "";
+ masters = [];
slaves = if lib.attrsets.hasAttr "slaves" conf
then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.slaves)
else [];