Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
874 commits
Select commit Hold shift + click to select a range
eb3448d
install.sh - fix DNF 5 detection on all locales (#15325)
RaulWhite Mar 28, 2025
04cee77
ipn/ipnlocal: unconfigure wgengine when switching profiles
nickkhyl Mar 14, 2025
254183b
cmd/tailscaled,ipn/{auditlog,ipnlocal},tsd: omit auditlog unless expl…
nickkhyl Mar 24, 2025
42d9b7e
cmd/tailscaled: make embedded CLI run earlier, support triggering via…
bradfitz Mar 28, 2025
8cb9714
cmd/k8s-operator,k8s-operator: enable HA Ingress again. (#15453)
irbekrm Mar 28, 2025
30ba9aa
cmd/vnet: add wsproxy mode
bradfitz Mar 28, 2025
79752e0
ipn/ipnlocal: return old hwaddrs if missing
kradalby Mar 11, 2025
f2a4c96
ipn/ipnlocal: add debug logging to initPeerAPIListener
oxtoacart Mar 26, 2025
4e50c4f
net/netcheck: use NoMeasureNoHome in another spot
bradfitz Mar 31, 2025
5462155
net/netmon: always remember ifState as old state, even on minor changes
bradfitz Mar 31, 2025
aba5fab
client/systray: use ico image format for windows
willnorris Apr 1, 2025
fe6c75f
net/udprelay: start of UDP relay server implementation (#15480)
jwhited Apr 1, 2025
f85fd05
wgengine: return explicit lo0 for loopback addrs on sandboxed macOS (…
barnstar Apr 1, 2025
2513f38
cmd/natc: fix ip allocation runtime
raggi Mar 25, 2025
97e6c2c
.github: Bump github/codeql-action from 3.28.11 to 3.28.13 (#15477)
dependabot[bot] Apr 1, 2025
8456bad
go.toolchain.rev: bump for Go 1.24.2 + plan9 fixes
bradfitz Apr 1, 2025
03ac256
tailcfg: add VIPServiceView
sailorfrag Apr 1, 2025
a988bdd
net/tstun: add Plan 9 'tun' support
bradfitz Apr 1, 2025
0a08bf2
wgengine/magicsock: avoid some log spam on Plan 9
bradfitz Apr 1, 2025
69fdfe1
wgengine/router: add Plan 9 implementation
bradfitz Apr 1, 2025
c61b37a
safesocket: fix Plan 9 implementation
bradfitz Apr 1, 2025
87e315d
net/netmon: disable time jump monitoring on Plan 9
bradfitz Apr 1, 2025
f0082ed
net/tsdial: tolerate empty default route on Plan 9
bradfitz Apr 1, 2025
bc09e30
cmd/tailscaled: let net/netmon know what our TUN interface is
bradfitz Apr 1, 2025
8ab4979
cmd/tailscaled: make state dir on Plan 9
bradfitz Apr 1, 2025
9851fe3
types/logger, logpolicy: disable rate limiting, don't upload on Plan 9
bradfitz Apr 1, 2025
06d3265
ipn/ipnserver: treat all plan9 safesocket connections as permitted
bradfitz Apr 1, 2025
f91a460
net/netcheck: avoid ICMP unimplemented log spam on Plan 9
bradfitz Apr 1, 2025
6c2ab52
ssh/tailssh: add Plan 9 support for Tailscale SSH
bradfitz Apr 1, 2025
9a77f65
portlist: add Plan 9 support
bradfitz Apr 1, 2025
1ea5883
net/dns: add Plan 9 support
bradfitz Apr 1, 2025
b98e1b6
cmd/tailscale: add tailscale.rc Plan 9 wrapper
bradfitz Apr 1, 2025
088db4e
control/controlhttp: set forceNoise443 on Plan 9
bradfitz Apr 1, 2025
90e69c8
control/controlhttp: reduce some log spam on context cancel
bradfitz Mar 31, 2025
e52a627
all: use network less when running in v86 emulator
bradfitz Apr 1, 2025
0662232
cmd/tsidp: use advertised env vars for config
kotx Mar 28, 2025
96384e3
Move env var flag passing to Dockerfile
kotx Apr 2, 2025
c0b5cb1
Change README to reflect configuration
kotx Apr 2, 2025
039f02f
.github: Bump actions/upload-artifact from 4.6.1 to 4.6.2 (#15400)
dependabot[bot] Apr 2, 2025
644b995
ipn/ipnlocal: fix taildrive logf formatting verb (#15514)
jwhited Apr 2, 2025
6c93b6c
tailcfg: add relay client and server NodeAttr's (#15513)
jwhited Apr 2, 2025
6357df2
.github: Bump actions/setup-go from 5.3.0 to 5.4.0 (#15397)
dependabot[bot] Apr 3, 2025
3ecbf62
tailcfg: add UDP relay PeerCapability's (#15516)
jwhited Apr 3, 2025
4652d3d
wgengine/router: default to a fake router on android
Mar 19, 2025
d45a27e
net/routetable: don't try to fetch the route table on android
Mar 19, 2025
6a506ac
net/tstun: don't try to set link attributes on android
Mar 19, 2025
a45ccda
client/systray: add menu item to rebuild the menu
willnorris Apr 4, 2025
4c9391b
cmd/natc: separate perPeerState from connector
franbull Apr 2, 2025
aae94f7
tempfork/acme: update to latest version (#15543)
awly Apr 4, 2025
f9f56f6
cmd/natc: move address storage behind an interface
franbull Apr 2, 2025
c749b2a
util/testenv: add func to report whether a testing.TB is in parallel …
bradfitz Apr 6, 2025
238d10d
nettest, *: add option to run HTTP tests with in-memory network
bradfitz Apr 6, 2025
1fc7a24
drive: fix minor typos in comments
linux4life798 Apr 3, 2025
546b39b
licenses: update license notices
Apr 7, 2025
03e8f2f
.github: Bump actions/cache from 4.2.2 to 4.2.3
dependabot[bot] Apr 7, 2025
8a72d5b
.github: Bump github/codeql-action from 3.28.13 to 3.28.14
dependabot[bot] Apr 7, 2025
e84e563
client/local: fix path with delete profile request
Esteban-Bermudez Mar 31, 2025
b251d5b
cmd/nardump: support symlinks, add basic test
phanirithvij Mar 27, 2025
3d5dc87
tstest/nettest: pull the non-test Network abstraction out to netx pac…
bradfitz Apr 8, 2025
dd2844c
all: unify some redundant testing.TB interface copies
bradfitz Apr 8, 2025
41ff3d8
words: C what I did there?
bradfitz Apr 8, 2025
fade711
nix: update nix and use go 1.24 (#15578)
AsterisMono Apr 8, 2025
2fd76cf
net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl
bradfitz Apr 8, 2025
45d25e8
cmd/natc: fix handling of upstream and downstream nxdomain
raggi Apr 2, 2025
4246df1
cmd/tailscale/cli: return error on duplicate multi-value flags (#15534)
jasonodonnell Apr 8, 2025
a135168
commit-messages.md: make our git commit message style guide public
bradfitz Apr 8, 2025
b7b70ba
tsconsensus: add a tsconsensus package
franbull Jan 13, 2025
655be2b
cmd/tailscale/cli: prevent all dup flags, not just strings
bradfitz Apr 8, 2025
ae063d7
ipn: use slices.Equal in another spot
bradfitz Apr 8, 2025
dfcd125
cmd/containerboot: speed up tests (#14883)
tomhjp Apr 8, 2025
9ed025e
ipn/ipnlocal: include previous cert in new ACME orders (#15595)
awly Apr 8, 2025
e3b36f6
.github: add CONTRIBUTING.md
bradfitz Apr 8, 2025
b1e1b5c
cmd/natc: attempt to match IP version between upstream and downstream
raggi Apr 7, 2025
d593141
cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress …
tomhjp Apr 9, 2025
a9c5e47
cmd/tailscale: test for new flags in tailscale up
sfllaw Apr 8, 2025
4674f52
cmd/tailscale,ipn: add relay-server-port "tailscale set" flag and Pre…
jwhited Apr 9, 2025
15d2f78
.github: add cron schedule to installer tests (#15603)
jasonodonnell Apr 9, 2025
0577004
clientupdate: fix MSI exit code handling, preserve MSI and updater lo…
nickkhyl Apr 9, 2025
2e44d5c
ipn/ipnlocal: fix peerapi ingress endpoint (#15611)
jwhited Apr 9, 2025
e706960
logpolicy: fix log target override with a custom HTTP client
knyar Apr 9, 2025
b3f1197
drive: fix index out of bounds when parsing request local paths (#15517)
linux4life798 Apr 9, 2025
79fc151
build_dist.sh: allow settings custom build tags (#15589)
awly Apr 9, 2025
3f8d1fb
ipnlocal: log when client reports new peerAPI ports (#15463)
kari-ts Apr 9, 2025
0f19b9f
tstest: parse goroutines for diff in ResourceCheck (#15619)
icio Apr 10, 2025
749112f
go.toolchain.rev: bump go 1.24 for Android pidfd changes (#15613)
kari-ts Apr 10, 2025
6b5f60b
ipn/ipnstate: add home DERP to tailscale status JSON
bradfitz Apr 10, 2025
90b1bbe
ipn, ipn/ipnlocal: reduce coupling between LocalBackend/profileManage…
nickkhyl Apr 6, 2025
16e5399
docs/k8s: add architecture diagram for ProxyGroup Ingress (#15593)
tomhjp Apr 10, 2025
c99a504
Revert "ipn/ipnstate: add home DERP to tailscale status JSON"
bradfitz Apr 10, 2025
299532e
tsconsensus: mark 2 tests that were flaky in CI
franbull Apr 10, 2025
df9dbc5
cmd/tailscaled,ipn/{auditlog,desktop,ipnext,ipnlocal},tsd: extract Lo…
nickkhyl Apr 11, 2025
802a2d3
cmd/natc: only store v4 addresses
franbull Apr 9, 2025
5d1dbf5
ipn/ipn{ext,local}: allow extension lookup by name or type
nickkhyl Apr 11, 2025
451dfe2
release/dist/cli: add option to override out path
kradalby Apr 14, 2025
33fa3a4
docs/commit-messages.md: merge two 'commit messages' sections (#15668)
irbekrm Apr 14, 2025
7893600
scripts/installer.sh: add Miracle Linux as a RHEL derivative (#15671)
Erisa Apr 14, 2025
1c17ac1
.github: Bump github/codeql-action from 3.28.14 to 3.28.15 (#15665)
dependabot[bot] Apr 14, 2025
a12b3d0
wgengine/netstack: revert cubic cc to reno cc (#15677)
jwhited Apr 14, 2025
c599c51
hostinfo, ipnlocal: add optional os-specific callback for querying th…
barnstar Apr 14, 2025
d3e4258
go.mod: bump golang.org/x/crypto and related
raggi Apr 14, 2025
dd7353e
cmd/natc: cleanup unused state
franbull Apr 14, 2025
d65b5ab
.github: Bump golangci/golangci-lint-action from 6.5.0 to 7.0.0 (#15476)
dependabot[bot] Apr 14, 2025
6f8bf66
tstest/integration: simplify TestDNSOverTCPIntervalResolver (#15686)
jwhited Apr 15, 2025
259a7be
ipn/desktop: fix panics on Windows 10, x86
nickkhyl Apr 14, 2025
95e12bd
ipn/ipnlocal: skip broken TestOnTailnetDefaultAutoUpdate on macOS
bradfitz Apr 15, 2025
5107fae
ipn/auditlog: fix featureName doc typo (#15696)
jwhited Apr 15, 2025
7d33961
k8s-operator: add age column to all custom resources (#15663)
satyampsoni Apr 15, 2025
5512df6
ipn/{auditlog,ipnext,ipnlocal}: convert the profile-change callback t…
nickkhyl Apr 14, 2025
af39ea5
ipn/ipnlocal: fix TestOnTailnetDefaultAutoUpdate on macOS (#15697)
awly Apr 15, 2025
19e0d6c
node.rev: bump to latest 22.x LTS release (#15652)
mpminardi Apr 15, 2025
5c690e9
feature/{condregister,relayserver}: implement the skeleton for the re…
jwhited Apr 16, 2025
7eedb28
tsweb: don't hook up pprof handlers in javascript builds
Mar 19, 2025
ba827af
tsd: wire up the event bus to tailscaled
Mar 7, 2025
129006b
all: construct new System values with an event bus pre-populated
creachadair Mar 19, 2025
481d4af
tsnet: shut down the event bus on Close
creachadair Mar 19, 2025
1f06d34
wgengine: plumb an event bus into the userspace engine
creachadair Mar 19, 2025
284b5b6
portmapper: update NewClient to use a Config argument
creachadair Mar 19, 2025
93309c3
{wgengine,util/portmapper}: add and plumb an event bus (#15359)
creachadair Mar 20, 2025
77c79ab
all: update the tsd.System constructor name (#15372)
creachadair Mar 20, 2025
7aa9fc5
net/portmapper: fire an event when a port mapping is updated (#15371)
creachadair Mar 20, 2025
518e39b
cmd/tailscaled: clean up unnecessary logf indirection #cleanup
Mar 19, 2025
cad2fcd
derp/derphttp: remove ban on websockets dependency
Mar 20, 2025
4939a46
net/netmon: publish events to event bus
Mar 19, 2025
28a5124
wgengine/magicsock: subscribe to portmapper updates
creachadair Mar 24, 2025
70f7eff
feature/taildrop: start moving Taildrop out of LocalBackend
bradfitz Apr 15, 2025
b6bacdd
cmd/dist,release/dist: sign QNAP builds with a Google Cloud hosted key
oxtoacart Apr 15, 2025
cf80546
cmd/k8s-operator: default ingress paths to '/' if not specified by us…
ChaosInTheCRD Apr 17, 2025
8b214d9
feature/relayserver: wire up profile/prefs changes (#15714)
jwhited Apr 17, 2025
a1d2968
ipn/ipnlocal: remove another copy of slicesx.MapValues
bradfitz Apr 17, 2025
97e5ecf
tstime: add GoDuration which JSON serializes with time.Duration.Strin…
dsnet Apr 17, 2025
be57e76
net/udprelay: change ServerEndpoint time.Duration fields to tstime.Go…
jwhited Apr 17, 2025
d702175
cmd/tsidp: add groups claim to tsidp (#15127)
cedi Apr 18, 2025
8df892c
cmd/tsidp: fix interface{} linter warnings (#15729)
patrickod Apr 18, 2025
f6989be
ipn/ipnlocal: use MagicDNSName of the current profile instead of gene…
nickkhyl Apr 18, 2025
c8cebd7
client/tailscale: add godoc links in Deprecated comments
dolmen Apr 1, 2025
5e7fc4b
feature/relayserver: use PeerAPIHandler.Logf() (#15765)
jwhited Apr 22, 2025
8cba7df
net/portmapper: fix nil pointer dereference in Client.createMapping
nickkhyl Apr 23, 2025
5b518ef
ipn/ipnlocal: use tsd.NewSystem instead of &tsd.System in a few more …
nickkhyl Apr 23, 2025
6a71b28
types/jsonx: add package for json/v2 helpers (#15756)
dsnet Apr 23, 2025
ae649f4
go.mod: bump gorilla/csrf@v1.7.3 (#15775)
awly Apr 23, 2025
9579441
ipn/ipnext: remove support for unregistering extension
bradfitz Apr 24, 2025
32a652f
ipn/{ipnext,ipnlocal}: add a SafeBackend interface
bradfitz Apr 24, 2025
1dc6e6d
ipn/ipnext: remove some interface indirection to add hooks
bradfitz Apr 25, 2025
298952c
types/mapx, ipn/ipnext: add ordered map, akin to set.Slice
bradfitz Apr 25, 2025
4205149
disco: implement CallMeMaybeVia serialization (#15779)
jwhited Apr 25, 2025
34bb07d
net/udprelay: change Server.AllocateEndpoint existing alloc strategy …
jwhited Apr 25, 2025
beae7b6
ipn/ipnlocal: add localNodeContext with netmap-related fields and met…
nickkhyl Apr 25, 2025
d26c7a0
util/mak: delete long-deprecated, unused, pre-generics NonNil func
bradfitz Apr 25, 2025
a6879f0
ipn/ipnlocal: update profileManager to use SwitchToProfile when switc…
nickkhyl Apr 25, 2025
e1b7f82
feature,ipn/ipnlocal: add profileManager.StateChangeHook
nickkhyl Apr 25, 2025
0a85db6
net/portmapper: fix test flakes from logging after test done
bradfitz Apr 25, 2025
afde1a1
tsweb/varz: export GC CPU fraction gauge
raggi Apr 28, 2025
975a37e
types/logger: release ArgWriter destination after use
raggi Apr 28, 2025
b34aae7
wgengine/magicsock: support Geneve-encap'd Disco transmission (#15811)
jwhited Apr 28, 2025
eadad11
tstest/integration: move code from integration_test.go to integration.go
bradfitz Apr 28, 2025
745d87c
tstest/integration: export test helpers
bradfitz Apr 28, 2025
a7e0516
control/controlclient,health: add tests for control health tracking
zofrex Apr 29, 2025
4bf0dc1
tstest/integration: remove vestigial env var set in tests
bradfitz Apr 29, 2025
dab0c4b
tool/gocross: break circular dependency on tailcfg (#15829)
awly Apr 30, 2025
227a0c8
tsnet: add FunnelTLSConfig FunnelOption type
bradfitz Apr 30, 2025
4821828
wgengine/magicsock: start to make disco reception Geneve aware (#15832)
jwhited Apr 30, 2025
6ab4ab3
wgengine/magicsock: fix discoInfo leak (#15845)
jwhited May 1, 2025
70397ae
ipn/ipnlocal: fix Taildrop deadlock
bradfitz Apr 30, 2025
2f4cd36
cmd/tailscale/cli: unhide `--posture-checking` flag to `set`
knyar Apr 29, 2025
f16eab2
util/linuxfw: fix delete snat rule (#15763)
KevinLiang10 May 1, 2025
7295cbf
ipn/ipnlocal: fix Taildrop regression from refactoring
bradfitz May 1, 2025
9eacb66
feature/taildrop: add integration test
bradfitz Apr 29, 2025
736c3c2
cmd/tsidp: remove backticks in README in shell example
bradfitz May 1, 2025
21c6e25
wgengine/magicsock: implement more relay handshake disco handling (#1…
jwhited May 2, 2025
92be012
hostinfo,tailcfg: report TPM availability on windows/linux (#15831)
awly May 2, 2025
2b4c43b
tstest/integration: don't require TestMake, stop leaking binaries in …
bradfitz May 1, 2025
fd415bd
wgengine/magicsock: shape relayManager and CallMeMaybeVia handling (#…
jwhited May 2, 2025
79201f2
logtail: remove unneeded IP redaction code
bradfitz Apr 28, 2025
5fb1801
ipn/ipnlocal: rename localNodeContext to nodeBackend
bradfitz May 3, 2025
fd5ddf8
ipn/ipnlocal: use "nb" consistently as receiver for nodeBackend
bradfitz May 3, 2025
8c5ca8b
tstest/integration: work around ETXTBSY flake
bradfitz May 3, 2025
9555912
ipn/ipnlocal, tailcfg: add MagicDNS opt-in attr for IPv6 AAAA records
bradfitz May 5, 2025
2c1d995
cmd/k8s-operator,k8s-operator/api-proxy: move k8s proxy code to libra…
tomhjp May 6, 2025
b112b11
cmd/tailscale/cli: rename "--posture-checking" to "--report-posture"
bradfitz May 5, 2025
09d65da
feature/taildrop: move rest of Taildrop out of LocalBackend
bradfitz May 3, 2025
72d62e9
taildrop: merge taildrop and feature/taildrop packages together
bradfitz May 7, 2025
01c0ee6
Makefile: add tsnet to depaware
bradfitz May 7, 2025
50fa642
tsnet: don't depend on condregister & its default tailscaled features
bradfitz May 7, 2025
c7991c8
cmd/tailscale/cli: omit "file" subcommand if taildrop is omitted from…
bradfitz May 7, 2025
9033531
feature/relayserver: consider relay:server node attribute for enablem…
jwhited May 7, 2025
57ad2fa
tsnet: add android & iOS results to depaware
bradfitz May 7, 2025
b19a668
ipn/store: don't link in AWS & Kubernetes stuff on Android
bradfitz May 7, 2025
fb15c76
control/controlclient: send optional ConnectionHandleForTest with map…
codekitchen May 7, 2025
097fa89
net/dns: don't link dbus, gonotify on Android
bradfitz May 7, 2025
8815e2e
util/systemd: don't link systemd-notification package on Android
bradfitz May 7, 2025
977ccac
all: remove non-applicable "linux" deps on Android
bradfitz May 8, 2025
4793b8c
tsnet: add test for packet filter generation from netmap
zofrex Mar 21, 2025
c7dabee
util/eventbus: also disable websocket debug on Android
bradfitz May 8, 2025
37f8f1d
feature/taildrop, ipn/ipnlocal: remove leftover dup calls to osshare
bradfitz May 8, 2025
bb111aa
util/deephash: move tests that depend on other tailscale packages to …
nickkhyl May 9, 2025
ac72bf1
client/local: add godoc links
dolmen Apr 1, 2025
cebff13
health, ipn/ipnlocal: add metrics for various client events (#15828)
barnstar May 9, 2025
52cdf8b
net/udprelay{/endpoint}, all: move ServerEndpoint to independent pkg …
jwhited May 9, 2025
34e6dbc
ssh/tailssh: chdir to user's homedir when directly running a command …
sfllaw May 9, 2025
15f2aa6
safeweb: Set Cross-Origin-Opener-Policy for browser requests (#15936)
patrickod May 9, 2025
6fd329e
ipn/ipnlocal,net/dns/resolver: use the user dialer and routes for DNS…
nickkhyl May 9, 2025
6d0a021
net/tsdial: update (*Dialer).SetRoutes() to log the size of the resul…
nickkhyl May 9, 2025
9eebd11
wgengine/magicsock: re-shape relayManager to use an event loop (#15935)
jwhited May 9, 2025
7c4b062
ipn/ipn{server,test}: extract the LocalAPI test client and server int…
nickkhyl Apr 16, 2025
cd1ec31
ipn/ipnlocal: move nodeBackend methods from local.go to node_backend.go
nickkhyl May 9, 2025
5d73643
ssh/tailssh: fix data race during execution of test
nickkhyl May 10, 2025
4839c2d
prober: update cert check for prober (#15919)
mikeodr May 12, 2025
d7d4662
net/udprelay{/endpoint}: move ServerEndpoint tests (#15949)
jwhited May 12, 2025
b20ec89
util/linuxfw,wgengine/router: add new netfilter rules for HA ingresse…
irbekrm May 12, 2025
8b93075
net/dns,docs/windows/policy,util/syspolicy: register Tailscale IP add…
nickkhyl May 8, 2025
7fd8ef1
docs/windows/policy: add OnboardingFlow policy to ADMX file
dblohm7 Nov 18, 2024
9a287e2
cmd/derpprobe: exit with non-zero status if --once fails (#15926)
sfllaw May 12, 2025
14465cf
docs/commit-messages.md: explain #cleanup commits (#15933)
sfllaw May 12, 2025
92aa2fa
ipn/ipnlocal,wgengine: move (*tsdial.Dialer).SetRoutes() calls from L…
nickkhyl May 12, 2025
51c8909
ipn/ipnlocal: attach Tailnet Lock status to bugreports
knyar May 12, 2025
55df36b
prober: fix test logic (#15952)
mikeodr May 13, 2025
091d8a9
cmd/k8s-operator: warn if Tailscale Services use attempted for tailne…
irbekrm May 14, 2025
69204db
feature/taildrop: add integration test variant with profiles that exist
bradfitz May 14, 2025
2859b13
feature/taildrop,ipn/ipn{ext,local}: initialize taildrop for initial …
nickkhyl May 14, 2025
f6ce357
cmd/proxy-to-grafana: strip X-Webauth* headers from all requests (#15…
patrickod May 15, 2025
50aaf5e
prober: correct content-type response (#15989)
mikeodr May 16, 2025
0358b48
wgengine/magicsock: implement relayManager handshaking (#15977)
jwhited May 16, 2025
5d1fe7c
wgengine/magicsock: add missing logf arg (#15995)
jwhited May 16, 2025
6bd4757
cmd/containerboot,kube/ingressservices: proxy VIPService TCP/UDP traf…
irbekrm May 19, 2025
73c1b0a
{cmd,}/k8s-operator: support IRSA for Recorder resources (#15913)
tomhjp May 19, 2025
62a8422
cmd/k8s-operator,kube/kubetypes,k8s-operator/apis: reconcile L3 HA Se…
ChaosInTheCRD May 19, 2025
d426db0
cmd/k8s-operator: warn if HA Service is applied, but VIPService featu…
ChaosInTheCRD May 19, 2025
3092657
cmd/k8s-operator: rename VIPService -> Tailscale Service in L3 HA Ser…
ChaosInTheCRD May 19, 2025
b40128a
cmd/derper, net/tlsdial: fix client's self-signed cert validation
bradfitz May 19, 2025
2351a34
wgengine/magicsock: fix pong handling 'EndpointChange' reporting (#16…
jwhited May 19, 2025
6bded2d
cmd/tailscale/cli: suggest using "tailscale set", not "up", to set op…
bradfitz May 19, 2025
d7c5287
ipn/ipnlocal: make GetExt work earlier, before extension init
bradfitz May 19, 2025
0315bc7
wgengine/magicsock: introduce virtualNetworkID type (#16021)
jwhited May 20, 2025
5e451a8
cmd/k8s-operator: fix Tailscale Service API errors check (#16020)
irbekrm May 20, 2025
9c78e11
prober: update header check test (#15993)
mikeodr May 20, 2025
733dc51
wgengine/magicsock: fix outdated heartbeat comment (#16023)
jwhited May 20, 2025
7067b7a
ipn,ipnlocal,taildrop: use SAF for Android files (#15976)
kari-ts May 20, 2025
53ca668
ipn/store: remove a layer of indirection for registering stores (#15986)
awly May 21, 2025
f400468
VERSION.txt: this is v1.84.0 (#16041)
barnstar May 21, 2025
258dbf6
ipn: set RouteAll=true by default for new accounts on iOS and Android…
barnstar May 28, 2025
569f62f
net/dns: cache dns.Config for reuse when compileConfig fails (#16059)
barnstar May 28, 2025
baee78a
VERSION.txt: this is v1.84.1
barnstar May 29, 2025
c01d203
cmd/containerboot: allow setting --accept-dns via TS_EXTRA_ARGS again…
irbekrm May 30, 2025
0cb73e4
cmd/k8s-operator: explicitly set tcp on VIPService port configuration…
ChaosInTheCRD Jun 9, 2025
547fb33
VERSION.txt: this is v1.84.2 (#16232)
nickoneill Jun 9, 2025
9bb7166
make the token and control urls configurable
Oct 16, 2024
c966f6f
allow to customize domain validation
thirdeyenick Mar 20, 2025
c3efa9e
remove old test
thirdeyenick Jul 4, 2025
c8721fe
fix linting issues
thirdeyenick Jul 4, 2025
01835e0
exclude tempfork from gofmt linting
thirdeyenick Jul 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
PRs welcome! But please file bugs first and explain the problem or
motivation. For new or changed functionality, strike up a discussion
and get agreement on the design/solution before spending too much time writing
code.

Commit messages should [reference
bugs](https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls).

We require [Developer Certificate of
Origin](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin) (DCO)
`Signed-off-by` lines in commits. (`git commit -s`)

Please squash your code review edits & force push. Multiple commits in
a PR are fine, but only if they're each logically separate and all tests pass
at each stage. No fixup commits.

See [commit-messages.md](docs/commit-messages.md) (or skim `git log`) for our commit message style.
45 changes: 45 additions & 0 deletions .github/workflows/build-and-publish-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Publish Dev Operator

on:
push:
tags:
- 'v*.*.*'
- 'v*.*.*-*'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and publish k8s-operator image
env:
REPO: ghcr.io/${{ github.repository_owner }}/tailscale-k8s-operator
TAGS: ${{ github.ref_name }}
run: |
echo "Building and publishing k8s-operator to ${REPO} with tags ${TAGS}"
TAGS="${TAGS}" REPOS=${REPO} PLATFORM=${PLATFORM} PUSH=true TARGET=operator ./build_docker.sh
- name: Build and publish nameserver image
env:
REPO: ghcr.io/${{ github.repository_owner }}/tailscale-k8s-nameserver
TAGS: ${{ github.ref_name }}
run: |
echo "Building and publishing k8s-nameserver to ${REPO} with tags ${TAGS}"
TAGS="${TAGS}" REPOS=${REPO} PLATFORM=${PLATFORM} PUSH=true TARGET=k8s-nameserver ./build_docker.sh
- name: Build and publish client image
env:
REPO: ghcr.io/${{ github.repository_owner }}/tailscale
TAGS: ${{ github.ref_name }}
run: |
echo "Building and publishing tailscale client to ${REPO} with tags ${TAGS}"
TAGS="${TAGS}" REPOS=${REPO} PLATFORM=${PLATFORM} PUSH=true TARGET=client ./build_docker.sh
38 changes: 38 additions & 0 deletions .github/workflows/chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: package-helm-chart

on:
push:
tags:
- 'v*.*.*'
- 'v*.*.*-*'
workflow_dispatch:

jobs:
package-and-push-helm-chart:
permissions:
contents: read
packages: write

runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4.2.2

- name: Set environment variables
id: set-variables
run: |
echo "REPOSITORY=ghcr.io/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"

- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}

- name: Build, package and push helm chart
run: |
./tool/go run cmd/k8s-operator/generate/main.go helmcrd
./tool/helm package --app-version=${{ github.ref_name }} --version=${{ github.ref_name }} './cmd/k8s-operator/deploy/chart'
./tool/helm push ./tailscale-operator-${{ github.ref_name }}.tgz oci://${{ steps.set-variables.outputs.REPOSITORY }}/charts
2 changes: 1 addition & 1 deletion .github/workflows/checklocks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Build checklocks
run: ./tool/go build -o /tmp/checklocks gvisor.dev/gvisor/tools/checklocks/cmd/checklocks
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,17 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

# Install a more recent Go that understands modern go.mod content.
- name: Install Go
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: go.mod

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -66,7 +66,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11
uses: github/codeql-action/autobuild@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -80,4 +80,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea # v3.26.11
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
2 changes: 1 addition & 1 deletion .github/workflows/docker-file-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: "Build Docker image"
run: docker build .
2 changes: 1 addition & 1 deletion .github/workflows/flakehub-publish-tagged.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
id-token: "write"
contents: "read"
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: "${{ (inputs.tag != null) && format('refs/tags/{0}', inputs.tag) || '' }}"
- uses: "DeterminateSystems/nix-installer-action@main"
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,17 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
- uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
with:
go-version-file: go.mod
cache: false

- name: golangci-lint
# Note: this is the 'v6.1.0' tag as of 2024-08-21
uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7.0.0
with:
version: v1.60
version: v2.0.2

# Show only new issues if it's a pull request.
only-new-issues: true
10 changes: 5 additions & 5 deletions .github/workflows/govulncheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

steps:
- name: Check out code into the Go module directory
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Install govulncheck
run: ./tool/go install golang.org/x/vuln/cmd/govulncheck@latest
Expand All @@ -24,13 +24,13 @@ jobs:

- name: Post to slack
if: failure() && github.event_name == 'schedule'
uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
env:
SLACK_BOT_TOKEN: ${{ secrets.GOVULNCHECK_BOT_TOKEN }}
uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0
with:
channel-id: 'C05PXRM304B'
method: chat.postMessage
token: ${{ secrets.GOVULNCHECK_BOT_TOKEN }}
payload: |
{
"channel": "C08FGKZCQTW",
"blocks": [
{
"type": "section",
Expand Down
64 changes: 43 additions & 21 deletions .github/workflows/installer.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
name: test installer.sh

on:
schedule:
- cron: '0 15 * * *' # 10am EST (UTC-4/5)
push:
branches:
- "main"
paths:
- scripts/installer.sh
- .github/workflows/installer.yml
pull_request:
branches:
- "*"
paths:
- scripts/installer.sh
- .github/workflows/installer.yml

jobs:
test:
Expand All @@ -29,13 +33,11 @@ jobs:
- "debian:stable-slim"
- "debian:testing-slim"
- "debian:sid-slim"
- "ubuntu:18.04"
- "ubuntu:20.04"
- "ubuntu:22.04"
- "ubuntu:23.04"
- "ubuntu:24.04"
- "elementary/docker:stable"
- "elementary/docker:unstable"
- "parrotsec/core:lts-amd64"
- "parrotsec/core:latest"
- "kalilinux/kali-rolling"
- "kalilinux/kali-dev"
Expand All @@ -48,7 +50,7 @@ jobs:
- "opensuse/leap:latest"
- "opensuse/tumbleweed:latest"
- "archlinux:latest"
- "alpine:3.14"
- "alpine:3.21"
- "alpine:latest"
- "alpine:edge"
deps:
Expand All @@ -58,10 +60,6 @@ jobs:
# Check a few images with wget rather than curl.
- { image: "debian:oldstable-slim", deps: "wget" }
- { image: "debian:sid-slim", deps: "wget" }
- { image: "ubuntu:23.04", deps: "wget" }
# Ubuntu 16.04 also needs apt-transport-https installed.
- { image: "ubuntu:16.04", deps: "curl apt-transport-https" }
- { image: "ubuntu:16.04", deps: "wget apt-transport-https" }
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
Expand All @@ -76,10 +74,10 @@ jobs:
# tar and gzip are needed by the actions/checkout below.
run: yum install -y --allowerasing tar gzip ${{ matrix.deps }}
if: |
contains(matrix.image, 'centos')
|| contains(matrix.image, 'oraclelinux')
|| contains(matrix.image, 'fedora')
|| contains(matrix.image, 'amazonlinux')
contains(matrix.image, 'centos') ||
contains(matrix.image, 'oraclelinux') ||
contains(matrix.image, 'fedora') ||
contains(matrix.image, 'amazonlinux')
- name: install dependencies (zypper)
# tar and gzip are needed by the actions/checkout below.
run: zypper --non-interactive install tar gzip ${{ matrix.deps }}
Expand All @@ -89,16 +87,13 @@ jobs:
apt-get update
apt-get install -y ${{ matrix.deps }}
if: |
contains(matrix.image, 'debian')
|| contains(matrix.image, 'ubuntu')
|| contains(matrix.image, 'elementary')
|| contains(matrix.image, 'parrotsec')
|| contains(matrix.image, 'kalilinux')
contains(matrix.image, 'debian') ||
contains(matrix.image, 'ubuntu') ||
contains(matrix.image, 'elementary') ||
contains(matrix.image, 'parrotsec') ||
contains(matrix.image, 'kalilinux')
- name: checkout
# We cannot use v4, as it requires a newer glibc version than some of the
# tested images provide. See
# https://github.com/actions/checkout/issues/1487
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: run installer
run: scripts/installer.sh
# Package installation can fail in docker because systemd is not running
Expand All @@ -107,3 +102,30 @@ jobs:
continue-on-error: true
- name: check tailscale version
run: tailscale --version
notify-slack:
needs: test
runs-on: ubuntu-latest
steps:
- name: Notify Slack of failure on scheduled runs
if: failure() && github.event_name == 'schedule'
uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: incoming-webhook
payload: |
{
"attachments": [{
"title": "Tailscale installer test failed",
"title_link": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"text": "One or more OSes in the test matrix failed. See the run for details.",
"fields": [
{
"title": "Ref",
"value": "${{ github.ref_name }}",
"short": true
}
],
"footer": "${{ github.workflow }} on schedule",
"color": "danger"
}]
}
2 changes: 1 addition & 1 deletion .github/workflows/kubemanifests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Build and lint Helm chart
run: |
eval `./tool/go run ./cmd/mkversion`
Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/natlab-integrationtest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Run some natlab integration tests.
# See https://github.com/tailscale/tailscale/issues/13038
name: "natlab-integrationtest"

concurrency:
group: ${{ github.workflow }}-$${{ github.head_ref || github.run_id }}
cancel-in-progress: true

on:
pull_request:
paths:
- "tstest/integration/nat/nat_test.go"
jobs:
natlab-integrationtest:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install qemu
run: |
sudo rm /var/lib/man-db/auto-update
sudo apt-get -y update
sudo apt-get -y remove man-db
sudo apt-get install -y qemu-system-x86 qemu-utils
- name: Run natlab integration tests
run: |
./tool/go test -v -run=^TestEasyEasy$ -timeout=3m -count=1 ./tstest/integration/nat --run-vm-tests
2 changes: 1 addition & 1 deletion .github/workflows/ssh-integrationtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run SSH integration tests
run: |
make sshintegrationtest
Loading
Loading