Controller: Make Leader Election TTL configurable. (#11142)

* feature(leader_ttl): feature to customize ttl to leader be re-elected

* fix(review): docs
This commit is contained in:
Matheus Fidelis 2024-03-28 10:36:23 -03:00 committed by GitHub
parent aedb13c9fa
commit 7c8af4928b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 93 additions and 8 deletions

View file

@ -36,7 +36,8 @@ import (
type leaderElectionConfig struct {
Client clientset.Interface
ElectionID string
ElectionID string
ElectionTTL time.Duration
OnStartedLeading func(chan struct{})
OnStoppedLeading func()
@ -107,13 +108,11 @@ func setupLeaderElection(config *leaderElectionConfig) {
LockConfig: resourceLockConfig,
}
ttl := 30 * time.Second
elector, err = leaderelection.NewLeaderElector(leaderelection.LeaderElectionConfig{
Lock: lock,
LeaseDuration: ttl,
RenewDeadline: ttl / 2,
RetryPeriod: ttl / 4,
LeaseDuration: config.ElectionTTL,
RenewDeadline: config.ElectionTTL / 2,
RetryPeriod: config.ElectionTTL / 4,
Callbacks: callbacks,
})