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 5031760

Browse files
metacosmcsviri
authored andcommittedOct 18, 2023
refactor: remove now unneeded KubernetesClientAware (#2084)
* refactor: remove now unneeded KubernetesClientAware Signed-off-by: Chris Laprun <[email protected]> * chore: clean-up Signed-off-by: Chris Laprun <[email protected]> * refactor: more unneeded client recording removal Signed-off-by: Chris Laprun <[email protected]> * refactor: more unneeded client recording removal Signed-off-by: Chris Laprun <[email protected]> * fix: restore backwards compatibility Signed-off-by: Chris Laprun <[email protected]> --------- Signed-off-by: Chris Laprun <[email protected]>
1 parent cb18124 commit 5031760

File tree

30 files changed

+80
-355
lines changed

30 files changed

+80
-355
lines changed
 

‎caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
88

9-
import io.fabric8.kubernetes.api.model.*;
9+
import io.fabric8.kubernetes.api.model.ConfigMap;
10+
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
11+
import io.fabric8.kubernetes.api.model.HasMetadata;
12+
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
1013
import io.fabric8.kubernetes.client.CustomResource;
1114
import io.fabric8.kubernetes.client.KubernetesClient;
1215
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
1316
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
1417
import io.javaoperatorsdk.operator.api.reconciler.*;
15-
import io.javaoperatorsdk.operator.api.reconciler.Context;
16-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1718
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1819
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
1920
import io.javaoperatorsdk.operator.processing.event.source.cache.CaffeineBoundedItemStores;
@@ -27,38 +28,35 @@
2728
import com.github.benmanes.caffeine.cache.Caffeine;
2829

2930
public abstract class AbstractTestReconciler<P extends CustomResource<BoundedCacheTestSpec, BoundedCacheTestStatus>>
30-
implements KubernetesClientAware, Reconciler<P>,
31-
EventSourceInitializer<P> {
31+
implements Reconciler<P>, EventSourceInitializer<P> {
3232

3333
private static final Logger log =
3434
LoggerFactory.getLogger(BoundedCacheClusterScopeTestReconciler.class);
3535

3636
public static final String DATA_KEY = "dataKey";
3737

38-
protected KubernetesClient client;
39-
4038
@Override
4139
public UpdateControl<P> reconcile(
4240
P resource,
4341
Context<P> context) {
4442
var maybeConfigMap = context.getSecondaryResource(ConfigMap.class);
4543
maybeConfigMap.ifPresentOrElse(
46-
cm -> updateConfigMapIfNeeded(cm, resource),
47-
() -> createConfigMap(resource));
44+
cm -> updateConfigMapIfNeeded(cm, resource, context),
45+
() -> createConfigMap(resource, context));
4846
ensureStatus(resource);
4947
log.info("Reconciled: {}", resource.getMetadata().getName());
5048
return UpdateControl.patchStatus(resource);
5149
}
5250

53-
protected void updateConfigMapIfNeeded(ConfigMap cm, P resource) {
51+
protected void updateConfigMapIfNeeded(ConfigMap cm, P resource, Context<P> context) {
5452
var data = cm.getData().get(DATA_KEY);
5553
if (data == null || data.equals(resource.getSpec().getData())) {
5654
cm.setData(Map.of(DATA_KEY, resource.getSpec().getData()));
57-
client.configMaps().resource(cm).replace();
55+
context.getClient().configMaps().resource(cm).replace();
5856
}
5957
}
6058

61-
protected void createConfigMap(P resource) {
59+
protected void createConfigMap(P resource, Context<P> context) {
6260
var cm = new ConfigMapBuilder()
6361
.withMetadata(new ObjectMetaBuilder()
6462
.withName(resource.getMetadata().getName())
@@ -67,17 +65,7 @@ protected void createConfigMap(P resource) {
6765
.withData(Map.of(DATA_KEY, resource.getSpec().getData()))
6866
.build();
6967
cm.addOwnerReference(resource);
70-
client.configMaps().resource(cm).create();
71-
}
72-
73-
@Override
74-
public KubernetesClient getKubernetesClient() {
75-
return client;
76-
}
77-
78-
@Override
79-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
80-
this.client = kubernetesClient;
68+
context.getClient().configMaps().resource(cm).create();
8169
}
8270

8371
@Override

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/KubernetesClientAware.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package io.javaoperatorsdk.operator.api.reconciler.dependent.managed;
22

33
import io.fabric8.kubernetes.client.KubernetesClient;
4+
import io.javaoperatorsdk.operator.api.reconciler.Context;
45

6+
/**
7+
* @deprecated It shouldn't be needed to pass a {@link KubernetesClient} instance anymore as the
8+
* client should be accessed via {@link Context#getClient()} instead.
9+
*/
10+
@Deprecated(since = "4.5.0", forRemoval = true)
511
public interface KubernetesClientAware {
612
void setKubernetesClient(KubernetesClient kubernetesClient);
713

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.dependent;
22

33
import io.fabric8.kubernetes.api.model.HasMetadata;
4-
import io.fabric8.kubernetes.client.KubernetesClient;
54
import io.javaoperatorsdk.operator.api.reconciler.Context;
65
import io.javaoperatorsdk.operator.api.reconciler.dependent.RecentOperationCacheFiller;
76
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
@@ -18,7 +17,6 @@ public abstract class AbstractExternalDependentResource<R, P extends HasMetadata
1817
@SuppressWarnings("rawtypes")
1918
private DependentResourceWithExplicitState dependentResourceWithExplicitState;
2019
private InformerEventSource<?, P> externalStateEventSource;
21-
private KubernetesClient kubernetesClient;
2220

2321
@SuppressWarnings("unchecked")
2422
protected AbstractExternalDependentResource(Class<R> resourceType) {
@@ -65,14 +63,13 @@ public void delete(P primary, Context<P> context) {
6563
@SuppressWarnings({"unchecked", "unused"})
6664
private void handleExplicitStateDelete(P primary, R secondary, Context<P> context) {
6765
var res = dependentResourceWithExplicitState.stateResource(primary, secondary);
68-
dependentResourceWithExplicitState.getKubernetesClient().resource(res).delete();
66+
context.getClient().resource(res).delete();
6967
}
7068

7169
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
7270
protected void handleExplicitStateCreation(P primary, R created, Context<P> context) {
7371
var resource = dependentResourceWithExplicitState.stateResource(primary, created);
74-
var stateResource =
75-
dependentResourceWithExplicitState.getKubernetesClient().resource(resource).create();
72+
var stateResource = context.getClient().resource(resource).create();
7673
if (externalStateEventSource != null) {
7774
((RecentOperationCacheFiller) externalStateEventSource)
7875
.handleRecentResourceCreate(ResourceID.fromResource(primary), stateResource);
@@ -84,7 +81,7 @@ protected void handleExplicitStateCreation(P primary, R created, Context<P> cont
8481
public void deleteTargetResource(P primary, R resource, String key,
8582
Context<P> context) {
8683
if (isDependentResourceWithExplicitState) {
87-
getKubernetesClient()
84+
context.getClient()
8885
.resource(dependentResourceWithExplicitState.stateResource(primary, resource))
8986
.delete();
9087
}
@@ -100,18 +97,4 @@ public void handleDeleteTargetResource(P primary, R resource, String key,
10097
protected InformerEventSource getExternalStateEventSource() {
10198
return externalStateEventSource;
10299
}
103-
104-
/**
105-
* It's here just to manage the explicit state resource in case the dependent resource implements
106-
* {@link RecentOperationCacheFiller}.
107-
*
108-
* @return kubernetes client.
109-
*/
110-
public KubernetesClient getKubernetesClient() {
111-
return kubernetesClient;
112-
}
113-
114-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
115-
this.kubernetesClient = kubernetesClient;
116-
}
117100
}

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/DependentResourceWithExplicitState.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import io.fabric8.kubernetes.api.model.HasMetadata;
66
import io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter;
7-
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.KubernetesClientAware;
87

98
/**
109
* Handles external resources where in order to address the resource additional information or
@@ -14,7 +13,7 @@
1413
* for a resource that extends {@link AbstractExternalDependentResource}.
1514
*/
1615
public interface DependentResourceWithExplicitState<R, P extends HasMetadata, S extends HasMetadata>
17-
extends Creator<R, P>, Deleter<P>, KubernetesClientAware {
16+
extends Creator<R, P>, Deleter<P> {
1817

1918
/**
2019
* Only needs to be implemented if multiple event sources are present for the target resource

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.slf4j.LoggerFactory;
99

1010
import io.fabric8.kubernetes.api.model.HasMetadata;
11-
import io.fabric8.kubernetes.client.KubernetesClient;
1211
import io.fabric8.kubernetes.client.dsl.Resource;
1312
import io.javaoperatorsdk.operator.OperatorException;
1413
import io.javaoperatorsdk.operator.api.config.dependent.Configured;
@@ -19,7 +18,6 @@
1918
import io.javaoperatorsdk.operator.api.reconciler.Ignore;
2019
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
2120
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator;
22-
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.KubernetesClientAware;
2321
import io.javaoperatorsdk.operator.processing.dependent.AbstractEventSourceHolderDependentResource;
2422
import io.javaoperatorsdk.operator.processing.dependent.Matcher.Result;
2523
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.updatermatcher.GenericResourceUpdaterMatcher;
@@ -33,17 +31,14 @@
3331
converter = KubernetesDependentConverter.class)
3432
public abstract class KubernetesDependentResource<R extends HasMetadata, P extends HasMetadata>
3533
extends AbstractEventSourceHolderDependentResource<R, P, InformerEventSource<R, P>>
36-
implements KubernetesClientAware,
37-
DependentResourceConfigurator<KubernetesDependentResourceConfig<R>> {
34+
implements DependentResourceConfigurator<KubernetesDependentResourceConfig<R>> {
3835

3936
private static final Logger log = LoggerFactory.getLogger(KubernetesDependentResource.class);
40-
41-
protected KubernetesClient client;
4237
private final ResourceUpdaterMatcher<R> updaterMatcher;
4338
private final boolean garbageCollected = this instanceof GarbageCollected;
4439
private KubernetesDependentResourceConfig<R> kubernetesDependentResourceConfig;
4540

46-
private boolean usingCustomResourceUpdateMatcher;
41+
private final boolean usingCustomResourceUpdateMatcher;
4742

4843
@SuppressWarnings("unchecked")
4944
public KubernetesDependentResource(Class<R> resourceType) {
@@ -117,7 +112,7 @@ public R create(R desired, P primary, Context<P> context) {
117112
}
118113
}
119114
addMetadata(false, null, desired, primary, context);
120-
final var resource = prepare(desired, primary, "Creating");
115+
final var resource = prepare(context, desired, primary, "Creating");
121116
return useSSA(context)
122117
? resource
123118
.fieldManager(context.getControllerConfiguration().fieldManager())
@@ -134,12 +129,12 @@ public R update(R actual, R desired, P primary, Context<P> context) {
134129
R updatedResource;
135130
addMetadata(false, actual, desired, primary, context);
136131
if (useSSA(context)) {
137-
updatedResource = prepare(desired, primary, "Updating")
132+
updatedResource = prepare(context, desired, primary, "Updating")
138133
.fieldManager(context.getControllerConfiguration().fieldManager())
139134
.forceConflicts().serverSideApply();
140135
} else {
141136
var updatedActual = updaterMatcher.updateResource(actual, desired, context);
142-
updatedResource = prepare(updatedActual, primary, "Updating").update();
137+
updatedResource = prepare(context, updatedActual, primary, "Updating").update();
143138
}
144139
log.debug("Resource version after update: {}",
145140
updatedResource.getMetadata().getResourceVersion());
@@ -216,23 +211,23 @@ private boolean usePreviousAnnotation(Context<P> context) {
216211
@Override
217212
protected void handleDelete(P primary, R secondary, Context<P> context) {
218213
if (secondary != null) {
219-
client.resource(secondary).delete();
214+
context.getClient().resource(secondary).delete();
220215
}
221216
}
222217

223218
@SuppressWarnings("unused")
224219
public void deleteTargetResource(P primary, R resource, String key, Context<P> context) {
225-
client.resource(resource).delete();
220+
context.getClient().resource(resource).delete();
226221
}
227222

228223
@SuppressWarnings("unused")
229-
protected Resource<R> prepare(R desired, P primary, String actionName) {
224+
protected Resource<R> prepare(Context<P> context, R desired, P primary, String actionName) {
230225
log.debug("{} target resource with type: {}, with id: {}",
231226
actionName,
232227
desired.getClass(),
233228
ResourceID.fromResource(desired));
234229

235-
return client.resource(desired);
230+
return context.getClient().resource(desired);
236231
}
237232

238233
protected void addReferenceHandlingMetadata(R desired, P primary) {
@@ -292,16 +287,6 @@ protected boolean addOwnerReference() {
292287
return garbageCollected;
293288
}
294289

295-
@Override
296-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
297-
this.client = kubernetesClient;
298-
}
299-
300-
@Override
301-
public KubernetesClient getKubernetesClient() {
302-
return client;
303-
}
304-
305290
@Override
306291
protected R desired(P primary, Context<P> context) {
307292
return super.desired(primary, context);

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public abstract class ManagedInformerEventSource<R extends HasMetadata, P extend
3737

3838
private static final Logger log = LoggerFactory.getLogger(ManagedInformerEventSource.class);
3939
private final InformerManager<R, C> cache;
40-
4140
protected TemporaryResourceCache<R> temporaryResourceCache;
4241
protected MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client;
4342

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package io.javaoperatorsdk.operator.junit;
22

33
import io.fabric8.kubernetes.client.KubernetesClient;
4+
import io.javaoperatorsdk.operator.api.reconciler.Context;
45

6+
/**
7+
* @deprecated It shouldn't be needed to pass a {@link KubernetesClient} instance to the reconciler
8+
* anymore as the client should be accessed via {@link Context#getClient()} instead.
9+
*/
10+
@Deprecated(since = "4.5.0", forRemoval = true)
511
public interface KubernetesClientAware extends HasKubernetesClient {
612
void setKubernetesClient(KubernetesClient kubernetesClient);
713
}

‎operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,6 @@ protected void before(ExtensionContext context) {
152152
applyCrd(config.getResourceTypeName());
153153
}
154154

155-
if (ref.reconciler instanceof KubernetesClientAware) {
156-
((KubernetesClientAware) ref.reconciler).setKubernetesClient(kubernetesClient);
157-
}
158-
159155
var registeredController = this.operator.register(ref.reconciler, oconfig.build());
160156
registeredControllers.put(ref.reconciler, registeredController);
161157
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentReInitializationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ private static void startEndStopOperator(KubernetesClient client,
3131
Operator o1 = new Operator(o -> o
3232
.withCloseClientOnStop(false)
3333
.withKubernetesClient(client));
34-
o1.register(new DependentReInitializationReconciler(dependent, client));
34+
o1.register(new DependentReInitializationReconciler(dependent));
3535
o1.start();
3636
o1.stop();
3737
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentSSAMigrationIT.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,9 @@ private DependnetSSACustomResource reconcileWithLegacyOperator(Operator legacyOp
143143

144144
private Operator createOperator(KubernetesClient client, boolean legacyDependentHandling,
145145
String fieldManager) {
146-
Operator operator = new Operator(client,
147-
o -> o.withCloseClientOnStop(false));
146+
Operator operator =
147+
new Operator(o -> o.withKubernetesClient(client).withCloseClientOnStop(false));
148148
var reconciler = new DependentSSAReconciler(!legacyDependentHandling);
149-
reconciler.setKubernetesClient(client);
150149
operator.register(reconciler, o -> {
151150
o.settingNamespace(namespace);
152151
if (fieldManager != null) {

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/OperatorRestartIT.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
package io.javaoperatorsdk.operator;
22

3-
import org.junit.jupiter.api.AfterEach;
4-
import org.junit.jupiter.api.BeforeAll;
5-
import org.junit.jupiter.api.BeforeEach;
6-
import org.junit.jupiter.api.Order;
7-
import org.junit.jupiter.api.Test;
3+
import org.junit.jupiter.api.*;
84

95
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
10-
import io.fabric8.kubernetes.client.KubernetesClient;
11-
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
126
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
137
import io.javaoperatorsdk.operator.sample.restart.RestartTestCustomResource;
148
import io.javaoperatorsdk.operator.sample.restart.RestartTestReconciler;
@@ -17,14 +11,15 @@
1711
import static org.awaitility.Awaitility.await;
1812

1913
class OperatorRestartIT {
20-
private final static KubernetesClient client = new KubernetesClientBuilder().build();
14+
2115
private final static Operator operator = new Operator(o -> o.withCloseClientOnStop(false));
2216
private final static RestartTestReconciler reconciler = new RestartTestReconciler();
2317
private static int reconcileNumberBeforeStop = 0;
2418

2519
@BeforeAll
2620
static void registerReconciler() {
27-
LocallyRunOperatorExtension.applyCrd(RestartTestCustomResource.class, client);
21+
LocallyRunOperatorExtension.applyCrd(RestartTestCustomResource.class,
22+
operator.getKubernetesClient());
2823
operator.register(reconciler);
2924
}
3025

@@ -41,7 +36,7 @@ void stopOperator() {
4136
@Test
4237
@Order(1)
4338
void createResource() {
44-
client.resource(testCustomResource()).createOrReplace();
39+
operator.getKubernetesClient().resource(testCustomResource()).createOrReplace();
4540
await().untilAsserted(() -> assertThat(reconciler.getNumberOfExecutions()).isGreaterThan(0));
4641
reconcileNumberBeforeStop = reconciler.getNumberOfExecutions();
4742
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ConfigMapDeleterBulkDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public ConfigMap desired(BulkDependentTestCustomResource primary, String key,
5555
.withLabels(Map.of(LABEL_KEY, LABEL_VALUE))
5656
.build());
5757
configMap.setData(
58-
Map.of("number", "" + key, ADDITIONAL_DATA_KEY, primary.getSpec().getAdditionalData()));
58+
Map.of("number", key, ADDITIONAL_DATA_KEY, primary.getSpec().getAdditionalData()));
5959
return configMap;
6060
}
6161

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/StandaloneBulkDependentReconciler.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,18 @@
33
import java.util.Map;
44
import java.util.concurrent.atomic.AtomicInteger;
55

6-
import io.fabric8.kubernetes.client.KubernetesClient;
76
import io.javaoperatorsdk.operator.api.reconciler.*;
8-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
97
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
108
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
119

1210
@ControllerConfiguration
1311
public class StandaloneBulkDependentReconciler
1412
implements Reconciler<BulkDependentTestCustomResource>, TestExecutionInfoProvider,
15-
EventSourceInitializer<BulkDependentTestCustomResource>, KubernetesClientAware {
13+
EventSourceInitializer<BulkDependentTestCustomResource> {
1614

1715
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
1816

1917
private final ConfigMapDeleterBulkDependentResource dependent;
20-
private KubernetesClient kubernetesClient;
2118

2219
public StandaloneBulkDependentReconciler() {
2320
dependent = new CRUDConfigMapBulkDependentResource();
@@ -44,15 +41,4 @@ public Map<String, EventSource> prepareEventSources(
4441
return EventSourceInitializer
4542
.nameEventSources(dependent.initEventSource(context));
4643
}
47-
48-
@Override
49-
public KubernetesClient getKubernetesClient() {
50-
return kubernetesClient;
51-
}
52-
53-
@Override
54-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
55-
this.kubernetesClient = kubernetesClient;
56-
dependent.setKubernetesClient(kubernetesClient);
57-
}
5844
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/changenamespace/ChangeNamespaceTestReconciler.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,19 @@
55

66
import io.fabric8.kubernetes.api.model.ConfigMap;
77
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
8-
import io.fabric8.kubernetes.client.KubernetesClient;
98
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
109
import io.javaoperatorsdk.operator.api.reconciler.*;
11-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1210
import io.javaoperatorsdk.operator.processing.event.ResourceID;
1311
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1412
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
1513

1614
@ControllerConfiguration
1715
public class ChangeNamespaceTestReconciler
1816
implements Reconciler<ChangeNamespaceTestCustomResource>,
19-
EventSourceInitializer<ChangeNamespaceTestCustomResource>, KubernetesClientAware {
17+
EventSourceInitializer<ChangeNamespaceTestCustomResource> {
2018

2119
private final ConcurrentHashMap<ResourceID, Integer> numberOfResourceReconciliations =
2220
new ConcurrentHashMap<>();
23-
private KubernetesClient client;
2421

2522
@Override
2623
public Map<String, EventSource> prepareEventSources(
@@ -40,7 +37,7 @@ public UpdateControl<ChangeNamespaceTestCustomResource> reconcile(
4037

4138
var actualConfigMap = context.getSecondaryResource(ConfigMap.class);
4239
if (actualConfigMap.isEmpty()) {
43-
client.configMaps().inNamespace(primary.getMetadata().getNamespace())
40+
context.getClient().configMaps().inNamespace(primary.getMetadata().getNamespace())
4441
.resource(configMap(primary))
4542
.create();
4643
}
@@ -73,14 +70,4 @@ private ConfigMap configMap(ChangeNamespaceTestCustomResource primary) {
7370
configMap.addOwnerReference(primary);
7471
return configMap;
7572
}
76-
77-
@Override
78-
public KubernetesClient getKubernetesClient() {
79-
return client;
80-
}
81-
82-
@Override
83-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
84-
this.client = kubernetesClient;
85-
}
8673
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/clusterscopedresource/ClusterScopedCustomResourceReconciler.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,29 @@
55
import io.fabric8.kubernetes.api.model.ConfigMap;
66
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
77
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
8-
import io.fabric8.kubernetes.client.KubernetesClient;
98
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
109
import io.javaoperatorsdk.operator.api.reconciler.*;
11-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1210
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1311
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
1412
import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers;
1513

1614
@ControllerConfiguration
1715
public class ClusterScopedCustomResourceReconciler
1816
implements Reconciler<ClusterScopedCustomResource>,
19-
KubernetesClientAware, EventSourceInitializer<ClusterScopedCustomResource> {
17+
EventSourceInitializer<ClusterScopedCustomResource> {
2018

2119
public static final String DATA_KEY = "data-key";
2220

2321
public static final String TEST_LABEL_VALUE = "clusterscopecrtest";
2422
public static final String TEST_LABEL_KEY = "test";
2523

26-
private KubernetesClient client;
27-
2824
@Override
2925
public UpdateControl<ClusterScopedCustomResource> reconcile(
3026
ClusterScopedCustomResource resource, Context<ClusterScopedCustomResource> context) {
3127

3228
var optionalConfigMap = context.getSecondaryResource(ConfigMap.class);
3329

30+
final var client = context.getClient();
3431
optionalConfigMap.ifPresentOrElse(cm -> {
3532
if (!resource.getSpec().getData().equals(cm.getData().get(DATA_KEY))) {
3633
client.configMaps().resource(desired(resource)).replace();
@@ -55,16 +52,6 @@ private ConfigMap desired(ClusterScopedCustomResource resource) {
5552
return cm;
5653
}
5754

58-
@Override
59-
public KubernetesClient getKubernetesClient() {
60-
return client;
61-
}
62-
63-
@Override
64-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
65-
this.client = kubernetesClient;
66-
}
67-
6855
@Override
6956
public Map<String, EventSource> prepareEventSources(
7057
EventSourceContext<ClusterScopedCustomResource> context) {

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,16 @@
77

88
import io.fabric8.kubernetes.api.model.ConfigMap;
99
import io.fabric8.kubernetes.api.model.ObjectMeta;
10-
import io.fabric8.kubernetes.client.KubernetesClient;
1110
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
12-
import io.javaoperatorsdk.operator.api.reconciler.Context;
13-
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
14-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
15-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
16-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
17-
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
18-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
11+
import io.javaoperatorsdk.operator.api.reconciler.*;
1912
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
2013
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
2114
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
2215

2316
@ControllerConfiguration
2417
public class CreateUpdateEventFilterTestReconciler
2518
implements Reconciler<CreateUpdateEventFilterTestCustomResource>,
26-
EventSourceInitializer<CreateUpdateEventFilterTestCustomResource>,
27-
KubernetesClientAware {
19+
EventSourceInitializer<CreateUpdateEventFilterTestCustomResource> {
2820

2921
private static final class DirectConfigMapDependentResource
3022
extends
@@ -50,7 +42,6 @@ public void setEventSource(
5042
}
5143

5244
public static final String CONFIG_MAP_TEST_DATA_KEY = "key";
53-
private KubernetesClient client;
5445
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
5546
private InformerEventSource<ConfigMap, CreateUpdateEventFilterTestCustomResource> informerEventSource;
5647
private DirectConfigMapDependentResource configMapDR =
@@ -63,7 +54,7 @@ public UpdateControl<CreateUpdateEventFilterTestCustomResource> reconcile(
6354
numberOfExecutions.incrementAndGet();
6455

6556
ConfigMap configMap =
66-
client
57+
context.getClient()
6758
.configMaps()
6859
.inNamespace(resource.getMetadata().getNamespace())
6960
.withName(resource.getMetadata().getName())
@@ -103,25 +94,12 @@ public Map<String, EventSource> prepareEventSources(
10394
InformerConfiguration.from(ConfigMap.class)
10495
.withLabelSelector("integrationtest = " + this.getClass().getSimpleName())
10596
.build();
106-
informerEventSource =
107-
new InformerEventSource<>(informerConfiguration, client);
108-
109-
this.configMapDR.setKubernetesClient(context.getClient());
97+
informerEventSource = new InformerEventSource<>(informerConfiguration, context.getClient());
11098
this.configMapDR.setEventSource(informerEventSource);
11199

112100
return EventSourceInitializer.nameEventSources(informerEventSource);
113101
}
114102

115-
@Override
116-
public KubernetesClient getKubernetesClient() {
117-
return client;
118-
}
119-
120-
@Override
121-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
122-
this.client = kubernetesClient;
123-
}
124-
125103
public int getNumberOfExecutions() {
126104
return numberOfExecutions.get();
127105
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentreinitialization/DependentReInitializationReconciler.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.Map;
44

5-
import io.fabric8.kubernetes.client.KubernetesClient;
65
import io.javaoperatorsdk.operator.api.reconciler.*;
76
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
87

@@ -13,10 +12,8 @@ public class DependentReInitializationReconciler
1312

1413
private final ConfigMapDependentResource configMapDependentResource;
1514

16-
public DependentReInitializationReconciler(ConfigMapDependentResource dependentResource,
17-
KubernetesClient client) {
15+
public DependentReInitializationReconciler(ConfigMapDependentResource dependentResource) {
1816
this.configMapDependentResource = dependentResource;
19-
this.configMapDependentResource.setKubernetesClient(client);
2017
}
2118

2219
@Override

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentssa/DependentSSAReconciler.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,19 @@
44
import java.util.concurrent.atomic.AtomicInteger;
55

66
import io.fabric8.kubernetes.api.model.ConfigMap;
7-
import io.fabric8.kubernetes.client.KubernetesClient;
87
import io.javaoperatorsdk.operator.api.reconciler.*;
9-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
108
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfigBuilder;
119
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1210
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
1311

1412
@ControllerConfiguration
1513
public class DependentSSAReconciler
1614
implements Reconciler<DependnetSSACustomResource>, TestExecutionInfoProvider,
17-
KubernetesClientAware,
1815
EventSourceInitializer<DependnetSSACustomResource> {
1916

2017
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
2118

2219
private SSAConfigMapDependent ssaConfigMapDependent = new SSAConfigMapDependent();
23-
private KubernetesClient kubernetesClient;
2420

2521
public DependentSSAReconciler() {
2622
this(true);
@@ -46,17 +42,6 @@ public int getNumberOfExecutions() {
4642
return numberOfExecutions.get();
4743
}
4844

49-
@Override
50-
public KubernetesClient getKubernetesClient() {
51-
return kubernetesClient;
52-
}
53-
54-
@Override
55-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
56-
this.kubernetesClient = kubernetesClient;
57-
ssaConfigMapDependent.setKubernetesClient(kubernetesClient);
58-
}
59-
6045
@Override
6146
public Map<String, EventSource> prepareEventSources(
6247
EventSourceContext<DependnetSSACustomResource> context) {

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateReconciler.java

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,8 @@
99
import io.fabric8.kubernetes.api.model.ConfigMap;
1010
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
1111
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
12-
import io.fabric8.kubernetes.client.KubernetesClient;
1312
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
14-
import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
15-
import io.javaoperatorsdk.operator.api.reconciler.Context;
16-
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
17-
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
18-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
19-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
20-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
21-
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
22-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
13+
import io.javaoperatorsdk.operator.api.reconciler.*;
2314
import io.javaoperatorsdk.operator.processing.event.ResourceID;
2415
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
2516
import io.javaoperatorsdk.operator.processing.event.source.EventSourceStartPriority;
@@ -32,14 +23,13 @@
3223
@ControllerConfiguration()
3324
public class ExternalStateReconciler
3425
implements Reconciler<ExternalStateCustomResource>, Cleaner<ExternalStateCustomResource>,
35-
EventSourceInitializer<ExternalStateCustomResource>, KubernetesClientAware,
26+
EventSourceInitializer<ExternalStateCustomResource>,
3627
TestExecutionInfoProvider {
3728

3829
public static final String ID_KEY = "id";
3930
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
4031

4132
private final ExternalIDGenServiceMock externalService = ExternalIDGenServiceMock.getInstance();
42-
private KubernetesClient client;
4333

4434
InformerEventSource<ConfigMap, ExternalStateCustomResource> configMapEventSource;
4535
PerResourcePollingEventSource<ExternalResource, ExternalStateCustomResource> externalResourceEventSource;
@@ -52,11 +42,11 @@ public UpdateControl<ExternalStateCustomResource> reconcile(
5242
var externalResource = context.getSecondaryResource(ExternalResource.class);
5343
externalResource.ifPresentOrElse(r -> {
5444
if (!r.getData().equals(resource.getSpec().getData())) {
55-
updateExternalResource(resource, r);
45+
updateExternalResource(resource, r, context);
5646
}
5747
}, () -> {
5848
if (externalResource.isEmpty()) {
59-
createExternalResource(resource);
49+
createExternalResource(resource, context);
6050
}
6151
});
6252

@@ -65,14 +55,15 @@ public UpdateControl<ExternalStateCustomResource> reconcile(
6555
}
6656

6757
private void updateExternalResource(ExternalStateCustomResource resource,
68-
ExternalResource externalResource) {
58+
ExternalResource externalResource, Context<ExternalStateCustomResource> context) {
6959
var newResource = new ExternalResource(externalResource.getId(), resource.getSpec().getData());
7060
externalService.update(newResource);
7161
externalResourceEventSource.handleRecentResourceUpdate(ResourceID.fromResource(resource),
7262
newResource, externalResource);
7363
}
7464

75-
private void createExternalResource(ExternalStateCustomResource resource) {
65+
private void createExternalResource(ExternalStateCustomResource resource,
66+
Context<ExternalStateCustomResource> context) {
7667
var createdResource =
7768
externalService.create(new ExternalResource(resource.getSpec().getData()));
7869
var configMap = new ConfigMapBuilder()
@@ -83,7 +74,7 @@ private void createExternalResource(ExternalStateCustomResource resource) {
8374
.withData(Map.of(ID_KEY, createdResource.getId()))
8475
.build();
8576
configMap.addOwnerReference(resource);
86-
client.configMaps().resource(configMap).create();
77+
context.getClient().configMaps().resource(configMap).create();
8778

8879
var primaryID = ResourceID.fromResource(resource);
8980
// Making sure that the created resources are in the cache for the next reconciliation.
@@ -98,7 +89,7 @@ public DeleteControl cleanup(ExternalStateCustomResource resource,
9889
Context<ExternalStateCustomResource> context) {
9990
var externalResource = context.getSecondaryResource(ExternalResource.class);
10091
externalResource.ifPresent(er -> externalService.delete(er.getId()));
101-
client.configMaps().inNamespace(resource.getMetadata().getNamespace())
92+
context.getClient().configMaps().inNamespace(resource.getMetadata().getNamespace())
10293
.withName(resource.getMetadata().getName()).delete();
10394
return DeleteControl.defaultDelete();
10495
}
@@ -128,14 +119,4 @@ public Map<String, EventSource> prepareEventSources(
128119
return EventSourceInitializer.nameEventSources(configMapEventSource,
129120
externalResourceEventSource);
130121
}
131-
132-
@Override
133-
public KubernetesClient getKubernetesClient() {
134-
return client;
135-
}
136-
137-
@Override
138-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
139-
this.client = kubernetesClient;
140-
}
141122
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/filter/FilterTestReconciler.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,28 @@
55

66
import io.fabric8.kubernetes.api.model.ConfigMap;
77
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
8-
import io.fabric8.kubernetes.client.KubernetesClient;
98
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
109
import io.javaoperatorsdk.operator.api.reconciler.*;
11-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1210
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1311
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
1412

1513
@ControllerConfiguration(onUpdateFilter = UpdateFilter.class)
1614
public class FilterTestReconciler
1715
implements Reconciler<FilterTestCustomResource>,
18-
EventSourceInitializer<FilterTestCustomResource>,
19-
KubernetesClientAware {
16+
EventSourceInitializer<FilterTestCustomResource> {
2017

2118
public static final String CONFIG_MAP_FILTER_VALUE = "config_map_skip_this";
2219
public static final String CUSTOM_RESOURCE_FILTER_VALUE = "custom_resource_skip_this";
2320

2421
public static final String CM_VALUE_KEY = "value";
2522
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
26-
private KubernetesClient client;
2723

2824
@Override
2925
public UpdateControl<FilterTestCustomResource> reconcile(
3026
FilterTestCustomResource resource,
3127
Context<FilterTestCustomResource> context) {
3228
numberOfExecutions.addAndGet(1);
33-
client.configMaps().inNamespace(resource.getMetadata().getNamespace())
29+
context.getClient().configMaps().inNamespace(resource.getMetadata().getNamespace())
3430
.resource(createConfigMap(resource))
3531
.createOrReplace();
3632
return UpdateControl.noUpdate();
@@ -65,14 +61,4 @@ public Map<String, EventSource> prepareEventSources(
6561

6662
return EventSourceInitializer.nameEventSources(configMapES);
6763
}
68-
69-
@Override
70-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
71-
this.client = kubernetesClient;
72-
}
73-
74-
@Override
75-
public KubernetesClient getKubernetesClient() {
76-
return client;
77-
}
7864
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestReconciler.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
import java.util.concurrent.atomic.AtomicInteger;
77

88
import io.fabric8.kubernetes.api.model.ConfigMap;
9-
import io.fabric8.kubernetes.client.KubernetesClient;
109
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
1110
import io.javaoperatorsdk.operator.api.reconciler.*;
12-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1311
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1412
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
1513
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@@ -18,8 +16,7 @@
1816
public class IndexDiscriminatorTestReconciler
1917
implements Reconciler<IndexDiscriminatorTestCustomResource>,
2018
Cleaner<IndexDiscriminatorTestCustomResource>,
21-
TestExecutionInfoProvider, EventSourceInitializer<IndexDiscriminatorTestCustomResource>,
22-
KubernetesClientAware {
19+
TestExecutionInfoProvider, EventSourceInitializer<IndexDiscriminatorTestCustomResource> {
2320

2421
public static final String FIRST_CONFIG_MAP_SUFFIX_1 = "-1";
2522
public static final String FIRST_CONFIG_MAP_SUFFIX_2 = "-2";
@@ -30,7 +27,6 @@ public class IndexDiscriminatorTestReconciler
3027

3128
private final IndexDiscriminatorTestDRConfigMap firstDependentResourceConfigMap;
3229
private final IndexDiscriminatorTestDRConfigMap secondDependentResourceConfigMap;
33-
private KubernetesClient client;
3430

3531
public IndexDiscriminatorTestReconciler() {
3632
firstDependentResourceConfigMap =
@@ -88,18 +84,6 @@ public Map<String, EventSource> prepareEventSources(
8884
return EventSourceInitializer.nameEventSources(eventSource);
8985
}
9086

91-
@Override
92-
public KubernetesClient getKubernetesClient() {
93-
return client;
94-
}
95-
96-
@Override
97-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
98-
this.client = kubernetesClient;
99-
firstDependentResourceConfigMap.setKubernetesClient(kubernetesClient);
100-
secondDependentResourceConfigMap.setKubernetesClient(kubernetesClient);
101-
}
102-
10387
public static String configMapKey(ConfigMap configMap) {
10488
return configMap.getMetadata().getName() + "#" + configMap.getMetadata().getNamespace();
10589
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import io.fabric8.kubernetes.client.KubernetesClientException;
99
import io.javaoperatorsdk.operator.api.reconciler.*;
1010
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
11-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1211
import io.javaoperatorsdk.operator.processing.dependent.Creator;
1312
import io.javaoperatorsdk.operator.processing.dependent.Updater;
1413
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
@@ -18,7 +17,7 @@
1817
public class DependentGarbageCollectionTestReconciler
1918
implements Reconciler<DependentGarbageCollectionTestCustomResource>,
2019
EventSourceInitializer<DependentGarbageCollectionTestCustomResource>,
21-
KubernetesClientAware, ErrorStatusHandler<DependentGarbageCollectionTestCustomResource> {
20+
ErrorStatusHandler<DependentGarbageCollectionTestCustomResource> {
2221

2322
private KubernetesClient kubernetesClient;
2423
private volatile boolean errorOccurred = false;
@@ -50,17 +49,6 @@ public UpdateControl<DependentGarbageCollectionTestCustomResource> reconcile(
5049
return UpdateControl.noUpdate();
5150
}
5251

53-
@Override
54-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
55-
this.kubernetesClient = kubernetesClient;
56-
configMapDependent.setKubernetesClient(kubernetesClient);
57-
}
58-
59-
@Override
60-
public KubernetesClient getKubernetesClient() {
61-
return this.kubernetesClient;
62-
}
63-
6452
@Override
6553
public ErrorStatusUpdateControl<DependentGarbageCollectionTestCustomResource> updateErrorStatus(
6654
DependentGarbageCollectionTestCustomResource resource,

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresource/MultipleDependentResourceReconciler.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44
import java.util.concurrent.atomic.AtomicInteger;
55

66
import io.fabric8.kubernetes.api.model.ConfigMap;
7-
import io.fabric8.kubernetes.client.KubernetesClient;
87
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
98
import io.javaoperatorsdk.operator.api.reconciler.*;
10-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
119
import io.javaoperatorsdk.operator.processing.event.ResourceID;
1210
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1311
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
@@ -16,16 +14,14 @@
1614
@ControllerConfiguration
1715
public class MultipleDependentResourceReconciler
1816
implements Reconciler<MultipleDependentResourceCustomResource>,
19-
TestExecutionInfoProvider, EventSourceInitializer<MultipleDependentResourceCustomResource>,
20-
KubernetesClientAware {
17+
TestExecutionInfoProvider, EventSourceInitializer<MultipleDependentResourceCustomResource> {
2118

2219
public static final int FIRST_CONFIG_MAP_ID = 1;
2320
public static final int SECOND_CONFIG_MAP_ID = 2;
2421
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
2522

2623
private final MultipleDependentResourceConfigMap firstDependentResourceConfigMap;
2724
private final MultipleDependentResourceConfigMap secondDependentResourceConfigMap;
28-
private KubernetesClient client;
2925

3026
public MultipleDependentResourceReconciler() {
3127
firstDependentResourceConfigMap = new MultipleDependentResourceConfigMap(FIRST_CONFIG_MAP_ID);
@@ -70,16 +66,4 @@ public Map<String, EventSource> prepareEventSources(
7066

7167
return EventSourceInitializer.nameEventSources(eventSource);
7268
}
73-
74-
@Override
75-
public KubernetesClient getKubernetesClient() {
76-
return client;
77-
}
78-
79-
@Override
80-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
81-
this.client = kubernetesClient;
82-
firstDependentResourceConfigMap.setKubernetesClient(kubernetesClient);
83-
secondDependentResourceConfigMap.setKubernetesClient(kubernetesClient);
84-
}
8569
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77

88
import io.fabric8.kubernetes.api.model.ConfigMap;
99
import io.fabric8.kubernetes.api.model.ObjectMeta;
10-
import io.fabric8.kubernetes.client.KubernetesClient;
1110
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
1211
import io.javaoperatorsdk.operator.api.reconciler.*;
13-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1412
import io.javaoperatorsdk.operator.processing.event.ResourceID;
1513
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1614
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
@@ -19,17 +17,17 @@
1917
@ControllerConfiguration
2018
public class MultipleSecondaryEventSourceReconciler
2119
implements Reconciler<MultipleSecondaryEventSourceCustomResource>, TestExecutionInfoProvider,
22-
EventSourceInitializer<MultipleSecondaryEventSourceCustomResource>, KubernetesClientAware {
20+
EventSourceInitializer<MultipleSecondaryEventSourceCustomResource> {
2321

2422
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
25-
private KubernetesClient client;
2623

2724
@Override
2825
public UpdateControl<MultipleSecondaryEventSourceCustomResource> reconcile(
2926
MultipleSecondaryEventSourceCustomResource resource,
3027
Context<MultipleSecondaryEventSourceCustomResource> context) {
3128
numberOfExecutions.addAndGet(1);
3229

30+
final var client = context.getClient();
3331
if (client.configMaps().inNamespace(resource.getMetadata().getNamespace())
3432
.withName(getName1(resource)).get() == null) {
3533
client.configMaps().inNamespace(resource.getMetadata().getNamespace())
@@ -94,14 +92,4 @@ ConfigMap configMap(String name, MultipleSecondaryEventSourceCustomResource reso
9492
configMap.addOwnerReference(resource);
9593
return configMap;
9694
}
97-
98-
@Override
99-
public KubernetesClient getKubernetesClient() {
100-
return client;
101-
}
102-
103-
@Override
104-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
105-
this.client = kubernetesClient;
106-
}
10795
}

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/perresourceeventsource/PerResourcePollingEventSourceTestReconciler.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,19 @@
66
import java.util.UUID;
77
import java.util.concurrent.ConcurrentHashMap;
88

9-
import io.fabric8.kubernetes.client.KubernetesClient;
109
import io.javaoperatorsdk.operator.api.reconciler.*;
11-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1210
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1311
import io.javaoperatorsdk.operator.processing.event.source.polling.PerResourcePollingEventSource;
1412

1513
@ControllerConfiguration
1614
public class PerResourcePollingEventSourceTestReconciler
1715
implements Reconciler<PerResourceEventSourceCustomResource>,
18-
EventSourceInitializer<PerResourceEventSourceCustomResource>,
19-
KubernetesClientAware {
16+
EventSourceInitializer<PerResourceEventSourceCustomResource> {
2017

2118
public static final int POLL_PERIOD = 100;
2219
private final Map<String, Integer> numberOfExecutions = new ConcurrentHashMap<>();
2320
private final Map<String, Integer> numberOfFetchExecutions = new ConcurrentHashMap<>();
2421

25-
private KubernetesClient client;
26-
2722
@Override
2823
public UpdateControl<PerResourceEventSourceCustomResource> reconcile(
2924
PerResourceEventSourceCustomResource resource,
@@ -46,16 +41,6 @@ public Map<String, EventSource> prepareEventSources(
4641
return EventSourceInitializer.nameEventSources(eventSource);
4742
}
4843

49-
@Override
50-
public KubernetesClient getKubernetesClient() {
51-
return client;
52-
}
53-
54-
@Override
55-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
56-
this.client = kubernetesClient;
57-
}
58-
5944
public int getNumberOfExecutions(String name) {
6045
var num = numberOfExecutions.get(name);
6146
return num == null ? 0 : num;

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestReconciler.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,14 @@
1010
import io.fabric8.kubernetes.api.model.ConfigMap;
1111
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
1212
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
13-
import io.fabric8.kubernetes.client.KubernetesClient;
1413
import io.javaoperatorsdk.operator.ReconcilerUtils;
1514
import io.javaoperatorsdk.operator.api.reconciler.*;
16-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
1715
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
1816

1917
@ControllerConfiguration(generationAwareEventProcessing = false)
2018
public class TestReconciler
2119
implements Reconciler<TestCustomResource>, Cleaner<TestCustomResource>,
22-
TestExecutionInfoProvider,
23-
KubernetesClientAware {
20+
TestExecutionInfoProvider {
2421

2522
private static final Logger log = LoggerFactory.getLogger(TestReconciler.class);
2623

@@ -29,7 +26,6 @@ public class TestReconciler
2926

3027
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
3128
private final AtomicInteger numberOfCleanupExecutions = new AtomicInteger(0);
32-
private KubernetesClient kubernetesClient;
3329
private volatile boolean updateStatus;
3430
private volatile boolean patchStatus;
3531

@@ -51,22 +47,12 @@ public void setUpdateStatus(boolean updateStatus) {
5147
this.updateStatus = updateStatus;
5248
}
5349

54-
@Override
55-
public KubernetesClient getKubernetesClient() {
56-
return kubernetesClient;
57-
}
58-
59-
@Override
60-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
61-
this.kubernetesClient = kubernetesClient;
62-
}
63-
6450
@Override
6551
public DeleteControl cleanup(
6652
TestCustomResource resource, Context<TestCustomResource> context) {
6753
numberOfCleanupExecutions.incrementAndGet();
6854

69-
var statusDetail = kubernetesClient
55+
var statusDetail = context.getClient()
7056
.configMaps()
7157
.inNamespace(resource.getMetadata().getNamespace())
7258
.withName(resource.getSpec().getConfigMapName())
@@ -93,7 +79,7 @@ public UpdateControl<TestCustomResource> reconcile(
9379
if (!resource.getMetadata().getFinalizers().contains(FINALIZER_NAME)) {
9480
throw new IllegalStateException("Finalizer is not present.");
9581
}
96-
82+
final var kubernetesClient = context.getClient();
9783
ConfigMap existingConfigMap =
9884
kubernetesClient
9985
.configMaps()

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,18 @@
44
import java.util.Optional;
55

66
import io.fabric8.kubernetes.api.model.apps.Deployment;
7-
import io.fabric8.kubernetes.client.KubernetesClient;
87
import io.fabric8.kubernetes.client.KubernetesClientException;
98
import io.javaoperatorsdk.operator.ReconcilerUtils;
109
import io.javaoperatorsdk.operator.StandaloneDependentResourceIT;
11-
import io.javaoperatorsdk.operator.api.reconciler.Context;
12-
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
13-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusHandler;
14-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusUpdateControl;
15-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
16-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
17-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
18-
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
19-
import io.javaoperatorsdk.operator.junit.KubernetesClientAware;
10+
import io.javaoperatorsdk.operator.api.reconciler.*;
2011
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
2112
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
2213

2314
@ControllerConfiguration
2415
public class StandaloneDependentTestReconciler
2516
implements Reconciler<StandaloneDependentTestCustomResource>,
2617
EventSourceInitializer<StandaloneDependentTestCustomResource>,
27-
KubernetesClientAware, ErrorStatusHandler<StandaloneDependentTestCustomResource> {
28-
29-
private KubernetesClient kubernetesClient;
18+
ErrorStatusHandler<StandaloneDependentTestCustomResource> {
3019
private volatile boolean errorOccurred = false;
3120

3221
DeploymentDependentResource deploymentDependent;
@@ -59,17 +48,6 @@ public UpdateControl<StandaloneDependentTestCustomResource> reconcile(
5948
return UpdateControl.noUpdate();
6049
}
6150

62-
@Override
63-
public void setKubernetesClient(KubernetesClient kubernetesClient) {
64-
this.kubernetesClient = kubernetesClient;
65-
deploymentDependent.setKubernetesClient(kubernetesClient);
66-
}
67-
68-
@Override
69-
public KubernetesClient getKubernetesClient() {
70-
return this.kubernetesClient;
71-
}
72-
7351
@Override
7452
public ErrorStatusUpdateControl<StandaloneDependentTestCustomResource> updateErrorStatus(
7553
StandaloneDependentTestCustomResource resource,

‎operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/ConfigMapDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void delete(WorkflowAllFeatureCustomResource primary,
5252
optionalConfigMap.ifPresent((configMap -> {
5353
if (configMap.getMetadata().getAnnotations() != null
5454
&& configMap.getMetadata().getAnnotations().get(READY_TO_DELETE_ANNOTATION) != null) {
55-
client.resource(configMap).delete();
55+
context.getClient().resource(configMap).delete();
5656
}
5757
}));
5858
}

‎sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,7 @@
88
import io.fabric8.kubernetes.api.model.apps.Deployment;
99
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
1010
import io.fabric8.kubernetes.client.KubernetesClient;
11-
import io.javaoperatorsdk.operator.api.reconciler.Context;
12-
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
13-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusHandler;
14-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusUpdateControl;
15-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
16-
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
17-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
18-
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
11+
import io.javaoperatorsdk.operator.api.reconciler.*;
1912
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
2013
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfigBuilder;
2114
import io.javaoperatorsdk.operator.processing.dependent.workflow.Workflow;
@@ -24,9 +17,7 @@
2417
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
2518
import io.javaoperatorsdk.operator.sample.dependentresource.*;
2619

27-
import static io.javaoperatorsdk.operator.sample.Utils.createStatus;
28-
import static io.javaoperatorsdk.operator.sample.Utils.handleError;
29-
import static io.javaoperatorsdk.operator.sample.Utils.simulateErrorIfRequested;
20+
import static io.javaoperatorsdk.operator.sample.Utils.*;
3021

3122
/**
3223
* Shows how to implement reconciler using standalone dependent resources.
@@ -90,7 +81,6 @@ private void initDependentResources(KubernetesClient client) {
9081
this.ingressDR = new IngressDependentResource();
9182

9283
Arrays.asList(configMapDR, deploymentDR, serviceDR, ingressDR).forEach(dr -> {
93-
dr.setKubernetesClient(client);
9484
dr.configureWith(new KubernetesDependentResourceConfigBuilder()
9585
.withLabelSelector(DEPENDENT_RESOURCE_LABEL_SELECTOR).build());
9686
});

‎sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ private void createDependentResources(KubernetesClient client) {
8787
this.ingressDR = new IngressDependentResource();
8888

8989
Arrays.asList(configMapDR, deploymentDR, serviceDR, ingressDR).forEach(dr -> {
90-
dr.setKubernetesClient(client);
9190
dr.configureWith(new KubernetesDependentResourceConfigBuilder()
9291
.withLabelSelector(SELECTOR + "=true").build());
9392
});

0 commit comments

Comments
 (0)
Please sign in to comment.