Skip to content

Commit bc29dc1

Browse files
committed
test fix
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent a17da69 commit bc29dc1

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
3232
import io.javaoperatorsdk.operator.processing.event.source.informer.ManagedInformerEventSource;
3333

34+
import static io.javaoperatorsdk.operator.api.reconciler.Experimental.API_MIGHT_CHANGE;
3435
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getUID;
3536
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
3637

@@ -71,6 +72,7 @@ public <R extends HasMetadata> R serverSideApply(R resource) {
7172
return serverSideApply(resource, (Options) null);
7273
}
7374

75+
@Experimental(API_MIGHT_CHANGE)
7476
public <R extends HasMetadata> R serverSideApply(R resource, Options options) {
7577
return resourcePatch(
7678
resource,
@@ -106,6 +108,7 @@ public <R extends HasMetadata> R serverSideApply(
106108
* @param informerEventSource InformerEventSource to use for resource caching and filtering
107109
* @param <R> resource type
108110
*/
111+
@Experimental(API_MIGHT_CHANGE)
109112
public <R extends HasMetadata> R serverSideApply(
110113
R resource, InformerEventSource<R, P> informerEventSource, Options options) {
111114
if (informerEventSource == null) {
@@ -123,7 +126,8 @@ public <R extends HasMetadata> R serverSideApply(
123126
.withFieldManager(context.getControllerConfiguration().fieldManager())
124127
.withPatchType(PatchType.SERVER_SIDE_APPLY)
125128
.build()),
126-
informerEventSource);
129+
informerEventSource,
130+
options);
127131
}
128132

129133
/**
@@ -235,6 +239,7 @@ public <R extends HasMetadata> R update(R resource) {
235239
* @return updated resource
236240
* @param <R> resource type
237241
*/
242+
@Experimental(API_MIGHT_CHANGE)
238243
public <R extends HasMetadata> R update(R resource, Options options) {
239244
return resourcePatch(resource, r -> context.getClient().resource(r).update(), options);
240245
}
@@ -258,6 +263,7 @@ public <R extends HasMetadata> R update(
258263
* @param informerEventSource InformerEventSource to use for resource caching and filtering
259264
* @param <R> resource type
260265
*/
266+
@Experimental(API_MIGHT_CHANGE)
261267
public <R extends HasMetadata> R update(
262268
R resource, InformerEventSource<R, P> informerEventSource, Options options) {
263269
if (informerEventSource == null) {
@@ -557,6 +563,7 @@ public <R extends HasMetadata> R resourcePatch(R resource, UnaryOperator<R> upda
557563
* @param <R> resource type
558564
* @throws IllegalStateException if no event source or multiple event sources are found
559565
*/
566+
@Experimental(API_MIGHT_CHANGE)
560567
@SuppressWarnings({"rawtypes", "unchecked"})
561568
public <R extends HasMetadata> R resourcePatch(
562569
R resource, UnaryOperator<R> updateOperation, Options options) {
@@ -794,10 +801,11 @@ public P addFinalizerWithSSA(String finalizerName) {
794801
}
795802
}
796803

797-
@Experimental("This API might change")
798804
/**
799805
* Force filtering only if it is made sure that the update not results on a no-op change. See
800-
* details here: https://github.com/operator-framework/java-operator-sdk/pull/3484
806+
* details here: <a href="https://github.com/operator-framework/java-operator-sdk/pull/3484">PR
807+
* 3484</a>
801808
*/
809+
@Experimental("This API might change")
802810
public record Options(boolean forceEventFiltering) {}
803811
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/readcacheafterwrite/onrelistfilter/OnRelistFilterReconciler.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
3535
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
3636
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
37+
import io.javaoperatorsdk.operator.api.reconciler.ResourceOperations;
3738
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
3839
import io.javaoperatorsdk.operator.processing.event.ResourceID;
3940
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
@@ -79,7 +80,10 @@ public UpdateControl<OnRelistFilterCustomResource> reconcile(
7980
if (execution == 1) {
8081
var cm = prepareConfigMap(resource);
8182
switch (mode.get()) {
82-
case NO_RELIST -> context.resourceOperations().serverSideApply(cm, configMapEventSource);
83+
case NO_RELIST ->
84+
context
85+
.resourceOperations()
86+
.serverSideApply(cm, configMapEventSource, new ResourceOperations.Options(true));
8387
case RELIST_AROUND_UPDATE -> {
8488
configMapEventSource.simulateOnBeforeList();
8589
var applied = context.resourceOperations().serverSideApply(cm, configMapEventSource);
@@ -94,7 +98,9 @@ public UpdateControl<OnRelistFilterCustomResource> reconcile(
9498
case RELIST_COMPLETES_BEFORE_UPDATE -> {
9599
configMapEventSource.simulateOnBeforeList();
96100
configMapEventSource.simulateOnList();
97-
context.resourceOperations().serverSideApply(cm, configMapEventSource);
101+
context
102+
.resourceOperations()
103+
.serverSideApply(cm, configMapEventSource, new ResourceOperations.Options(true));
98104
}
99105
case RELIST_STARTS_DURING_UPDATE -> {
100106
// Drive the event-filtering update path manually so we can fire onBeforeList AFTER the
@@ -114,7 +120,8 @@ public UpdateControl<OnRelistFilterCustomResource> reconcile(
114120
.withFieldManager(fieldManager)
115121
.withPatchType(PatchType.SERVER_SIDE_APPLY)
116122
.build());
117-
});
123+
},
124+
true);
118125
// See RELIST_AROUND_UPDATE: wait for the own-write event to be buffered while the
119126
// re-list is still in progress, so it is tagged as part of the re-list and propagated.
120127
configMapEventSource.awaitWatchEventReceived(applied);

0 commit comments

Comments
 (0)