feat: add non local machines to snowfield

This commit is contained in:
Julien Malka 2024-08-14 13:54:13 +02:00
parent 9407534cd3
commit 58a3dd5088
Signed by: Luj
GPG key ID: 6FC74C847011FD83
2 changed files with 60 additions and 72 deletions

View file

@ -10,6 +10,8 @@ let
{ machine.meta = raw; }
];
}).config.machine.meta;
non_local_machines = (import ./snowfield.nix).machines;
in
rec {
importConfig =
@ -52,15 +54,17 @@ rec {
mapAttrsWithMerge = f: set: listToAttrsWithMerge (map (attr: f attr set.${attr}) (attrNames set));
snowfield = mapAttrs (
name: _value:
let
machineF = import (../machines + "/${name}/default.nix");
in
evalMeta
(machineF ((mapAttrs (_: _: null) (builtins.functionArgs machineF)) // { inherit inputs; }))
.machine.meta
) (final.filterAttrs (_: v: v == "directory") (readDir ../machines));
snowfield =
(mapAttrs (
name: _value:
let
machineF = import (../machines + "/${name}/default.nix");
in
evalMeta
(machineF ((mapAttrs (_: _: null) (builtins.functionArgs machineF)) // { inherit inputs; }))
.machine.meta
) (final.filterAttrs (_: v: v == "directory") (readDir ../machines)))
// mapAttrs (_: evalMeta) non_local_machines;
dns = import ./dns.nix {
lib = final;

View file

@ -1,102 +1,88 @@
{
# Metadata of machines whose configuration is not handled by this repository
machines = {
doma-backups = {
subdomains = [ "doma-backups.julienmalka.me" ];
ipv4 = {
public = "82.67.34.230";
local = "192.168.0.250";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:6b86:c2c:2141:6702";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.0.250";
public.ipv6 = "2a01:e0a:de4:a0e1:6b86:c2c:2141:6702";
};
};
proxmox-nixos-infra = {
subdomains = [ "proxmox-nixos-update-logs.saumon.network" ];
ipv4 = {
public = "82.67.34.230";
local = "192.168.0.177";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:eb2:caa1::78";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.0.177";
public.ipv6 = "2a01:e0a:de4:a0e1:eb2:caa1::78";
};
};
doma-zulip = {
subdomains = [ "zulip.julienmalka.me" ];
ipv4 = {
public = "82.67.34.230";
local = "192.168.0.187";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:6830:ddff:fe52:a444";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.0.187";
public.ipv6 = "2a01:e0a:de4:a0e1:6830:ddff:fe52:a444";
};
};
pve1 = {
ipv4 = {
public = "82.67.34.230";
local = "192.168.1.1";
vpn = "100.100.45.3";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:d250:99ff:fefa:b62";
vpn = "fd7a:115c:a1e0::3";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.1.1";
vpn.ipv4 = "100.100.45.3";
public.ipv6 = "2a01:e0a:de4:a0e1:d250:99ff:fefa:b62";
vpn.ipv6 = "fd7a:115c:a1e0::3";
};
sshPort = 22;
sshUser = "root";
};
pve2 = {
ipv4 = {
public = "82.67.34.230";
local = "192.168.1.2";
vpn = "100.100.45.15";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:aaa1:59ff:fec7:1d6";
vpn = "fd7a:115c:a1e0::f";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.1.2";
vpn.ipv4 = "100.100.45.15";
public.ipv6 = "2a01:e0a:de4:a0e1:aaa1:59ff:fec7:1d6";
vpn.ipv6 = "fd7a:115c:a1e0::f";
};
sshPort = 22;
sshUser = "root";
};
pve3 = {
ipv4 = {
public = "82.67.34.230";
local = "192.168.1.3";
vpn = "100.100.45.16";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:aaa1:59ff:fec1:aa10";
vpn = "fd7a:115c:a1e0::10";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.1.3";
vpn.ipv4 = "100.100.45.16";
public.ipv6 = "2a01:e0a:de4:a0e1:aaa1:59ff:fec1:aa10";
vpn.ipv6 = "fd7a:115c:a1e0::10";
};
sshPort = 22;
sshUser = "root";
};
pve4 = {
ipv4 = {
public = "82.67.34.230";
local = "192.168.1.4";
vpn = "100.100.45.17";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:d250:99ff:fefa:b76";
vpn = "fd7a:115c:a1e0::11";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.1.4";
vpn.ipv4 = "100.100.45.17";
public.ipv6 = "2a01:e0a:de4:a0e1:d250:99ff:fefa:b76";
vpn.ipv6 = "fd7a:115c:a1e0::11";
};
sshPort = 22;
sshUser = "root";
};
saves-paris = {
subdomains = [ "saves-paris.luj" ];
ipv4 = {
public = "82.67.34.230";
local = "192.168.4.5";
vpn = "100.100.45.4";
};
ipv6 = {
public = "2a01:e0a:de4:a0e1:3af3:abff:fe6a:1f54";
vpn = "fd7a:115c:a1e0::4";
ips = {
public.ipv4 = "82.67.34.230";
local.ipv4 = "192.168.4.5";
vpn.ipv4 = "100.100.45.4";
public.ipv6 = "2a01:e0a:de4:a0e1:3af3:abff:fe6a:1f54";
vpn.ipv6 = "fd7a:115c:a1e0::4";
};
sshPort = 22;
sshUser = "root";
@ -104,11 +90,9 @@
saves-lyon = {
subdomains = [ "saves-lyon.luj" ];
ipv4 = {
vpn = "100.100.45.20";
};
ipv6 = {
vpn = "fd7a:115c:a1e0::14";
ips = {
vpn.ipv4 = "100.100.45.20";
vpn.ipv6 = "fd7a:115c:a1e0::14";
};
sshPort = 22;
sshUser = "root";