1313package io .kubernetes .client .extended .controller .builder ;
1414
1515import io .kubernetes .client .common .KubernetesObject ;
16- import io .kubernetes .client .extended .controller .*;
16+ import io .kubernetes .client .extended .controller .Controller ;
17+ import io .kubernetes .client .extended .controller .ControllerWatch ;
18+ import io .kubernetes .client .extended .controller .Controllers ;
19+ import io .kubernetes .client .extended .controller .DefaultController ;
1720import io .kubernetes .client .extended .controller .reconciler .Reconciler ;
1821import io .kubernetes .client .extended .controller .reconciler .Request ;
1922import io .kubernetes .client .extended .workqueue .DefaultRateLimitingQueue ;
2023import io .kubernetes .client .extended .workqueue .RateLimitingQueue ;
2124import io .kubernetes .client .extended .workqueue .WorkQueue ;
2225import io .kubernetes .client .informer .SharedIndexInformer ;
2326import io .kubernetes .client .informer .SharedInformerFactory ;
27+ import java .time .Duration ;
2428import java .util .ArrayList ;
2529import java .util .List ;
2630import java .util .concurrent .Executors ;
@@ -33,6 +37,7 @@ public class DefaultControllerBuilder {
3337 private int workerCount ;
3438 private String controllerName ;
3539 private RateLimitingQueue <Request > workQueue ;
40+ private Duration readyTimeout ;
3641
3742 private SharedInformerFactory informerFactory ;
3843 private List <Supplier <Boolean >> readyFuncs ;
@@ -114,6 +119,11 @@ public DefaultControllerBuilder withReadyFunc(Supplier<Boolean> readyFunc) {
114119 return this ;
115120 }
116121
122+ public DefaultControllerBuilder withReadyTimeout (Duration readyTimeout ) {
123+ this .readyTimeout = readyTimeout ;
124+ return this ;
125+ }
126+
117127 /**
118128 * Overrides worker thread counts of the controller.
119129 *
@@ -154,6 +164,9 @@ public Controller build() throws IllegalStateException {
154164 this .workQueue ,
155165 this .readyFuncs .stream ().toArray (Supplier []::new ));
156166
167+ if (this .readyTimeout != null ) {
168+ controller .setReadyTimeout (this .readyTimeout );
169+ }
157170 controller .setWorkerCount (this .workerCount );
158171 controller .setWorkerThreadPool (
159172 Executors .newScheduledThreadPool (
0 commit comments