Skip to content

Commit 854283e

Browse files
committed
feat: reconcilers can now add attributes to context before reconciling
1 parent 8625b27 commit 854283e

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.javaoperatorsdk.operator.api.reconciler;
2+
3+
import io.fabric8.kubernetes.api.model.HasMetadata;
4+
5+
public interface ContextInitializer<P extends HasMetadata> {
6+
void initContext(P primary, Context context);
7+
}

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

+6
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import io.javaoperatorsdk.operator.api.monitoring.Metrics;
2828
import io.javaoperatorsdk.operator.api.monitoring.Metrics.ControllerExecution;
2929
import io.javaoperatorsdk.operator.api.reconciler.Context;
30+
import io.javaoperatorsdk.operator.api.reconciler.ContextInitializer;
3031
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
3132
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
3233
import io.javaoperatorsdk.operator.api.reconciler.EventSourceInitializer;
@@ -109,6 +110,11 @@ public DeleteControl execute() {
109110
public UpdateControl<R> reconcile(R resource, Context context) {
110111
waitUntilStarted();
111112

113+
if (reconciler instanceof ContextInitializer) {
114+
final var initializer = (ContextInitializer<R>) reconciler;
115+
initializer.initContext(resource, context);
116+
}
117+
112118
configuration.getDependentResources().forEach(dependent -> {
113119
if (!dependent.creatable() && !dependent.updatable()) {
114120
return;

0 commit comments

Comments
 (0)