You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Irbe Krumina c62b0732d2
cmd/k8s-operator: remove auth key once proxy has logged in (#13612)
The operator creates a non-reusable auth key for each of
the cluster proxies that it creates and puts in the tailscaled
configfile mounted to the proxies.
The proxies are always tagged, and their state is persisted
in a Kubernetes Secret, so their node keys are expected to never
be regenerated, so that they don't need to re-auth.

Some tailnet configurations however have seen issues where the auth
keys being left in the tailscaled configfile cause the proxies
to end up in unauthorized state after a restart at a later point
in time.
Currently, we have not found a way to reproduce this issue,
however this commit removes the auth key from the config once
the proxy can be assumed to have logged in.

If an existing, logged-in proxy is upgraded to this version,
its redundant auth key will be removed from the conffile.

If an existing, logged-in proxy is downgraded from this version
to a previous version, it will work as before without re-issuing key
as the previous code did not enforce that a key must be present.

Updates tailscale/tailscale#13451

Signed-off-by: Irbe Krumina <irbe@tailscale.com>
2 months ago
.bencher
.github .github: Bump tibdex/github-app-token from 1.8.0 to 2.1.0 (#9529) 2 months ago
appc
atomicfile
chirp
client client/web: use tsaddr helpers 2 months ago
clientupdate
cmd cmd/k8s-operator: remove auth key once proxy has logged in (#13612) 2 months ago
control
derp derp: document the RunWatchConnectionLoop callback gotchas 2 months ago
disco
docs
doctor
drive
envknob
gokrazy
health health: clean up updateBuiltinWarnablesLocked a bit, fix DERP warnings 2 months ago
hostinfo
internal
ipn ipn/ipnlocal: add advertised and primary route metrics 2 months ago
jsondb
k8s-operator cmd/k8s-operator,k8s-operator: add ProxyGroup CRD (#13591) 2 months ago
kube
licenses licenses: update license notices 2 months ago
log
logpolicy
logtail
metrics metrics: revert changes to MultiLabelMap's String method 2 months ago
net net/captivedetection: exclude ipsec interfaces from captive portal detection (#13598) 2 months ago
omit
packages/deb
paths
portlist
posture
prober
proxymap
release {release,version}: add DSM7.2 specific synology builds (#13405) 2 months ago
safesocket
safeweb safeweb: add a ListenAndServe method to the Server type (#13498) 2 months ago
scripts
sessionrecording
smallzstd
ssh/tailssh ssh/tailssh: add logic for matching against AcceptEnv patterns (#13466) 2 months ago
syncs
tailcfg tailcfg: add AcceptEnv field to SSHRule (#13523) 2 months ago
taildrop
tempfork
tka
tool tool/gocross: make gocross-wrapper.sh keep multiple Go toolchains around 2 months ago
tsconst
tsd util/usermetrics: make usermetrics non-global 2 months ago
tsnet ipn/ipnlocal: add advertised and primary route metrics 2 months ago
tstest ipn/ipnlocal: add advertised and primary route metrics 2 months ago
tstime
tsweb
types cli: add `tailscale dns query` (#13368) 2 months ago
util util/usermetrics: make usermetrics non-global 2 months ago
version {release,version}: add DSM7.2 specific synology builds (#13405) 2 months ago
wf
wgengine wgengine: make opts.Metrics mandatory 2 months ago
words
.gitattributes
.gitignore
.golangci.yml
ALPINE.txt
AUTHORS
CODEOWNERS
CODE_OF_CONDUCT.md
Dockerfile
Dockerfile.base
LICENSE
Makefile
PATENTS
README.md
SECURITY.md
VERSION.txt
api.md
build_dist.sh
build_docker.sh
flake.lock
flake.nix
go.mod go.mod: upgrade golangci-lint 2 months ago
go.mod.sri
go.sum go.mod: upgrade golangci-lint 2 months ago
go.toolchain.branch
go.toolchain.rev go.toolchain.rev: bump oss, test toolchain matches go.toolchain.rev 2 months ago
gomod_test.go
header.txt
pkgdoc_test.go
pull-toolchain.sh
shell.nix
staticcheck.conf
update-flake.sh
version-embed.go
version_tailscale_test.go go.toolchain.rev: bump oss, test toolchain matches go.toolchain.rev 2 months ago
version_test.go

README.md

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains the majority of Tailscale's open source code. Notably, it includes the tailscaled daemon and the tailscale CLI tool. The tailscaled daemon runs on Linux, Windows, macOS, and to varying degrees on FreeBSD and OpenBSD. The Tailscale iOS and Android apps use this repo's code, but this repo doesn't contain the mobile GUI code.

Other Tailscale repos of note:

For background on which parts of Tailscale are open source and why, see https://tailscale.com/opensource/.

Using

We serve packages for a variety of distros and platforms at https://pkgs.tailscale.com.

Other clients

The macOS, iOS, and Windows clients use the code in this repository but additionally include small GUI wrappers. The GUI wrappers on non-open source platforms are themselves not open source.

Building

We always require the latest Go release, currently Go 1.23. (While we build releases with our Go fork, its use is not required.)

go install tailscale.com/cmd/tailscale{,d}

If you're packaging Tailscale for distribution, use build_dist.sh instead, to burn commit IDs and version info into the binaries:

./build_dist.sh tailscale.com/cmd/tailscale
./build_dist.sh tailscale.com/cmd/tailscaled

If your distro has conventions that preclude the use of build_dist.sh, please do the equivalent of what it does in your distro's way, so that bug reports contain useful version information.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

PRs welcome! But please file bugs. Commit messages should reference bugs.

We require Developer Certificate of Origin Signed-off-by lines in commits.

See git log for our commit message style. It's basically the same as Go's style.

About Us

Tailscale is primarily developed by the people at https://github.com/orgs/tailscale/people. For other contributors, see:

WireGuard is a registered trademark of Jason A. Donenfeld.