Seems to be almost working

This commit is contained in:
2021-03-01 16:43:27 -06:00
parent de56949c14
commit 72cf88bdec
18 changed files with 754 additions and 137 deletions
+30 -13
View File
@@ -7,6 +7,7 @@ let
service = {
type = str;
description = "Service name of SRV record.";
default = service;
};
priority = mkOption {
@@ -15,6 +16,13 @@ let
default = 0;
};
weight = mkOption {
type = int;
description =
"Weight to give this record, among records of equivalent priority.";
default = 5;
};
port = mkOption {
type = port;
description = "Port for service on this host.";
@@ -29,7 +37,7 @@ let
};
};
hostOpts = { hostname, ... }: {
networkHostOpts = { hostname, ... }: {
options = with types; {
hostname = mkOption {
type = str;
@@ -40,22 +48,18 @@ let
ipv4-address = mkOption {
type = nullOr str;
description = ''
The V4 IP of a given host, if any.
'';
description = "The V4 IP of a given host, if any.";
default = null;
};
ipv6-address = mkOption {
type = nullOr str;
description = ''
The V6 IP of a given host, if any.
'';
description = "The V6 IP of a given host, if any.";
default = null;
};
mac-address = mkOption {
type = with types; nullOr types.str;
type = nullOr types.str;
description =
"The MAC address of a given host, if desired for IP reservation.";
default = null;
@@ -65,16 +69,22 @@ let
in {
options = with types; {
hosts = {
type = attrsOf networkHostOpts;
hosts = mkOption {
type = attrsOf (submodule networkHostOpts);
description = "Hosts on the local network, with relevant settings.";
example = {
my-host = {
ipv4-address = "192.168.0.1";
mac-address = "aa:aa:aa:aa:aa";
};
};
default = { };
};
srv-records = {
type = attrsOf (attrsOf (listOf (submodule protocolSrvRecords)));
srv-records = mkOption {
type = attrsOf (attrsOf (listOf (submodule srvRecordOpts)));
description = "SRV records for the network.";
default = {
example = {
tcp = {
kerberos = {
port = 88;
@@ -82,6 +92,7 @@ in {
};
};
};
default = { };
};
aliases = mkOption {
@@ -121,5 +132,11 @@ in {
description = "A list of mail servers serving this domain.";
default = [ ];
};
gssapi-realm = mkOption {
type = nullOr str;
description = "Kerberos GSSAPI realm of the network.";
default = null;
};
};
}