From 1088d9ef0963edae1a5c8e031c1b54be3cad1691 Mon Sep 17 00:00:00 2001 From: David Eads Date: Wed, 23 May 2018 15:00:37 -0400 Subject: [PATCH] prevent zero for leader election timeouts Kubernetes-commit: 7288e8828f5bf659d41e71760f9d9923e405e2e4 --- tools/leaderelection/leaderelection.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/leaderelection/leaderelection.go b/tools/leaderelection/leaderelection.go index e41b420c..aed55574 100644 --- a/tools/leaderelection/leaderelection.go +++ b/tools/leaderelection/leaderelection.go @@ -74,6 +74,16 @@ func NewLeaderElector(lec LeaderElectionConfig) (*LeaderElector, error) { if lec.RenewDeadline <= time.Duration(JitterFactor*float64(lec.RetryPeriod)) { return nil, fmt.Errorf("renewDeadline must be greater than retryPeriod*JitterFactor") } + if lec.LeaseDuration < 1 { + return nil, fmt.Errorf("leaseDuration must be greater than zero") + } + if lec.RenewDeadline < 1 { + return nil, fmt.Errorf("renewDeadline must be greater than zero") + } + if lec.RetryPeriod < 1 { + return nil, fmt.Errorf("retryPeriod must be greater than zero") + } + if lec.Lock == nil { return nil, fmt.Errorf("Lock must not be nil.") }