Skip to content

Commit 29b0546

Browse files
authored
feat: rename context to EventSourceContext, provide KubernetesClient access (#796)
1 parent 3ed61ac commit 29b0546

File tree

7 files changed

+32
-20
lines changed

7 files changed

+32
-20
lines changed
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

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

89
/**
9-
* Contextual information made available to prepare event sources.
10+
* Contextual information made available to event sources.
1011
*
1112
* @param <P> the type associated with the primary resource that is handled by your reconciler
1213
*/
13-
public class EventSourceInitializationContext<P extends HasMetadata> {
14+
public class EventSourceContext<P extends HasMetadata> {
1415

1516
private final ResourceCache<P> primaryCache;
1617
private final ConfigurationService configurationService;
18+
private final KubernetesClient client;
1719

18-
public EventSourceInitializationContext(ResourceCache<P> primaryCache,
19-
ConfigurationService configurationService) {
20+
public EventSourceContext(ResourceCache<P> primaryCache,
21+
ConfigurationService configurationService, KubernetesClient client) {
2022
this.primaryCache = primaryCache;
2123
this.configurationService = configurationService;
24+
this.client = client;
2225
}
2326

2427
/**
@@ -42,4 +45,15 @@ public ResourceCache<P> getPrimaryCache() {
4245
public ConfigurationService getConfigurationService() {
4346
return configurationService;
4447
}
48+
49+
/**
50+
* Provides access to the {@link KubernetesClient} used by the current
51+
* {@link io.javaoperatorsdk.operator.Operator} instance.
52+
*
53+
* @return the {@link KubernetesClient} used by the current
54+
* {@link io.javaoperatorsdk.operator.Operator} instance.
55+
*/
56+
public KubernetesClient getClient() {
57+
return client;
58+
}
4559
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public interface EventSourceInitializer<P extends HasMetadata> {
1616
/**
1717
* Prepares a list of {@link EventSource} implementations to be registered by the SDK.
1818
*
19-
* @param context a {@link EventSourceInitializationContext} providing access to information
20-
* useful to event sources
19+
* @param context a {@link EventSourceContext} providing access to information useful to event
20+
* sources
2121
*/
22-
List<EventSource> prepareEventSources(EventSourceInitializationContext<P> context);
22+
List<EventSource> prepareEventSources(EventSourceContext<P> context);
2323

2424
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import io.javaoperatorsdk.operator.api.monitoring.Metrics.ControllerExecution;
2121
import io.javaoperatorsdk.operator.api.reconciler.Context;
2222
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
23-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializationContext;
23+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
2424
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
2525
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2626
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
@@ -108,7 +108,7 @@ private Metrics metrics() {
108108
}
109109

110110
@Override
111-
public List<EventSource> prepareEventSources(EventSourceInitializationContext<R> context) {
111+
public List<EventSource> prepareEventSources(EventSourceContext<R> context) {
112112
throw new UnsupportedOperationException("This method should never be called directly");
113113
}
114114

@@ -182,9 +182,9 @@ public void start() throws OperatorException {
182182
eventSourceManager = new EventSourceManager<>(this);
183183
if (reconciler instanceof EventSourceInitializer) {
184184
((EventSourceInitializer<R>) reconciler)
185-
.prepareEventSources(new EventSourceInitializationContext<>(
185+
.prepareEventSources(new EventSourceContext<>(
186186
eventSourceManager.getControllerResourceEventSource().getResourceCache(),
187-
configurationService()))
187+
configurationService(), kubernetesClient))
188188
.forEach(eventSourceManager::registerEventSource);
189189
}
190190
if (failOnMissingCurrentNS()) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informereventsource/InformerEventSourceTestCustomReconciler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import io.fabric8.kubernetes.client.KubernetesClient;
1010
import io.javaoperatorsdk.operator.api.reconciler.Context;
1111
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
12-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializationContext;
12+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
1313
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
1414
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
1515
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
@@ -39,7 +39,7 @@ public class InformerEventSourceTestCustomReconciler implements
3939

4040
@Override
4141
public List<EventSource> prepareEventSources(
42-
EventSourceInitializationContext<InformerEventSourceTestCustomResource> context) {
42+
EventSourceContext<InformerEventSourceTestCustomResource> context) {
4343
return List.of(new InformerEventSource<>(kubernetesClient, ConfigMap.class,
4444
Mappers.fromAnnotation(RELATED_RESOURCE_NAME)));
4545
}

sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public MySQLSchemaReconciler(KubernetesClient kubernetesClient, MySQLDbConfig my
4242

4343
@Override
4444
public List<EventSource> prepareEventSources(
45-
EventSourceInitializationContext<MySQLSchema> context) {
45+
EventSourceContext<MySQLSchema> context) {
4646
return List.of(new PerResourcePollingEventSource<>(
4747
new SchemaPollingResourceSupplier(mysqlDbConfig), context.getPrimaryCache(), POLL_PERIOD,
4848
Schema.class));

sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.fabric8.kubernetes.client.utils.Serialization;
1919
import io.javaoperatorsdk.operator.api.reconciler.Context;
2020
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
21-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializationContext;
21+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
2222
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
2323
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2424
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
@@ -45,7 +45,7 @@ public TomcatReconciler(KubernetesClient client) {
4545
}
4646

4747
@Override
48-
public List<EventSource> prepareEventSources(EventSourceInitializationContext<Tomcat> context) {
48+
public List<EventSource> prepareEventSources(EventSourceContext<Tomcat> context) {
4949
SharedIndexInformer<Deployment> deploymentInformer =
5050
kubernetesClient.apps().deployments().inAnyNamespace()
5151
.withLabel("app.kubernetes.io/managed-by", "tomcat-operator")

sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,14 @@
2020
import io.javaoperatorsdk.operator.api.reconciler.Context;
2121
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
2222
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
23-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializationContext;
23+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
2424
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
2525
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2626
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
2727
import io.javaoperatorsdk.operator.processing.event.ResourceID;
2828
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
2929
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
3030

31-
import okhttp3.Response;
32-
3331
@ControllerConfiguration
3432
public class WebappReconciler implements Reconciler<Webapp>, EventSourceInitializer<Webapp> {
3533

@@ -42,7 +40,7 @@ public WebappReconciler(KubernetesClient kubernetesClient) {
4240
}
4341

4442
@Override
45-
public List<EventSource> prepareEventSources(EventSourceInitializationContext<Webapp> context) {
43+
public List<EventSource> prepareEventSources(EventSourceContext<Webapp> context) {
4644
return List.of(new InformerEventSource<>(
4745
kubernetesClient, Tomcat.class, t -> {
4846
// To create an event to a related WebApp resource and trigger the reconciliation

0 commit comments

Comments
 (0)