30 lines
921 B
Nix
30 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}";
|
|
};
|
|
};
|
|
}
|