From 449b8842311b76e5709d8b904852ab72a37fb757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 11 Jan 2024 14:55:40 +0100 Subject: [PATCH] zerotier: use configuration file instead to set the network name --- nixosModules/clanCore/zerotier/default.nix | 10 ++++++++-- nixosModules/clanCore/zerotier/generate.py | 7 +++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/nixosModules/clanCore/zerotier/default.nix b/nixosModules/clanCore/zerotier/default.nix index 5dd56b542..12208ef71 100644 --- a/nixosModules/clanCore/zerotier/default.nix +++ b/nixosModules/clanCore/zerotier/default.nix @@ -15,7 +15,7 @@ let ipAssignmentPools = [ ]; mtu = 2800; multicastLimit = 32; - name = ""; + name = cfg.name; uwid = cfg.networkId; objtype = "network"; private = !cfg.controller.public; @@ -52,6 +52,13 @@ in zerotier networking id ''; }; + name = lib.mkOption { + type = lib.types.str; + default = config.clanCore.clanName; + description = '' + zerotier network name + ''; + }; subnet = lib.mkOption { type = lib.types.nullOr lib.types.str; readOnly = true; @@ -165,7 +172,6 @@ in environment.systemPackages = [ config.clanCore.clanPkgs.zerotier-members ]; }) (lib.mkIf (config.clanCore.secretsUploadDirectory != null && !cfg.controller.enable && cfg.networkId != null) { - clanCore.secrets.zerotier = { facts.zerotier-ip = { }; facts.zerotier-meshname = { }; diff --git a/nixosModules/clanCore/zerotier/generate.py b/nixosModules/clanCore/zerotier/generate.py index 9dc86b055..f459d2184 100644 --- a/nixosModules/clanCore/zerotier/generate.py +++ b/nixosModules/clanCore/zerotier/generate.py @@ -142,9 +142,9 @@ class NetworkController: # TODO: allow merging more network configuration here -def create_network_controller(name: str="") -> NetworkController: +def create_network_controller() -> NetworkController: with zerotier_controller() as controller: - network = controller.create_network({"name": name}) + network = controller.create_network() return NetworkController(network["nwid"], controller.identity) @@ -199,14 +199,13 @@ def main() -> None: parser.add_argument("--meshname", type=Path, required=True) parser.add_argument("--identity-secret", type=Path, required=True) parser.add_argument("--network-id", type=str, required=False) - parser.add_argument("--network-name", type=str, default="", required=False) args = parser.parse_args() match args.mode: case "network": if args.network_id is None: raise ValueError("network_id parameter is required") - controller = create_network_controller(name=args.network_name) + controller = create_network_controller() identity = controller.identity network_id = controller.networkid Path(args.network_id).write_text(network_id)