Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9918859705 |
@@ -51,12 +51,23 @@ func (m *Master) Deploy(ctx context.Context, req *mcpv1.MasterDeployRequest) (*m
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the node's Tailnet IP from its address (host:port).
|
// Resolve the node's address to an IP for DNS registration.
|
||||||
|
// Node addresses may be Tailscale DNS names (e.g., rift.scylla-hammerhead.ts.net:9444)
|
||||||
|
// but MCNS needs an IP address for A records.
|
||||||
nodeHost, _, err := net.SplitHostPort(node.Address)
|
nodeHost, _, err := net.SplitHostPort(node.Address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Error = fmt.Sprintf("invalid node address %q: %v", node.Address, err)
|
resp.Error = fmt.Sprintf("invalid node address %q: %v", node.Address, err)
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
// If nodeHost is not an IP, resolve it.
|
||||||
|
if net.ParseIP(nodeHost) == nil {
|
||||||
|
ips, lookupErr := net.LookupHost(nodeHost)
|
||||||
|
if lookupErr != nil || len(ips) == 0 {
|
||||||
|
m.Logger.Warn("cannot resolve node address", "host", nodeHost, "err", lookupErr)
|
||||||
|
} else {
|
||||||
|
nodeHost = ips[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Step 2: Forward deploy to the agent.
|
// Step 2: Forward deploy to the agent.
|
||||||
client, err := m.Pool.Get(nodeName)
|
client, err := m.Pool.Get(nodeName)
|
||||||
|
|||||||
Reference in New Issue
Block a user