summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorLassulus <github@lassul.us>2021-01-31 13:44:14 +0100
committerGitHub <noreply@github.com>2021-01-31 13:44:14 +0100
commit4c181d179b765d4bfdeb66652f7b2737920bc2f4 (patch)
tree2ec72573620f9dd5eb2465390b5c4837f266b5fd /nixos
parent9b2b1cd0ff889697ea68470d2f1ba0e9915f35a6 (diff)
parent2800882b4ba4f5f686ff99f7d76171c766aeaf8e (diff)
Merge pull request #110131 from helsinki-systems/bind_types
bind: Add types for options
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/bind.nix36
1 files changed, 34 insertions, 2 deletions
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index faad88635759..e1b997b6a868 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -8,6 +8,35 @@ let
bindUser = "named";
+ bindZoneOptions = {
+ name = mkOption {
+ type = types.str;
+ description = "Name of the zone.";
+ };
+ master = mkOption {
+ description = "Master=false means slave server";
+ type = types.bool;
+ };
+ file = mkOption {
+ type = types.str;
+ description = "Zone file resource records contain columns of data, separated by whitespace, that define the record.";
+ };
+ masters = mkOption {
+ type = types.listOf types.str;
+ description = "List of servers for inclusion in stub and secondary zones.";
+ };
+ slaves = mkOption {
+ type = types.listOf types.str;
+ description = "Addresses who may request zone transfers.";
+ default = [];
+ };
+ extraConfig = mkOption {
+ type = types.str;
+ description = "Extra zone config to be appended at the end of the zone section.";
+ default = "";
+ };
+ };
+
confFile = pkgs.writeText "named.conf"
''
include "/etc/bind/rndc.key";
@@ -72,6 +101,7 @@ in
cacheNetworks = mkOption {
default = ["127.0.0.0/24"];
+ type = types.listOf types.str;
description = "
What networks are allowed to use us as a resolver. Note
that this is for recursive queries -- all networks are
@@ -83,6 +113,7 @@ in
blockedNetworks = mkOption {
default = [];
+ type = types.listOf types.str;
description = "
What networks are just blocked.
";
@@ -90,6 +121,7 @@ in
ipv4Only = mkOption {
default = false;
+ type = types.bool;
description = "
Only use ipv4, even if the host supports ipv6.
";
@@ -97,6 +129,7 @@ in
forwarders = mkOption {
default = config.networking.nameservers;
+ type = types.listOf types.str;
description = "
List of servers we should forward requests to.
";
@@ -120,10 +153,9 @@ in
zones = mkOption {
default = [];
+ type = types.listOf (types.submodule [ { options = bindZoneOptions; } ]);
description = "
List of zones we claim authority over.
- master=false means slave server; slaves means addresses
- who may request zone transfer.
";
example = [{
name = "example.com";