diff --git a/infra/common/options.nix b/infra/common/options.nix index 2e993b18..a3246fd5 100644 --- a/infra/common/options.nix +++ b/infra/common/options.nix @@ -5,31 +5,77 @@ let in { - options = { - procolixVm = { - name = mkOption { }; - domain = mkOption { default = "procolix.com"; }; + options.procolixVm = { + name = mkOption { + description = '' + The name of the machine. Most of the time, this will look like `vm02XXX` + or `fediYYY`. + ''; + }; - ipv4 = { - address = mkOption { }; - prefixLength = mkOption { - default = 24; - }; - gateway = mkOption { default = "185.206.232.1"; }; - }; + 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"; + }; - ipv6 = { - address = mkOption { }; - prefixLength = mkOption { default = 64; }; - gateway = mkOption { default = "2a00:51c0:12:1201::1"; }; - }; - - hostPublicKey = mkOption { + ipv4 = { + address = mkOption { description = '' - The host public key of the machine. It is used in particular - to filter Age secrets and only keep the relevant ones. + 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. + ''; }; }; }