Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 13a6c83

Browse files
authoredMar 11, 2022
feat: retrieve ConfigurationService from ConfigurationServiceProvider (#1010)
1 parent 0c4f0a5 commit 13a6c83

File tree

63 files changed

+471
-457
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+471
-457
lines changed
 

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import io.fabric8.kubernetes.client.KubernetesClient;
1515
import io.fabric8.kubernetes.client.Version;
1616
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
17+
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider;
18+
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider;
1719
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
1820
import io.javaoperatorsdk.operator.api.config.ControllerConfigurationOverrider;
1921
import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager;
@@ -25,14 +27,33 @@
2527
public class Operator implements LifecycleAware {
2628
private static final Logger log = LoggerFactory.getLogger(Operator.class);
2729
private final KubernetesClient kubernetesClient;
28-
private final ConfigurationService configurationService;
2930
private final ControllerManager controllers = new ControllerManager();
3031

32+
public Operator() {
33+
this(new DefaultKubernetesClient(), ConfigurationServiceProvider.instance());
34+
}
35+
36+
public Operator(KubernetesClient kubernetesClient) {
37+
this(kubernetesClient, ConfigurationServiceProvider.instance());
38+
}
3139

40+
/**
41+
* @deprecated Use {@link #Operator(Consumer)} instead
42+
*/
43+
@Deprecated
3244
public Operator(ConfigurationService configurationService) {
3345
this(new DefaultKubernetesClient(), configurationService);
3446
}
3547

48+
public Operator(Consumer<ConfigurationServiceOverrider> overrider) {
49+
this(new DefaultKubernetesClient(), overrider);
50+
}
51+
52+
public Operator(KubernetesClient client, Consumer<ConfigurationServiceOverrider> overrider) {
53+
this(client);
54+
ConfigurationServiceProvider.overrideCurrent(overrider);
55+
}
56+
3657
/**
3758
* Note that Operator by default closes the client on stop, this can be changed using
3859
* {@link ConfigurationService}
@@ -42,7 +63,7 @@ public Operator(ConfigurationService configurationService) {
4263
*/
4364
public Operator(KubernetesClient kubernetesClient, ConfigurationService configurationService) {
4465
this.kubernetesClient = kubernetesClient;
45-
this.configurationService = configurationService;
66+
ConfigurationServiceProvider.set(configurationService);
4667
}
4768

4869
/** Adds a shutdown hook that automatically calls {@link #stop()} ()} when the app shuts down. */
@@ -54,10 +75,6 @@ public KubernetesClient getKubernetesClient() {
5475
return kubernetesClient;
5576
}
5677

57-
public ConfigurationService getConfigurationService() {
58-
return configurationService;
59-
}
60-
6178
public List<Controller> getControllers() {
6279
return new ArrayList<>(controllers.controllers.values());
6380
}
@@ -70,7 +87,7 @@ public List<Controller> getControllers() {
7087
public void start() {
7188
controllers.shouldStart();
7289

73-
final var version = configurationService.getVersion();
90+
final var version = ConfigurationServiceProvider.instance().getVersion();
7491
log.info(
7592
"Operator SDK {} (commit: {}) built on {} starting...",
7693
version.getSdkVersion(),
@@ -80,12 +97,13 @@ public void start() {
8097
final var clientVersion = Version.clientVersion();
8198
log.info("Client version: {}", clientVersion);
8299

83-
ExecutorServiceManager.init(configurationService);
100+
ExecutorServiceManager.init();
84101
controllers.start();
85102
}
86103

87104
@Override
88105
public void stop() throws OperatorException {
106+
final var configurationService = ConfigurationServiceProvider.instance();
89107
log.info(
90108
"Operator SDK {} is shutting down...", configurationService.getVersion().getSdkVersion());
91109

@@ -107,7 +125,8 @@ public void stop() throws OperatorException {
107125
*/
108126
public <R extends HasMetadata> void register(Reconciler<R> reconciler)
109127
throws OperatorException {
110-
final var controllerConfiguration = configurationService.getConfigurationFor(reconciler);
128+
final var controllerConfiguration =
129+
ConfigurationServiceProvider.instance().getConfigurationFor(reconciler);
111130
register(reconciler, controllerConfiguration);
112131
}
113132

@@ -132,7 +151,8 @@ public <R extends HasMetadata> void register(Reconciler<R> reconciler,
132151
"Cannot register reconciler with name " + reconciler.getClass().getCanonicalName() +
133152
" reconciler named " + ReconcilerUtils.getNameFor(reconciler)
134153
+ " because its configuration cannot be found.\n" +
135-
" Known reconcilers are: " + configurationService.getKnownReconcilerNames());
154+
" Known reconcilers are: "
155+
+ ConfigurationServiceProvider.instance().getKnownReconcilerNames());
136156
}
137157

138158
final var controller = new Controller<>(reconciler, configuration, kubernetesClient);
@@ -158,7 +178,8 @@ public <R extends HasMetadata> void register(Reconciler<R> reconciler,
158178
*/
159179
public <R extends HasMetadata> void register(Reconciler<R> reconciler,
160180
Consumer<ControllerConfigurationOverrider<R>> configOverrider) {
161-
final var controllerConfiguration = configurationService.getConfigurationFor(reconciler);
181+
final var controllerConfiguration =
182+
ConfigurationServiceProvider.instance().getConfigurationFor(reconciler);
162183
var configToOverride = ControllerConfigurationOverrider.override(controllerConfiguration);
163184
configOverrider.accept(configToOverride);
164185
register(reconciler, configToOverride.build());

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ protected <R extends HasMetadata> void replace(ControllerConfiguration<R> config
2626
put(config, false);
2727
}
2828

29+
@SuppressWarnings("unchecked")
2930
private <R extends HasMetadata> void put(
3031
ControllerConfiguration<R> config, boolean failIfExisting) {
3132
final var name = config.getName();
@@ -36,7 +37,6 @@ private <R extends HasMetadata> void put(
3637
}
3738
}
3839
configurations.put(name, config);
39-
config.setConfigurationService(this);
4040
}
4141

4242
protected <R extends HasMetadata> void throwExceptionOnNameCollision(
@@ -50,6 +50,7 @@ protected <R extends HasMetadata> void throwExceptionOnNameCollision(
5050
+ newReconcilerClassName);
5151
}
5252

53+
@SuppressWarnings("unchecked")
5354
@Override
5455
public <R extends HasMetadata> ControllerConfiguration<R> getConfigurationFor(
5556
Reconciler<R> reconciler) {

0 commit comments

Comments
 (0)
Please sign in to comment.