clanServices/zerotier: use clanLib.getPublicValue
This commit is contained in:
@@ -1,4 +1,7 @@
|
|||||||
{ ... }:
|
{
|
||||||
|
clanLib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
_class = "clan.service";
|
_class = "clan.service";
|
||||||
manifest.name = "clan-core/zerotier";
|
manifest.name = "clan-core/zerotier";
|
||||||
@@ -39,6 +42,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
(import ./shared.nix {
|
(import ./shared.nix {
|
||||||
inherit
|
inherit
|
||||||
|
clanLib
|
||||||
instanceName
|
instanceName
|
||||||
roles
|
roles
|
||||||
config
|
config
|
||||||
@@ -90,6 +94,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
(import ./shared.nix {
|
(import ./shared.nix {
|
||||||
inherit
|
inherit
|
||||||
|
clanLib
|
||||||
instanceName
|
instanceName
|
||||||
roles
|
roles
|
||||||
config
|
config
|
||||||
@@ -142,6 +147,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
(import ./shared.nix {
|
(import ./shared.nix {
|
||||||
inherit
|
inherit
|
||||||
|
clanLib
|
||||||
instanceName
|
instanceName
|
||||||
roles
|
roles
|
||||||
config
|
config
|
||||||
@@ -160,15 +166,16 @@
|
|||||||
);
|
);
|
||||||
networkIps = builtins.foldl' (
|
networkIps = builtins.foldl' (
|
||||||
ips: name:
|
ips: name:
|
||||||
if
|
let
|
||||||
builtins.pathExists "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value"
|
ztIp = clanLib.vars.getPublicValue {
|
||||||
then
|
flake = config.clan.core.settings.directory;
|
||||||
ips
|
machine = name;
|
||||||
++ [
|
generator = "zerotier";
|
||||||
(builtins.readFile "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value")
|
file = "zerotier-ip";
|
||||||
]
|
default = null;
|
||||||
else
|
};
|
||||||
ips
|
in
|
||||||
|
if ztIp != null then ips ++ [ ztIp ] else ips
|
||||||
) [ ] machines;
|
) [ ] machines;
|
||||||
allHostIPs = settings.allowedIps ++ networkIps;
|
allHostIPs = settings.allowedIps ++ networkIps;
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
clanLib,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
@@ -8,20 +9,26 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
controllerMachine = builtins.head (lib.attrNames roles.controller.machines or { });
|
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 = clanLib.vars.getPublicValue {
|
||||||
networkId = if builtins.pathExists networkIdPath then builtins.readFile networkIdPath else null;
|
flake = config.clan.core.settings.directory;
|
||||||
|
machine = controllerMachine;
|
||||||
|
generator = "zerotier";
|
||||||
|
file = "zerotier-network-id";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
moons = lib.attrNames (roles.moon.machines or { });
|
moons = lib.attrNames (roles.moon.machines or { });
|
||||||
moonIps = builtins.foldl' (
|
moonIps = builtins.foldl' (
|
||||||
ips: name:
|
ips: name:
|
||||||
if
|
let
|
||||||
builtins.pathExists "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value"
|
moonIp = clanLib.vars.getPublicValue {
|
||||||
then
|
flake = config.clan.core.settings.directory;
|
||||||
ips
|
machine = name;
|
||||||
++ [
|
generator = "zerotier";
|
||||||
(builtins.readFile "${config.clan.core.settings.directory}/vars/per-machine/${name}/zerotier/zerotier-ip/value")
|
file = "zerotier-ip";
|
||||||
]
|
default = null;
|
||||||
else
|
};
|
||||||
ips
|
in
|
||||||
|
if moonIp != null then ips ++ [ moonIp ] else ips
|
||||||
) [ ] moons;
|
) [ ] moons;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user