Skip to content

Commit f40023c

Browse files
authored
feat: initialization context provides access to ConfigurationService (#776)
1 parent 4bfc346 commit f40023c

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceInitializationContext.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

33
import io.fabric8.kubernetes.api.model.HasMetadata;
4+
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
45
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
56
import io.javaoperatorsdk.operator.processing.event.source.ResourceCache;
67

@@ -12,9 +13,12 @@
1213
public class EventSourceInitializationContext<P extends HasMetadata> {
1314

1415
private final ResourceCache<P> primaryCache;
16+
private final ConfigurationService configurationService;
1517

16-
public EventSourceInitializationContext(ResourceCache<P> primaryCache) {
18+
public EventSourceInitializationContext(ResourceCache<P> primaryCache,
19+
ConfigurationService configurationService) {
1720
this.primaryCache = primaryCache;
21+
this.configurationService = configurationService;
1822
}
1923

2024
/**
@@ -25,4 +29,17 @@ public EventSourceInitializationContext(ResourceCache<P> primaryCache) {
2529
public ResourceCache<P> getPrimaryCache() {
2630
return primaryCache;
2731
}
32+
33+
/**
34+
* Retrieves the {@link ConfigurationService} associated with the operator. This allows, in
35+
* particular, to lookup global configuration information such as the configured
36+
* {@link io.javaoperatorsdk.operator.api.monitoring.Metrics} or
37+
* {@link io.javaoperatorsdk.operator.api.config.Cloner} implementations, which could be useful to
38+
* event sources.
39+
*
40+
* @return the {@link ConfigurationService} associated with the operator
41+
*/
42+
public ConfigurationService getConfigurationService() {
43+
return configurationService;
44+
}
2845
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ public void start() throws OperatorException {
173173
if (reconciler instanceof EventSourceInitializer) {
174174
((EventSourceInitializer<R>) reconciler)
175175
.prepareEventSources(new EventSourceInitializationContext<>(
176-
eventSourceManager.getControllerResourceEventSource().getResourceCache()))
176+
eventSourceManager.getControllerResourceEventSource().getResourceCache(),
177+
configuration.getConfigurationService()))
177178
.forEach(eventSourceManager::registerEventSource);
178179
}
179180
if (failOnMissingCurrentNS()) {

0 commit comments

Comments
 (0)