@@ -113,6 +113,17 @@ type Options struct {
113
113
// will use for holding the leader lock.
114
114
LeaderElectionID string
115
115
116
+ // LeaseDuration is the duration that non-leader candidates will
117
+ // wait to force acquire leadership. This is measured against time of
118
+ // last observed ack.
119
+ LeaseDurationSeconds * time.Duration
120
+ // RenewDeadline is the duration that the acting master will retry
121
+ // refreshing leadership before giving up.
122
+ RenewDeadlineSeconds * time.Duration
123
+ // RetryPeriod is the duration the LeaderElector clients should wait
124
+ // between tries of actions.
125
+ RetryPeriodSeconds * time.Duration
126
+
116
127
// Namespace if specified restricts the manager's cache to watch objects in
117
128
// the desired namespace Defaults to all namespaces
118
129
//
@@ -231,22 +242,42 @@ func New(config *rest.Config, options Options) (Manager, error) {
231
242
232
243
stop := make (chan struct {})
233
244
245
+ var leaseDuration , renewDeadline , retryPeriod time.Duration
246
+ if options .LeaseDurationSeconds == nil {
247
+ leaseDuration = defaultLeaseDuration
248
+ } else {
249
+ leaseDuration = * options .LeaseDurationSeconds
250
+ }
251
+ if options .RenewDeadlineSeconds == nil {
252
+ renewDeadline = defaultRenewDeadline
253
+ } else {
254
+ renewDeadline = * options .RenewDeadlineSeconds
255
+ }
256
+ if options .RetryPeriodSeconds == nil {
257
+ retryPeriod = defaultRetryPeriod
258
+ } else {
259
+ retryPeriod = * options .RetryPeriodSeconds
260
+ }
261
+
234
262
return & controllerManager {
235
- config : config ,
236
- scheme : options .Scheme ,
237
- errChan : make (chan error ),
238
- cache : cache ,
239
- fieldIndexes : cache ,
240
- client : writeObj ,
241
- apiReader : apiReader ,
242
- recorderProvider : recorderProvider ,
243
- resourceLock : resourceLock ,
244
- mapper : mapper ,
245
- metricsListener : metricsListener ,
246
- internalStop : stop ,
247
- internalStopper : stop ,
248
- port : options .Port ,
249
- host : options .Host ,
263
+ config : config ,
264
+ scheme : options .Scheme ,
265
+ errChan : make (chan error ),
266
+ cache : cache ,
267
+ fieldIndexes : cache ,
268
+ client : writeObj ,
269
+ apiReader : apiReader ,
270
+ recorderProvider : recorderProvider ,
271
+ resourceLock : resourceLock ,
272
+ mapper : mapper ,
273
+ metricsListener : metricsListener ,
274
+ internalStop : stop ,
275
+ internalStopper : stop ,
276
+ port : options .Port ,
277
+ host : options .Host ,
278
+ leaseDurationSeconds : leaseDuration ,
279
+ renewDeadlineSeconds : renewDeadline ,
280
+ retryPeriodSeconds : retryPeriod ,
250
281
}, nil
251
282
}
252
283
0 commit comments