clanServices/zerotier: use clanLib.getPublicValue
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user