Graceful Shutdown
On SIGINT or SIGTERM, Waypoint:
- Stops accepting new connections on every listener.
- Unregisters its heartbeat from Redis so
waypoint-monitorand other observers stop seeing it immediately. - Releases its slot in any Tailscale Service it was advertising.
- Waits for in-flight connections to close on their own.
The process does not force-close active connections — clients see normal end-of-session behavior whenever they finish.
Timeout
Section titled “Timeout”By default Waypoint waits indefinitely for connections to drain. For Kubernetes-style deployments, configure your orchestrator to send SIGTERM first and SIGKILL after your drain window:
# Kubernetes pod specterminationGracePeriodSeconds: 300A 5-minute grace period covers most short interactive sessions. For deployments with very long-lived connections (multi-hour ETL jobs, persistent app connections), either set a longer grace period or design your clients to reconnect when killed.
Rolling updates
Section titled “Rolling updates”Because graceful shutdown drains rather than killing connections, rolling updates of a multi-instance deployment cause zero connection failures for new connections. Existing connections to the old pod continue until they end naturally (or the grace period expires).
For Tailscale-Service deployments, the service load-balances across all instances advertising it, so once an instance unregisters, no new connections arrive — only drain remains.