89 lines
2.1 KiB
Nix
89 lines
2.1 KiB
Nix
{ lib, ... }: {
|
|
options.lab = {
|
|
|
|
networking = {
|
|
public = {
|
|
ipv4 = {
|
|
router = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
Public IPv4 address of the router.
|
|
'';
|
|
};
|
|
};
|
|
|
|
ipv6 = {
|
|
router = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
Publicly routable IPv6 address of the router.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
dmz = {
|
|
ipv4 = {
|
|
prefixLength = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
IPv4 prefix length of DMZ network.
|
|
'';
|
|
};
|
|
|
|
dockerSwarm = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
IPv4 address of the Docker Swarm in the DMZ.
|
|
'';
|
|
};
|
|
|
|
|
|
router = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
The router's IPv4 address on the DMZ network.
|
|
'';
|
|
};
|
|
|
|
services = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
The IPv4 address of the interface serving DHCP and DNS on the DMZ network.
|
|
'';
|
|
};
|
|
};
|
|
|
|
ipv6 = {
|
|
prefixLength = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
IPv6 prefix length of DMZ network.
|
|
'';
|
|
};
|
|
|
|
dockerSwarm = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
Globally routable IPv6 address of the Docker Swarm.
|
|
'';
|
|
};
|
|
|
|
router = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
The router's IPv6 address on the DMZ network.
|
|
'';
|
|
};
|
|
|
|
services = lib.mkOption {
|
|
type = lib.types.str;
|
|
description = ''
|
|
The IPv6 address of the interface serving DHCP and DNS on the DMZ network.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|