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 0e62348d72
commit 7bf76eea06
2 changed files with 11 additions and 6 deletions

View File

@ -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 = { };

View File

@ -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)