revert Merge pull request 'Remove clanModules/*' (#4202) from remove-modules into main Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/4202 See: https://git.clan.lol/clan/clan-core/issues/4365 Not all modules are migrated. If they are not migrated, we need to write migration docs and please display the link to the migration docs
59 lines
1.6 KiB
Nix
59 lines
1.6 KiB
Nix
{ lib, config, ... }:
|
|
let
|
|
cfg = config.clan.data-mesher;
|
|
|
|
dmLib = import ../lib.nix lib;
|
|
in
|
|
{
|
|
imports = [
|
|
../shared.nix
|
|
];
|
|
|
|
options.clan.data-mesher = {
|
|
network = {
|
|
tld = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = (config.networking.domain or "clan");
|
|
description = "Top level domain to use for the network";
|
|
};
|
|
|
|
hostTTL = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "672h"; # 28 days
|
|
example = "24h";
|
|
description = "The TTL for hosts in the network, in the form of a Go time.Duration";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
|
|
warnings = [
|
|
"The clan.admin module is deprecated and will be removed on 2025-07-15.
|
|
Please migrate to user-maintained configuration or the new equivalent clan services
|
|
(https://docs.clan.lol/reference/clanServices)."
|
|
];
|
|
|
|
services.data-mesher.initNetwork =
|
|
let
|
|
# for a given machine, read it's public key and remove any new lines
|
|
readHostKey =
|
|
machine:
|
|
let
|
|
path = "${config.clan.core.settings.directory}/vars/per-machine/${machine}/data-mesher-host-key/public_key/value";
|
|
in
|
|
builtins.elemAt (lib.splitString "\n" (builtins.readFile path)) 1;
|
|
in
|
|
{
|
|
enable = true;
|
|
keyPath = config.clan.core.vars.generators.data-mesher-network-key.files.private_key.path;
|
|
|
|
tld = cfg.network.tld;
|
|
hostTTL = cfg.network.hostTTL;
|
|
|
|
# admin and signer host public keys
|
|
signingKeys = builtins.map readHostKey (dmLib.machines config).bootstrap;
|
|
};
|
|
};
|
|
}
|