forked from Fediversity/Fediversity
81 lines
2.1 KiB
Nix
81 lines
2.1 KiB
Nix
{ lib, ... }:
|
|
|
|
let
|
|
inherit (lib) mkOption;
|
|
|
|
in
|
|
{
|
|
options.procolixVm = {
|
|
name = mkOption {
|
|
description = ''
|
|
The name of the machine. Most of the time, this will look like `vm02XXX`
|
|
or `fediYYY`.
|
|
'';
|
|
};
|
|
|
|
domain = mkOption {
|
|
description = ''
|
|
The domain hosting the machine. Most of the time, this will be either of
|
|
`procolix.com`, `fediversity.eu` or `abundos.eu`.
|
|
'';
|
|
default = "procolix.com";
|
|
};
|
|
|
|
ipv4 = {
|
|
address = mkOption {
|
|
description = ''
|
|
The IP address of the machine, version 4. It will be injected as a
|
|
value in `networking.interfaces.eth0`, but it will also be used to
|
|
communicate with the machine via NixOps4.
|
|
'';
|
|
};
|
|
|
|
prefixLength = mkOption {
|
|
description = ''
|
|
The subnet mask of the interface, specified as the number of bits in
|
|
the prefix.
|
|
'';
|
|
default = 24;
|
|
};
|
|
|
|
gateway = mkOption {
|
|
description = ''
|
|
The IP address of the default gateway.
|
|
'';
|
|
default = "185.206.232.1"; # FIXME: compute default from `address` and `prefixLength`.
|
|
};
|
|
};
|
|
|
|
ipv6 = {
|
|
address = mkOption {
|
|
description = ''
|
|
The IP address of the machine, version 6. It will be injected as a
|
|
value in `networking.interfaces.eth0`, but it will also be used to
|
|
communicate with the machine via NixOps4.
|
|
'';
|
|
};
|
|
|
|
prefixLength = mkOption {
|
|
description = ''
|
|
The subnet mask of the interface, specified as the number of bits in
|
|
the prefix.
|
|
'';
|
|
default = 64;
|
|
};
|
|
|
|
gateway = mkOption {
|
|
description = ''
|
|
The IP address of the default gateway.
|
|
'';
|
|
default = "2a00:51c0:12:1201::1"; # FIXME: compute default from `address` and `prefixLength`.
|
|
};
|
|
};
|
|
|
|
hostPublicKey = mkOption {
|
|
description = ''
|
|
The host public key of the machine. It is used to filter Age secrets and
|
|
only keep the relevant ones, and to feed to NixOps4.
|
|
'';
|
|
};
|
|
};
|
|
}
|