kube/certs: widen runCertLoop per-call timeout to 30m (#20289)
All issuances serialise through a single mutex in tailscaled. The old 300s timeout fired while a predecessor was legitimately mid-ACME, causing the queued loop to advance retryCount on a non-failure. 30m covers ~15 queued flows and works as a wedge detector against true hangs. Updates #20288 Updates #42164 Signed-off-by: chaosinthecrd <tom@tmlabs.co.uk>
This commit is contained in:
+4
-5
@@ -136,11 +136,10 @@ func (cm *CertManager) runCertLoop(ctx context.Context, domain string) {
|
||||
// node's HTTPS endpoint share the same state/renewal lock mechanism,
|
||||
// so we should not run into redundant issuances during concurrent
|
||||
// renewal checks.
|
||||
|
||||
// An issuance holds a shared lock, so we need to avoid a situation
|
||||
// where other services cannot issue certs because a single one is
|
||||
// holding the lock.
|
||||
ctxT, cancel := context.WithTimeout(ctx, time.Second*300)
|
||||
//
|
||||
// Long enough to cover queue contention behind tailscaled's
|
||||
// shared cert mutex; if it fires, something is wedged.
|
||||
ctxT, cancel := context.WithTimeout(ctx, 30*time.Minute)
|
||||
_, _, err := cm.lc.CertPair(ctxT, domain)
|
||||
cancel()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user