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/containerboot
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>
8 months ago
..
certs.go cmd/{k8s-operator,containerboot}: check TLS cert before advertising VIPService (#15427) 8 months ago
certs_test.go cmd/containerboot: manage HA Ingress TLS certs from containerboot (#15303) 9 months ago
forwarding.go cmd/containerboot,util/linuxfw: create a SNAT rule for dst/src only once, clean up if needed (#13658) 1 year ago
healthz.go cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 8 months ago
kube.go cmd/containerboot: wait for consistent state on shutdown (#14263) 10 months ago
kube_test.go cmd/containerboot: wait for consistent state on shutdown (#14263) 10 months ago
main.go cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 8 months ago
main_test.go cmd/containerboot: speed up tests (#14883) 8 months ago
metrics.go cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 8 months ago
serve.go cmd/{containerboot,k8s-operator},kube/kubetypes: unadvertise ingress services on shutdown (#15451) 8 months ago
serve_test.go cmd/containerboot: manage HA Ingress TLS certs from containerboot (#15303) 9 months ago
services.go cmd/containerboot: speed up tests (#14883) 8 months ago
services_test.go cmd/{k8s-operator,containerboot},kube: ensure egress ProxyGroup proxies don't terminate while cluster traffic is still routed to them (#14436) 10 months ago
settings.go cmd/containerboot: manage HA Ingress TLS certs from containerboot (#15303) 9 months ago
tailscaled.go cmd/containerboot: speed up tests (#14883) 8 months ago
test_tailscale.sh cmd/containerboot: make a tests table, add more tests. 3 years ago
test_tailscaled.sh cmd/containerboot: avoid leaking bash scripts after test runs 2 years ago