Skip to content

Commit b7312bf

Browse files
committed
feat: desired method aware of actual resource
1 parent e617061 commit b7312bf

File tree

27 files changed

+34
-33
lines changed

27 files changed

+34
-33
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public ReconcileResult<R> reconcile(P primary, Context<P> context) {
3333
if (creatable || updatable) {
3434
if (maybeActual.isEmpty()) {
3535
if (creatable) {
36-
var desired = desired(primary, context);
36+
var desired = desired(primary, null, context);
3737
throwIfNull(desired, primary, "Desired");
3838
logForOperation("Creating", primary, desired);
3939
var createdResource = handleCreate(desired, primary, context);
@@ -44,7 +44,7 @@ public ReconcileResult<R> reconcile(P primary, Context<P> context) {
4444
if (updatable) {
4545
final var match = updater.match(actual, primary, context);
4646
if (!match.matched()) {
47-
final var desired = match.computedDesired().orElse(desired(primary, context));
47+
final var desired = match.computedDesired().orElse(desired(primary, actual, context));
4848
throwIfNull(desired, primary, "Desired");
4949
logForOperation("Updating", primary, desired);
5050
var updatedResource = handleUpdate(actual, desired, primary, context);
@@ -114,7 +114,7 @@ protected R handleUpdate(R actual, R desired, P primary, Context<P> context) {
114114
return updated;
115115
}
116116

117-
protected R desired(P primary, Context<P> context) {
117+
protected R desired(P primary, R actual, Context<P> context) {
118118
throw new IllegalStateException(
119119
"desired method must be implemented if this DependentResource can be created and/or updated");
120120
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public DesiredEqualsMatcher(AbstractDependentResource<R, P> abstractDependentRes
1313

1414
@Override
1515
public Result<R> match(R actualResource, P primary, Context<P> context) {
16-
var desired = abstractDependentResource.desired(primary, context);
16+
var desired = abstractDependentResource.desired(primary, actualResource, context);
1717
return Result.computed(actualResource.equals(desired), desired);
1818
}
1919
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ static <R extends HasMetadata, P extends HasMetadata> Matcher<R, P> matcherFor(
2525
Class<R> resourceType, KubernetesDependentResource<R, P> dependentResource) {
2626
if (Secret.class.isAssignableFrom(resourceType)) {
2727
return (actual, primary, context) -> {
28-
final var desired = dependentResource.desired(primary, context);
28+
final var desired = dependentResource.desired(primary, actual, context);
2929
return Result.computed(
3030
ResourceComparators.compareSecretData((Secret) desired, (Secret) actual), desired);
3131
};
3232
} else if (ConfigMap.class.isAssignableFrom(resourceType)) {
3333
return (actual, primary, context) -> {
34-
final var desired = dependentResource.desired(primary, context);
34+
final var desired = dependentResource.desired(primary, actual, context);
3535
return Result.computed(
3636
ResourceComparators.compareConfigMapData((ConfigMap) desired, (ConfigMap) actual),
3737
desired);
@@ -68,7 +68,7 @@ public Result<R> match(R actualResource, P primary, Context<P> context) {
6868
public static <R extends HasMetadata, P extends HasMetadata> Result<R> match(
6969
KubernetesDependentResource<R, P> dependentResource, R actualResource, P primary,
7070
Context<P> context, boolean considerMetadata) {
71-
final var desired = dependentResource.desired(primary, context);
71+
final var desired = dependentResource.desired(primary, actualResource, context);
7272
if (considerMetadata) {
7373
final var desiredMetadata = desired.getMetadata();
7474
final var actualMetadata = actualResource.getMetadata();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,8 @@ public KubernetesClient getKubernetesClient() {
224224
}
225225

226226
@Override
227-
protected R desired(P primary, Context<P> context) {
228-
return super.desired(primary, context);
227+
protected R desired(P primary, R actual, Context<P> context) {
228+
return super.desired(primary, actual, context);
229229
}
230230

231231
private void prepareEventFiltering(R desired, ResourceID resourceID) {

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResourceTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ protected void onCreated(ResourceID primaryResourceId, ConfigMap created) {}
9191
protected void onUpdated(ResourceID primaryResourceId, ConfigMap updated, ConfigMap actual) {}
9292

9393
@Override
94-
protected ConfigMap desired(TestCustomResource primary, Context<TestCustomResource> context) {
94+
protected ConfigMap desired(TestCustomResource primary, ConfigMap actual,
95+
Context<TestCustomResource> context) {
9596
return desired;
9697
}
9798

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/external/AbstractSimpleDependentResourceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public SampleExternalResource update(
137137

138138
@Override
139139
protected SampleExternalResource desired(TestCustomResource primary,
140-
Context<TestCustomResource> context) {
140+
SampleExternalResource actual, Context<TestCustomResource> context) {
141141
return SampleExternalResource.testResource1();
142142
}
143143

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public TestDependentResource(Deployment desired) {
9393
}
9494

9595
@Override
96-
protected Deployment desired(HasMetadata primary, Context context) {
96+
protected Deployment desired(HasMetadata primary, Deployment actual, Context context) {
9797
final var currentCase = Optional.ofNullable(primary)
9898
.map(p -> p.getMetadata().getLabels().get("case"))
9999
.orElse(null);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public ConfigMapDependentResource() {
2525

2626
@Override
2727
protected ConfigMap desired(CleanerForManagedDependentCustomResource primary,
28-
Context<CleanerForManagedDependentCustomResource> context) {
28+
ConfigMap actual, Context<CleanerForManagedDependentCustomResource> context) {
2929

3030
ConfigMap configMap = new ConfigMap();
3131
configMap.setMetadata(new ObjectMeta());

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public ConfigMapDependentResource() {
4444

4545
@Override
4646
protected ConfigMap desired(DependentAnnotationSecondaryMapperResource primary,
47-
Context<DependentAnnotationSecondaryMapperResource> context) {
47+
ConfigMap actual, Context<DependentAnnotationSecondaryMapperResource> context) {
4848
ConfigMap configMap = new ConfigMap();
4949
configMap.setMetadata(new ObjectMetaBuilder()
5050
.withName(primary.getMetadata().getName())

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentfilter/FilteredDependentConfigMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public FilteredDependentConfigMap() {
2020

2121
@Override
2222
protected ConfigMap desired(DependentFilterTestCustomResource primary,
23-
Context<DependentFilterTestCustomResource> context) {
23+
ConfigMap actual, Context<DependentFilterTestCustomResource> context) {
2424
ConfigMap configMap = new ConfigMap();
2525
configMap.setMetadata(new ObjectMetaBuilder()
2626
.withName(primary.getMetadata().getName())

0 commit comments

Comments
 (0)