From a5cd36e845d4e7bc53dee5e55ab465c31e55e7d3 Mon Sep 17 00:00:00 2001 From: pinpox Date: Wed, 22 Oct 2025 23:18:00 +0200 Subject: [PATCH] clanServices/zerotier: use clanLib.getPublicValue --- clanServices/zerotier/default.nix | 27 +++++++++++++++++---------- clanServices/zerotier/shared.nix | 29 ++++++++++++++++++----------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/clanServices/zerotier/default.nix b/clanServices/zerotier/default.nix index 89e075818..770023f4b 100644 --- a/clanServices/zerotier/default.nix +++ b/clanServices/zerotier/default.nix @@ -1,4 +1,7 @@ -{ ... }: +{ + clanLib, + ... +}: { _class = "clan.service"; manifest.name = "clan-core/zerotier"; @@ -39,6 +42,7 @@ imports = [ (import ./shared.nix { inherit + clanLib instanceName roles config @@ -90,6 +94,7 @@ imports = [ (import ./shared.nix { inherit + clanLib instanceName roles config @@ -142,6 +147,7 @@ imports = [ (import ./shared.nix { inherit + clanLib instanceName roles config @@ -160,15 +166,16 @@ ); networkIps = builtins.foldl' ( ips: name: - if - builtins.pathExists "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value" - then - ips - ++ [ - (builtins.readFile "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value") - ] - else - ips + let + ztIp = clanLib.vars.getPublicValue { + flake = config.clan.core.settings.directory; + machine = name; + generator = "zerotier"; + file = "zerotier-ip"; + default = null; + }; + in + if ztIp != null then ips ++ [ ztIp ] else ips ) [ ] machines; allHostIPs = settings.allowedIps ++ networkIps; in diff --git a/clanServices/zerotier/shared.nix b/clanServices/zerotier/shared.nix index da70d0214..678ddae00 100644 --- a/clanServices/zerotier/shared.nix +++ b/clanServices/zerotier/shared.nix @@ -1,4 +1,5 @@ { + clanLib, lib, config, pkgs, @@ -8,20 +9,26 @@ }: let controllerMachine = builtins.head (lib.attrNames roles.controller.machines or { }); - networkIdPath = "${config.clan.core.settings.directory}/vars/per-machine/${controllerMachine}/zerotier/zerotier-network-id/value"; - networkId = if builtins.pathExists networkIdPath then builtins.readFile networkIdPath else null; + networkId = clanLib.vars.getPublicValue { + flake = config.clan.core.settings.directory; + machine = controllerMachine; + generator = "zerotier"; + file = "zerotier-network-id"; + default = null; + }; moons = lib.attrNames (roles.moon.machines or { }); moonIps = builtins.foldl' ( ips: name: - if - builtins.pathExists "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value" - then - ips - ++ [ - (builtins.readFile "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value") - ] - else - ips + let + moonIp = clanLib.vars.getPublicValue { + flake = config.clan.core.settings.directory; + machine = name; + generator = "zerotier"; + file = "zerotier-ip"; + default = null; + }; + in + if moonIp != null then ips ++ [ moonIp ] else ips ) [ ] moons; in {