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+
28+ import java .time .Duration ;
2429import java .util .ArrayList ;
2530import java .util .List ;
2631import java .util .concurrent .Executors ;
@@ -33,6 +38,7 @@ public class DefaultControllerBuilder {
3338 private int workerCount ;
3439 private String controllerName ;
3540 private RateLimitingQueue <Request > workQueue ;
41+ private Duration readyTimeout ;
3642
3743 private SharedInformerFactory informerFactory ;
3844 private List <Supplier <Boolean >> readyFuncs ;
@@ -114,6 +120,11 @@ public DefaultControllerBuilder withReadyFunc(Supplier<Boolean> readyFunc) {
114120 return this ;
115121 }
116122
123+ public DefaultControllerBuilder withReadyTimeout (Duration readyTimeout ) {
124+ this .readyTimeout = readyTimeout ;
125+ return this ;
126+ }
127+
117128 /**
118129 * Overrides worker thread counts of the controller.
119130 *
@@ -154,6 +165,9 @@ public Controller build() throws IllegalStateException {
154165 this .workQueue ,
155166 this .readyFuncs .stream ().toArray (Supplier []::new ));
156167
168+ if (this .readyTimeout != null ) {
169+ controller .setReadyTimeout (this .readyTimeout );
170+ }
157171 controller .setWorkerCount (this .workerCount );
158172 controller .setWorkerThreadPool (
159173 Executors .newScheduledThreadPool (
0 commit comments