mirror of
https://github.com/juanfont/headscale.git
synced 2026-07-07 16:40:21 +09:00
policy/v2: add exit node auto-approval compat tests
15 scenarios (ea1-ea15) covering exitNode field, routes map, both, wrong tags, dual nodes, and baselines. SaaS only approves exit routes via exitNode field. Exit routes in the routes map are ignored for exit approval but still wildcard subnet approval. Headscale already matches this behavior. Remove IsExitRoute skip from TestRoutesCompatAutoApproval. Updates #3157 Updates #3178
This commit is contained in:
@@ -42,7 +42,6 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
"go4.org/netipx"
|
||||
"gorm.io/gorm"
|
||||
"tailscale.com/net/tsaddr"
|
||||
"tailscale.com/tailcfg"
|
||||
)
|
||||
|
||||
@@ -774,22 +773,6 @@ func TestRoutesCompatAutoApproval(t *testing.T) {
|
||||
for _, routeStr := range nodeDef.RoutableIPs {
|
||||
route := netip.MustParsePrefix(routeStr)
|
||||
|
||||
// Skip exit routes (0.0.0.0/0, ::/0).
|
||||
// Tailscale SaaS stores exit routes
|
||||
// under autoApprovers.routes alongside
|
||||
// regular subnets, while headscale uses
|
||||
// a separate autoApprovers.exitNode
|
||||
// field. NodeCanApproveRoute checks the
|
||||
// exitSet (from exitNode) first and
|
||||
// never reaches the autoApproveMap
|
||||
// (from routes), causing a known format
|
||||
// mismatch. This is not a bug — just a
|
||||
// structural difference in where exit
|
||||
// routes are declared.
|
||||
if tsaddr.IsExitRoute(route) {
|
||||
continue
|
||||
}
|
||||
|
||||
wantApproved := approvedSet[route]
|
||||
gotApproved := pm.NodeCanApproveRoute(
|
||||
node.View(), route,
|
||||
|
||||
+14553
File diff suppressed because it is too large
Load Diff
+14399
File diff suppressed because it is too large
Load Diff
+14555
File diff suppressed because it is too large
Load Diff
+14388
File diff suppressed because it is too large
Load Diff
Vendored
+14494
File diff suppressed because it is too large
Load Diff
+14204
File diff suppressed because it is too large
Load Diff
+14459
File diff suppressed because it is too large
Load Diff
+14459
File diff suppressed because it is too large
Load Diff
+14225
File diff suppressed because it is too large
Load Diff
Vendored
+14553
File diff suppressed because it is too large
Load Diff
Vendored
+14205
File diff suppressed because it is too large
Load Diff
+14461
File diff suppressed because it is too large
Load Diff
+14449
File diff suppressed because it is too large
Load Diff
+14461
File diff suppressed because it is too large
Load Diff
Vendored
+14193
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user