{lib, ...}: let
hostnameIPv4 = {
vm = {
"sqbuilds" = "10.1.1.50";
};
lxc = {
"dns" = "10.1.2.3";
"metrics" = "10.1.2.5";
"proxy" = "10.1.2.10";
"auth" = "10.1.2.12";
"cloud" = "10.1.2.15";
"social" = "10.1.2.17";
};
};
# getIPv4 "profile" "hostname"
getIPv4 = profile: hostname: hostnameIPv4.${profile}.${hostname};
# getHostnames "profile"
getHostnames = profile: builtins.attrNames hostnameIPv4.${profile};
# getDNSEntries "profile"
getDNSEntries = profile:
lib.attrsets.mapAttrs'
(name: value: lib.attrsets.nameValuePair (name + ".home.arpa") value)
hostnameIPv4.${profile};
in {
getIPv4 = getIPv4;
getHostnames = getHostnames;
getDNSEntries = getDNSEntries;
}