Skip to content

Commit e181b0f

Browse files
authored
feat: allow DependentResourceNode creation override (#2961)
Signed-off-by: xstefank <[email protected]>
1 parent 7397be6 commit e181b0f

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import io.javaoperatorsdk.operator.api.config.Utils;
55
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
66
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.ConfiguredDependentResource;
7+
import io.javaoperatorsdk.operator.processing.dependent.workflow.DependentResourceNode;
78

89
@SuppressWarnings({"rawtypes", "unchecked"})
910
public interface DependentResourceFactory<
@@ -36,4 +37,13 @@ default Class<?> associatedResourceType(D spec) {
3637
dependentResourceClass, DependentResource.class, null, null);
3738
return dr != null ? dr.resourceType() : null;
3839
}
40+
41+
default DependentResourceNode createNodeFrom(D spec, DependentResource dependentResource) {
42+
return new DependentResourceNode(
43+
spec.getReconcileCondition(),
44+
spec.getDeletePostCondition(),
45+
spec.getReadyCondition(),
46+
spec.getActivationCondition(),
47+
dependentResource);
48+
}
3949
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,10 @@ public Workflow<P> resolve(KubernetesClient client, ControllerConfiguration<P> c
7777
for (DependentResourceSpec<?, P, ?> spec : orderedSpecs) {
7878
final var dependentResource = resolve(spec, client, configuration);
7979
final var node =
80-
new DependentResourceNode(
81-
spec.getReconcileCondition(),
82-
spec.getDeletePostCondition(),
83-
spec.getReadyCondition(),
84-
spec.getActivationCondition(),
85-
dependentResource);
80+
configuration
81+
.getConfigurationService()
82+
.dependentResourceFactory()
83+
.createNodeFrom(spec, dependentResource);
8684
alreadyResolved.put(dependentResource.name(), node);
8785
spec.getDependsOn().forEach(depend -> node.addDependsOnRelation(alreadyResolved.get(depend)));
8886
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DependentResourceNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
99

1010
@SuppressWarnings("rawtypes")
11-
class DependentResourceNode<R, P extends HasMetadata> {
11+
public class DependentResourceNode<R, P extends HasMetadata> {
1212

1313
private final List<DependentResourceNode> dependsOn = new LinkedList<>();
1414
private final List<DependentResourceNode> parents = new LinkedList<>();

0 commit comments

Comments
 (0)