mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-08 14:14:52 +00:00
feat(dns): implement DNS names for machines in m.internal (#359)
* feat(dns): implement extra dns names for machine in m.internal This implements <machinename>.m.internal and <machineid>.m.internal as names that can be queried in the cluster. Listing all machines/services is not implemented, this may come later. Fixes: #340 Signed-off-by: Miek Gieben <miek@miek.nl> * Implement getting all machine address A query for m.internal returns all ip address There is no overflow check Signed-off-by: Miek Gieben <miek@miek.nl> --------- Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
1 parent
5e26cfbead
commit
0cdf721a6a
4 files changed
+133
-16
No files matched your search
@@ -293,13 +293,13 @@ func (s *Server) forwardRequest(req *dns.Msg, proto string) (*dns.Msg, error) {
|
||||
// handleAQuery processes an A query for the internal domain and returns A records for the requested name.
|
||||
// The internal domain suffix is already stripped from the name. An empty list is returned if no records are found.
|
||||
func (s *Server) handleAQuery(name string) []dns.RR {
|
||||
serviceName, mode := extractModeFromDomain(trimInternalDomain(name))
|
||||
ips := s.resolver.Resolve(serviceName)
|
||||
unname, mode := extractModeFromDomain(trimInternalDomain(name))
|
||||
ips := s.resolver.Resolve(unname)
|
||||
if len(ips) == 0 {
|
||||
s.log.Debug("Failed to resolve service name.", "service", serviceName)
|
||||
s.log.Debug("Failed to resolve internal name.", "name", name)
|
||||
return nil
|
||||
}
|
||||
s.log.Debug("Resolved service name.", "service", serviceName, "ips", ips)
|
||||
s.log.Debug("Resolved service internal name.", "name", name, "ips", ips)
|
||||
|
||||
if len(ips) > 1 {
|
||||
// Shuffle the IPs to approximate round-robin.
|
||||
|
||||
Reference in new issue
Block a user