From 2434d76adefef4789f56549927410f9892dfd947 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Sun, 10 Sep 2023 10:00:12 +0200 Subject: [PATCH] give ci more tollerance for timeouts Signed-off-by: Kristoffer Dalby --- hscontrol/metrics.go | 5 ---- integration/dockertestutil/execute.go | 2 +- integration/scenario.go | 4 +--- integration/tsic/tsic.go | 13 ++++++----- integration/utils.go | 33 +++++++++++++++++++++++++++ 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/hscontrol/metrics.go b/hscontrol/metrics.go index 047643f3c5..724464c4df 100644 --- a/hscontrol/metrics.go +++ b/hscontrol/metrics.go @@ -16,11 +16,6 @@ var ( Help: "The total amount of registered machine attempts", }, []string{"action", "auth", "status", "user"}) - updateRequestsFromNode = promauto.NewCounterVec(prometheus.CounterOpts{ - Namespace: prometheusNamespace, - Name: "update_request_from_node_total", - Help: "The number of updates requested by a node/update function", - }, []string{"user", "machine", "state"}) updateRequestsSentToNode = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: prometheusNamespace, Name: "update_request_sent_to_node_total", diff --git a/integration/dockertestutil/execute.go b/integration/dockertestutil/execute.go index 71afa69872..5a8e92b334 100644 --- a/integration/dockertestutil/execute.go +++ b/integration/dockertestutil/execute.go @@ -9,7 +9,7 @@ import ( "github.com/ory/dockertest/v3" ) -const dockerExecuteTimeout = time.Second * 10 +const dockerExecuteTimeout = time.Second * 30 var ( ErrDockertestCommandFailed = errors.New("dockertest command failed") diff --git a/integration/scenario.go b/integration/scenario.go index 2bf30d0f63..6155f2dc90 100644 --- a/integration/scenario.go +++ b/integration/scenario.go @@ -7,7 +7,6 @@ import ( "net/netip" "os" "sync" - "time" v1 "github.com/juanfont/headscale/gen/go/headscale/v1" "github.com/juanfont/headscale/hscontrol/util" @@ -21,7 +20,6 @@ import ( const ( scenarioHashLength = 6 - maxWait = 60 * time.Second ) var ( @@ -130,7 +128,7 @@ func NewScenario() (*Scenario, error) { return nil, fmt.Errorf("could not connect to docker: %w", err) } - pool.MaxWait = maxWait + pool.MaxWait = dockertestMaxWait() networkName := fmt.Sprintf("hs-%s", hash) if overrideNetworkName := os.Getenv("HEADSCALE_TEST_NETWORK_NAME"); overrideNetworkName != "" { diff --git a/integration/tsic/tsic.go b/integration/tsic/tsic.go index 6efe70f61b..efe9c904a8 100644 --- a/integration/tsic/tsic.go +++ b/integration/tsic/tsic.go @@ -20,11 +20,12 @@ import ( ) const ( - tsicHashLength = 6 - defaultPingTimeout = 300 * time.Millisecond - defaultPingCount = 10 - dockerContextPath = "../." - headscaleCertPath = "/usr/local/share/ca-certificates/headscale.crt" + tsicHashLength = 6 + defaultPingTimeout = 300 * time.Millisecond + defaultPingCount = 10 + dockerContextPath = "../." + headscaleCertPath = "/usr/local/share/ca-certificates/headscale.crt" + dockerExecuteTimeout = 60 * time.Second ) var ( @@ -361,7 +362,7 @@ func (t *TailscaleInContainer) Login( ) } - if _, _, err := t.Execute(command); err != nil { + if _, _, err := t.Execute(command, dockertestutil.ExecuteCommandTimeout(dockerExecuteTimeout)); err != nil { return fmt.Errorf( "%s failed to join tailscale client (%s): %w", t.hostname, diff --git a/integration/utils.go b/integration/utils.go index 0b55654d75..91e274b1ac 100644 --- a/integration/utils.go +++ b/integration/utils.go @@ -1,6 +1,7 @@ package integration import ( + "os" "strings" "testing" "time" @@ -131,6 +132,38 @@ func isSelfClient(client TailscaleClient, addr string) bool { return false } +func isCI() bool { + if _, ok := os.LookupEnv("CI"); ok { + return true + } + + if _, ok := os.LookupEnv("GITHUB_RUN_ID"); ok { + return true + } + + return false +} + +func dockertestMaxWait() time.Duration { + wait := 60 * time.Second //nolint + + if isCI() { + wait = 300 * time.Second //nolint + } + + return wait +} + +// func dockertestCommandTimeout() time.Duration { +// timeout := 10 * time.Second //nolint +// +// if isCI() { +// timeout = 60 * time.Second //nolint +// } +// +// return timeout +// } + // pingAllNegativeHelper is intended to have 1 or more nodes timeing out from the ping, // it counts failures instead of successes. // func pingAllNegativeHelper(t *testing.T, clients []TailscaleClient, addrs []string) int {