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.
tailscale/cmd
Tom Proctor dd95a83a65
cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451)
Ensure no services are advertised as part of shutting down tailscaled.
Prefs are only edited if services are currently advertised, and they're
edited we wait for control's ~15s (+ buffer) delay to failover.

Note that editing prefs will trigger a synchronous write to the state
Secret, so it may fail to persist state if the ProxyGroup is getting
scaled down and therefore has its RBAC deleted at the same time, but that
failure doesn't stop prefs being updated within the local backend,
doesn't  affect connectivity to control, and the state Secret is
about to get deleted anyway, so the only negative side effect is a harmless
error log during shutdown. Control still learns that the node is no
longer advertising the service and triggers the failover.

Note that the first version of this used a PreStop lifecycle hook, but
that only supports GET methods and we need the shutdown to trigger side
effects (updating prefs) so it didn't seem appropriate to expose that
functionality on a GET endpoint that's accessible on the k8s network.

Updates tailscale/corp#24795

Change-Id: I0a9a4fe7a5395ca76135ceead05cbc3ee32b3d3c
Signed-off-by: Tom Proctor <tomhjp@users.noreply.github.com>
9 months ago
..
addlicense all: fix golangci-lint errors 12 months ago
build-webclient client/web: precompress assets 2 years ago
checkmetrics cmd/checkmetrics: add command for checking metrics against kb 1 year ago
cloner cmd/cloner, cmd/viewer, util/codegen: add support for aliases of cloneable types 1 year ago
connector-gen cmd/connector-gen: add helper tool for wide app connector configurations 2 years ago
containerboot cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 9 months ago
derper net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl 9 months ago
derpprobe tsweb: split promvarz into an optional dependency 9 months ago
dist release/dist/qnap: add qnap target builder 2 years ago
get-authkey cmd,tsnet,internal/client: create internal shim to deprecated control plane API 10 months ago
gitops-pusher cmd/gitops-pusher: log error details when unable to fetch ACL ETag 10 months ago
hello cmd/hello: display native ipv4 (#15191) 10 months ago
k8s-nameserver cmd/k8s-nameserver: fix AAAA record query response (#12412) 2 years ago
k8s-operator cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 9 months ago
mkmanifest cmd/mkmanifest, cmd/tailscale, cmd/tailscaled: remove Windows arm32 resources from OSS 3 years ago
mkpkg go.mod: upgrade nfpm to v2 (#8786) 2 years ago
mkversion version/mkversion: open-source version generation logic 3 years ago
nardump cmd/nardump: support symlinks, add basic test 9 months ago
natc cmd/natc: attempt to match IP version between upstream and downstream 9 months ago
netlogfmt all: use Go 1.22 range-over-int 2 years ago
nginx-auth tailcfg,all: add and use Node.IsTagged() 3 years ago
pgproxy all: use new LocalAPI client package location 11 months ago
printdep cmd/printdep: print correct toolchain URL 3 years ago
proxy-to-grafana cmd/proxy-to-grafana: support setting Grafana role via grants 9 months ago
sniproxy net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl 9 months ago
speedtest all: update copyright and license headers 3 years ago
ssh-auth-none-demo ssh,tempfork/gliderlabs/ssh: replace github.com/tailscale/golang-x-crypto/ssh with golang.org/x/crypto/ssh 11 months ago
stunc cmd/stunc: enforce read timeout deadline (#14309) 1 year ago
stund all: unify some redundant testing.TB interface copies 9 months ago
stunstamp cmd/stunstamp: add protocol context to timeout logs (#13422) 1 year ago
sync-containers all: adjust some build tags for plan9 2 years ago
systray cmd/systray: add cmd/systray back as a small client/systray wrapper 12 months ago
tailscale cmd/tailscale/cli: prevent all dup flags, not just strings 9 months ago
tailscaled net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl 9 months ago
testcontrol all: use Go 1.22 range-over-int 2 years ago
testwrapper cmd/testwrapper: print failed tests preventing retry (#15270) 10 months ago
tl-longchain all: use new LocalAPI client package location 11 months ago
tsconnect go.toolchain.branch: update to Go 1.24 (#15016) 10 months ago
tsidp Change README to reflect configuration 9 months ago
tsshd all: update copyright and license headers 3 years ago
tta all: use new LocalAPI client package location 11 months ago
viewer cmd/viewer,all: consistently use "read-only" instead of "readonly" 12 months ago
vnet cmd/vnet: add wsproxy mode 9 months ago
xdpderper tsweb: split promvarz into an optional dependency 9 months ago