tailcfg,net/routecheck: add NodeAttrClientSideReachabilityRouteCheck (#20169)
This patch adds a new `client-side-reachability-routecheck` node attribute to allow admins to selectively enable background routecheck probing on trial nodes. The current implementation is still experimental. It adds the routecheck.IsEnabled helper to check for the new `client-side-reachability-routecheck` node attribute alongside the existing `client-side-reachability` node attribute in this node’s self capabilities. This allows administrators to turn on and off this feature by editing the policy file. It adds the `TS_DEBUG_FORCE_CLIENT_SIDE_REACHABILITY_ROUTECHECK` environment variable which can be set to override the policy file. When set to `true`, it forcibly enables this feature. And when set to `false`, it forcibly disables it. Updates #17366 Updates tailscale/corp#33033 Signed-off-by: Simon Law <sfllaw@tailscale.com>
This commit is contained in:
+11
-1
@@ -2756,7 +2756,17 @@ const (
|
||||
// reachability itself when choosing connectors. When absent, the
|
||||
// default behavior is to trust the control plane when it claims that a
|
||||
// node is no longer online, but that is not a reliable signal.
|
||||
NodeAttrClientSideReachability = "client-side-reachability"
|
||||
//
|
||||
// It is temporary and will be ignored once its behaviour becomes the default.
|
||||
NodeAttrClientSideReachability NodeCapability = "client-side-reachability"
|
||||
|
||||
// NodeAttrClientSideReachabilityRouteCheck configures the node to use
|
||||
// the routecheck subsystem to determine reachability when choosing
|
||||
// connectors. This relies on [NodeAttrClientSideReachability] being set.
|
||||
// See tailscale/tailscale#17367.
|
||||
//
|
||||
// It is temporary and will be ignored once its behaviour becomes the default.
|
||||
NodeAttrClientSideReachabilityRouteCheck NodeCapability = "client-side-reachability-routecheck"
|
||||
|
||||
// NodeAttrDefaultAutoUpdate advertises the default node auto-update setting
|
||||
// for this tailnet. The node is free to opt-in or out locally regardless of
|
||||
|
||||
Reference in New Issue
Block a user