31 lines
921 B
Nix
31 lines
921 B
Nix
|
# --------------------------------------------------------------------------------
|
||
|
#
|
||
|
# collect all server information and generate files which get picked up
|
||
|
# by 02-build to deploy the machines properly.
|
||
|
#
|
||
|
# This makes it possible to deploy VPNs like tinc and wireguard.
|
||
|
#
|
||
|
# --------------------------------------------------------------------------------
|
||
|
|
||
|
{ config, lib, pkgs, ... }: {
|
||
|
resource.local_file = {
|
||
|
nixosMachines = {
|
||
|
content = with lib;
|
||
|
let
|
||
|
serverPart = name: ''
|
||
|
${name} = {
|
||
|
host = "''${ hcloud_server.${name}.ipv4_address }";
|
||
|
user = "root";
|
||
|
};
|
||
|
'';
|
||
|
allServerParts = map serverPart (attrNames config.hcloud.server);
|
||
|
in ''
|
||
|
{
|
||
|
${concatStringsSep "\n" allServerParts}
|
||
|
}
|
||
|
'';
|
||
|
filename = "${toString ../../02-build/generated/nixos-machines.nix}";
|
||
|
};
|
||
|
};
|
||
|
}
|