nixos/estuary: Add PowerDNS recursor Netdata monitoring
This commit is contained in:
@@ -162,7 +162,17 @@ let
|
||||
|
||||
cfg = config.my.pdns;
|
||||
|
||||
extraSettingsOpt = with lib.types; mkOpt' (nullOr str) null "Path to extra settings (e.g. for secrets).";
|
||||
baseAuthSettings = pkgs.writeText "pdns.conf" (settingsToLines cfg.auth.settings);
|
||||
baseRecursorSettings = pkgs.writeText "pdns-recursor.conf" (settingsToLines config.services.pdns-recursor.settings);
|
||||
generateSettings = type: base: dst: if (cfg."${type}".extraSettingsFile != null) then ''
|
||||
oldUmask="$(umask)"
|
||||
umask 006
|
||||
cat "${base}" "${cfg."${type}".extraSettingsFile}" > "${dst}"
|
||||
umask "$oldUmask"
|
||||
'' else ''
|
||||
cp "${base}" "${dst}"
|
||||
'';
|
||||
|
||||
namedConf = pkgs.writeText "pdns-named.conf" ''
|
||||
options {
|
||||
@@ -206,7 +216,7 @@ in
|
||||
auth = {
|
||||
enable = mkBoolOpt' false "Whether to enable PowerDNS authoritative nameserver.";
|
||||
settings = mkOpt' configType { } "Authoritative server settings.";
|
||||
extraSettingsFile = mkOpt' (nullOr str) null "Path to extra settings (e.g. for secrets).";
|
||||
extraSettingsFile = extraSettingsOpt;
|
||||
|
||||
bind = {
|
||||
options = {
|
||||
@@ -218,6 +228,11 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
recursor = {
|
||||
enable = mkBoolOpt' false "Whether to enable PowerDNS recursive nameserver.";
|
||||
extraSettingsFile = extraSettingsOpt;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
@@ -260,14 +275,7 @@ in
|
||||
|
||||
systemd.services.pdns = {
|
||||
preStart = ''
|
||||
${if (cfg.auth.extraSettingsFile != null) then ''
|
||||
oldUmask="$(umask)"
|
||||
umask 006
|
||||
cat ${baseAuthSettings} ${cfg.auth.extraSettingsFile} > /run/pdns/pdns.conf
|
||||
umask "$oldUmask"
|
||||
'' else ''
|
||||
cp ${baseAuthSettings} /run/pdns/pdns.conf
|
||||
''}
|
||||
${generateSettings "auth" baseAuthSettings "/run/pdns/pdns.conf"}
|
||||
|
||||
source ${loadZonesCommon}
|
||||
|
||||
@@ -300,5 +308,17 @@ in
|
||||
enable = true;
|
||||
};
|
||||
})
|
||||
(mkIf cfg.recursor.enable {
|
||||
systemd.services.pdns-recursor = {
|
||||
preStart = ''
|
||||
${generateSettings "recursor" baseRecursorSettings "/run/pdns-recursor/recursor.conf"}
|
||||
'';
|
||||
serviceConfig.ExecStart = [ "" "${pkgs.pdns-recursor}/bin/pdns_recursor --config-dir=/run/pdns-recursor" ];
|
||||
};
|
||||
|
||||
services.pdns-recursor = {
|
||||
enable = true;
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user