10
10
import org .slf4j .LoggerFactory ;
11
11
12
12
import io .fabric8 .kubernetes .api .model .HasMetadata ;
13
- import io .fabric8 .kubernetes .client .ConfigBuilder ;
14
13
import io .fabric8 .kubernetes .client .KubernetesClient ;
15
- import io .fabric8 .kubernetes .client .KubernetesClientBuilder ;
16
14
import io .fabric8 .kubernetes .client .Version ;
17
- import io .javaoperatorsdk .operator .api .config .BaseConfigurationService ;
18
15
import io .javaoperatorsdk .operator .api .config .ConfigurationService ;
19
16
import io .javaoperatorsdk .operator .api .config .ConfigurationServiceOverrider ;
20
17
import io .javaoperatorsdk .operator .api .config .ControllerConfiguration ;
26
23
@ SuppressWarnings ("rawtypes" )
27
24
public class Operator implements LifecycleAware {
28
25
private static final Logger log = LoggerFactory .getLogger (Operator .class );
29
- private static final int DEFAULT_MAX_CONCURRENT_REQUEST = 512 ;
26
+
30
27
private final KubernetesClient kubernetesClient ;
31
28
private final ControllerManager controllerManager ;
32
29
private final LeaderElectionManager leaderElectionManager ;
@@ -38,49 +35,56 @@ public Operator() {
38
35
this ((KubernetesClient ) null );
39
36
}
40
37
41
- public Operator (KubernetesClient kubernetesClient ) {
42
- this (kubernetesClient , new BaseConfigurationService () );
38
+ Operator (KubernetesClient kubernetesClient ) {
39
+ this (kubernetesClient , null );
43
40
}
44
41
45
42
/**
46
43
* @param configurationService implementation
47
44
* @deprecated Use {@link #Operator(Consumer)} instead
48
45
*/
49
46
@ Deprecated (forRemoval = true )
47
+ @ SuppressWarnings ("unused" )
50
48
public Operator (ConfigurationService configurationService ) {
51
- this (null , configurationService );
49
+ this (null , null );
52
50
}
53
51
54
52
public Operator (Consumer <ConfigurationServiceOverrider > overrider ) {
55
53
this (null , overrider );
56
54
}
57
55
58
- public Operator (KubernetesClient client , Consumer <ConfigurationServiceOverrider > overrider ) {
59
- this (client , ConfigurationService
60
- .newOverriddenConfigurationService (new BaseConfigurationService (), overrider ));
61
- }
62
-
63
56
/**
64
57
* Note that Operator by default closes the client on stop, this can be changed using
65
58
* {@link ConfigurationService}
66
59
*
67
- * @param kubernetesClient client to use to all Kubernetes related operations
68
- * @param configurationService provides configuration
60
+ * @param client client to use to all Kubernetes related operations
61
+ * @param overrider a {@link ConfigurationServiceOverrider} consumer used to override the default
62
+ * {@link ConfigurationService} values
63
+ * @deprecated Use {@link Operator#Operator(Consumer)} instead, passing your custom client with
64
+ * {@link ConfigurationServiceOverrider#withKubernetesClient(KubernetesClient)}
69
65
*/
70
- public Operator (KubernetesClient kubernetesClient , ConfigurationService configurationService ) {
71
- this .configurationService = configurationService ;
66
+ @ Deprecated
67
+ public Operator (KubernetesClient client , Consumer <ConfigurationServiceOverrider > overrider ) {
68
+ // initialize the client if the user didn't provide one
69
+ if (client == null ) {
70
+ var configurationService = ConfigurationService .newOverriddenConfigurationService (overrider );
71
+ client = configurationService .getKubernetesClient ();
72
+ }
73
+
74
+ this .kubernetesClient = client ;
75
+
76
+ // override the configuration service to use the same client
77
+ if (overrider != null ) {
78
+ overrider = overrider .andThen (o -> o .withKubernetesClient (this .kubernetesClient ));
79
+ } else {
80
+ overrider = o -> o .withKubernetesClient (this .kubernetesClient );
81
+ }
82
+ this .configurationService = ConfigurationService .newOverriddenConfigurationService (overrider );
83
+
72
84
final var executorServiceManager = configurationService .getExecutorServiceManager ();
73
85
controllerManager = new ControllerManager (executorServiceManager );
74
- this .kubernetesClient =
75
- kubernetesClient != null ? kubernetesClient
76
- : new KubernetesClientBuilder ()
77
- .withConfig (new ConfigBuilder ()
78
- .withMaxConcurrentRequests (DEFAULT_MAX_CONCURRENT_REQUEST ).build ())
79
- .build ();
80
-
81
86
82
- leaderElectionManager =
83
- new LeaderElectionManager (kubernetesClient , controllerManager , configurationService );
87
+ leaderElectionManager = new LeaderElectionManager (controllerManager , configurationService );
84
88
}
85
89
86
90
/**
0 commit comments