cmd/k8s-operator,k8s-opeerator: include Connector's MagicDNS name and tailnet IPs in status (#12359)

Add new fields TailnetIPs and Hostname to Connector Status. These
contain the addresses of the Tailscale node that the operator created
for the Connector to aid debugging.

Fixes #12214

Signed-off-by: Tom Proctor <tomhjp@users.noreply.github.com>
This commit is contained in:
Tom Proctor
2024-06-07 17:22:19 +01:00
committed by GitHub
parent 3a6d3f1a5b
commit 23e26e589f
7 changed files with 85 additions and 3 deletions

View File

@@ -178,6 +178,13 @@ ConnectorStatus describes the status of the Connector. This is set and managed b
List of status conditions to indicate the status of the Connector. Known condition types are `ConnectorReady`.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>hostname</b></td>
<td>string</td>
<td>
Hostname is the fully qualified domain name of the Connector node. If MagicDNS is enabled in your tailnet, it is the MagicDNS name of the node.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>isExitNode</b></td>
<td>boolean</td>
@@ -192,6 +199,13 @@ ConnectorStatus describes the status of the Connector. This is set and managed b
SubnetRoutes are the routes currently exposed to tailnet via this Connector instance.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>tailnetIPs</b></td>
<td>[]string</td>
<td>
TailnetIPs is the set of tailnet IP addresses (both IPv4 and IPv6) assigned to the Connector node.<br/>
</td>
<td>false</td>
</tr></tbody>
</table>

View File

@@ -156,6 +156,15 @@ type ConnectorStatus struct {
// IsExitNode is set to true if the Connector acts as an exit node.
// +optional
IsExitNode bool `json:"isExitNode"`
// TailnetIPs is the set of tailnet IP addresses (both IPv4 and IPv6)
// assigned to the Connector node.
// +optional
TailnetIPs []string `json:"tailnetIPs,omitempty"`
// Hostname is the fully qualified domain name of the Connector node.
// If MagicDNS is enabled in your tailnet, it is the MagicDNS name of the
// node.
// +optional
Hostname string `json:"hostname,omitempty"`
}
// ConnectorCondition contains condition information for a Connector.

View File

@@ -125,6 +125,11 @@ func (in *ConnectorStatus) DeepCopyInto(out *ConnectorStatus) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.TailnetIPs != nil {
in, out := &in.TailnetIPs, &out.TailnetIPs
*out = make([]string, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectorStatus.