let ip = ./ip.dhall let Host = ./Host.dhall let servers = ./servers.dhall let render = \(host : Host.Host) -> let domain = "sailmaker.fenix.lgbt" let renderAddress = \(address : Host.Address) -> merge { ip = \(ip : ip.Address) -> ip.address , dhcp = "${host.name}.${domain}" } address in { ansible_host = renderAddress host.address } in { servers.hosts = { reason = render servers.reason, nomadix = render servers.nomadix } , appliances.hosts.ipowerswitch = render servers.ipowerswitch , virtual.hosts = { pihole = render servers.pihole , wireguard = render servers.wireguard , lldap = render servers.lldap , traefik = render servers.traefik , homeassistant = render servers.homeassistant , mqtt = render servers.mqtt , heimdall = render servers.heimdall } , sailmaker.children = { servers = {}, appliances = {}, virtual = {} } }