zerotier: use configuration file instead to set the network name
This commit is contained in:
@@ -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 = { };
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user