tailscale/ipn
M. J. Fromberger 211ef67222
tailcfg,ipn/ipnlocal: regulate netmap caching via a node attribute (#19117)
Add a new tailcfg.NodeCapability (NodeAttrCacheNetworkMaps) to control whether
a node with support for caching network maps will attempt to do so. Update the
capability version to reflect this change (mainly as a safety measure, as the
control plane does not currently need to know about it).

Use the presence (or absence) of the node attribute to decide whether to create
and update a netmap cache for each profile. If caching is disabled, discard the
cached data; this allows us to use the presence of a cached netmap as an
indicator it should be used (unless explicitly overridden). Add a test that
verifies the attribute is respected. Reverse the sense of the environment knob
to be true by default, with an override to disable caching at the client
regardless what the node attribute says.

Move the creation/update of the netmap cache (when enabled) until after
successfully applying the network map, to reduce the possibility that we will
cache (and thus reuse after a restart) a network map that fails to correctly
configure the client.

Updates #12639

Change-Id: I1df4dd791fdb485c6472a9f741037db6ed20c47e
Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
2026-04-01 15:02:53 -07:00
..
auditlog all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
conffile all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
desktop all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipnauth all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipnext feature/conn25,ipn/ipnext,ipn/ipnlocal: add ExtraRouterConfigRoutes hook 2026-03-25 19:28:33 -07:00
ipnlocal tailcfg,ipn/ipnlocal: regulate netmap caching via a node attribute (#19117) 2026-04-01 15:02:53 -07:00
ipnserver ipn/ipnserver: use peercreds for actor.Username on freebsd (for Taildrive) 2026-03-24 20:35:56 -07:00
ipnstate types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
lapitest types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
localapi ipn,tka: improve Tailnet Lock logs 2026-04-01 17:08:12 +01:00
policy all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
store all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
backend_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
backend.go ipn,ipn/local: broadcast ClientVersion if AutoUpdate.Check (#19107) 2026-03-24 15:06:20 -07:00
conf_test.go ipn: reject advertised routes with non-address bits set (#18649) 2026-03-20 10:10:43 -07:00
conf.go ipn: fix the typo causing NoSNAT always set to true (#19110) 2026-03-24 16:41:58 -04:00
doc.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipn_clone.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
ipn_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ipn_view.go tailcfg: reintroduce UserProfile.Groups 2026-03-09 11:08:45 +00:00
prefs_test.go ipn, cmd/tailscale/cli: allow setting FQDN sans dot as an exit node 2026-04-01 20:42:35 +01:00
prefs.go ipn, cmd/tailscale/cli: allow setting FQDN sans dot as an exit node 2026-04-01 20:42:35 +01:00
serve_expand_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
serve_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
serve.go all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
store_test.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
store.go all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00