mirror of
https://github.com/juanfont/headscale.git
synced 2026-05-24 02:58:42 +09:00
Every Go-identifier reference in // and /* */ comments now uses
godoc's [Name] linking syntax so pkg.go.dev and `go doc` render
them as clickable cross-references. No behaviour change.
Pattern applied across the tree:
In-package [Foo], [Foo.Bar]
Cross-package [pkg.Foo], [pkg.Foo.Bar]
Stdlib [netip.Prefix], [errors.Is], [context.Context]
Tailscale [tailcfg.MapResponse], [tailcfg.Node.CapMap],
[tailcfg.NodeAttrSuggestExitNode]
Skip rules:
- File:line refs left as plain text
- HuJSON wire keys inside backtick raw strings untouched
- ACL/policy syntax tokens (tag:foo, autogroup:self, ...) not Go
symbols, left as plain text
- JSON/OIDC wire keys, gorm tags, RFC IPv6 placeholders, markdown
link tags, decorative dividers — all left as-is
41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package integrationutil
|
|
|
|
import "time"
|
|
|
|
// CI-scaled convergence budgets. ScaledTimeout doubles each on CI.
|
|
var (
|
|
// HAConvergeTimeout: routes / ACL / policy propagation to reach
|
|
// every node and show up in status, traceroute, or curl.
|
|
HAConvergeTimeout = ScaledTimeout(60 * time.Second)
|
|
|
|
// HASlowConvergeTimeout: multi-step failover sequences that need
|
|
// at least one HA prober cycle plus a data-plane settle.
|
|
HASlowConvergeTimeout = ScaledTimeout(120 * time.Second)
|
|
|
|
// PolicyPropagationTimeout: post-SetPolicy filter rules and peer
|
|
// reachability to reflect the change. Sized for wgengine's
|
|
// rule-reload lag on contended CI runners (~2 min observed).
|
|
PolicyPropagationTimeout = ScaledTimeout(180 * time.Second)
|
|
|
|
// AuthFlowTimeout: OIDC / web-auth / preauth-key flows to reach
|
|
// Running.
|
|
AuthFlowTimeout = ScaledTimeout(30 * time.Second)
|
|
|
|
// StatusReadyTimeout: post-event read to reflect the event
|
|
// (created node visible in list, set tags visible on node).
|
|
StatusReadyTimeout = ScaledTimeout(30 * time.Second)
|
|
)
|
|
|
|
// Polling intervals for [assert.EventuallyWithT].
|
|
const (
|
|
// FastPoll: in-process reads (HA state, route table snapshots).
|
|
FastPoll = 200 * time.Millisecond
|
|
|
|
// SlowPoll: cross-container reads (tailscale status, curl,
|
|
// headscale API) where each tick pays a docker exec round-trip.
|
|
SlowPoll = 500 * time.Millisecond
|
|
|
|
// PingPoll: gap between full ping-matrix sweeps.
|
|
PingPoll = 2 * time.Second
|
|
)
|