zerotier: use configuration file instead to set the network name

This commit is contained in:
Jörg Thalheim
2024-01-11 14:55:40 +01:00
parent 7e644a2054
commit 449b884231
2 changed files with 11 additions and 6 deletions

View File

@@ -15,7 +15,7 @@ let
ipAssignmentPools = [ ]; ipAssignmentPools = [ ];
mtu = 2800; mtu = 2800;
multicastLimit = 32; multicastLimit = 32;
name = ""; name = cfg.name;
uwid = cfg.networkId; uwid = cfg.networkId;
objtype = "network"; objtype = "network";
private = !cfg.controller.public; private = !cfg.controller.public;
@@ -52,6 +52,13 @@ in
zerotier networking id zerotier networking id
''; '';
}; };
name = lib.mkOption {
type = lib.types.str;
default = config.clanCore.clanName;
description = ''
zerotier network name
'';
};
subnet = lib.mkOption { subnet = lib.mkOption {
type = lib.types.nullOr lib.types.str; type = lib.types.nullOr lib.types.str;
readOnly = true; readOnly = true;
@@ -165,7 +172,6 @@ in
environment.systemPackages = [ config.clanCore.clanPkgs.zerotier-members ]; environment.systemPackages = [ config.clanCore.clanPkgs.zerotier-members ];
}) })
(lib.mkIf (config.clanCore.secretsUploadDirectory != null && !cfg.controller.enable && cfg.networkId != null) { (lib.mkIf (config.clanCore.secretsUploadDirectory != null && !cfg.controller.enable && cfg.networkId != null) {
clanCore.secrets.zerotier = { clanCore.secrets.zerotier = {
facts.zerotier-ip = { }; facts.zerotier-ip = { };
facts.zerotier-meshname = { }; facts.zerotier-meshname = { };

View File

@@ -142,9 +142,9 @@ class NetworkController:
# TODO: allow merging more network configuration here # TODO: allow merging more network configuration here
def create_network_controller(name: str="") -> NetworkController: def create_network_controller() -> NetworkController:
with zerotier_controller() as controller: with zerotier_controller() as controller:
network = controller.create_network({"name": name}) network = controller.create_network()
return NetworkController(network["nwid"], controller.identity) return NetworkController(network["nwid"], controller.identity)
@@ -199,14 +199,13 @@ def main() -> None:
parser.add_argument("--meshname", type=Path, required=True) parser.add_argument("--meshname", type=Path, required=True)
parser.add_argument("--identity-secret", 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-id", type=str, required=False)
parser.add_argument("--network-name", type=str, default="", required=False)
args = parser.parse_args() args = parser.parse_args()
match args.mode: match args.mode:
case "network": case "network":
if args.network_id is None: if args.network_id is None:
raise ValueError("network_id parameter is required") raise ValueError("network_id parameter is required")
controller = create_network_controller(name=args.network_name) controller = create_network_controller()
identity = controller.identity identity = controller.identity
network_id = controller.networkid network_id = controller.networkid
Path(args.network_id).write_text(network_id) Path(args.network_id).write_text(network_id)