Skip to content

Commit 73e7a35

Browse files
committed
feat: desired method aware of actual resource
1 parent dc22768 commit 73e7a35

File tree

25 files changed

+30
-29
lines changed

25 files changed

+30
-29
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
@@ -56,7 +56,7 @@ protected ReconcileResult<R> reconcile(P primary, R actualResource, Context<P> c
5656
if (creatable || updatable) {
5757
if (actualResource == null) {
5858
if (creatable) {
59-
var desired = desired(primary, context);
59+
var desired = desired(primary, null, context);
6060
throwIfNull(desired, primary, "Desired");
6161
logForOperation("Creating", primary, desired);
6262
var createdResource = handleCreate(desired, primary, context);
@@ -66,7 +66,7 @@ protected ReconcileResult<R> reconcile(P primary, R actualResource, Context<P> c
6666
if (updatable) {
6767
final Matcher.Result<R> match = match(actualResource, primary, context);
6868
if (!match.matched()) {
69-
final var desired = match.computedDesired().orElse(desired(primary, context));
69+
final var desired = match.computedDesired().orElse(desired(primary, actual, context));
7070
throwIfNull(desired, primary, "Desired");
7171
logForOperation("Updating", primary, desired);
7272
var updatedResource = handleUpdate(actualResource, desired, primary, context);
@@ -147,7 +147,7 @@ protected R handleUpdate(R actual, R desired, P primary, Context<P> context) {
147147
return updated;
148148
}
149149

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

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/KubernetesDependentResource.java

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

239239
@Override
240-
protected R desired(P primary, Context<P> context) {
241-
return super.desired(primary, context);
240+
protected R desired(P primary, R actual, Context<P> context) {
241+
return super.desired(primary, actual, context);
242242
}
243243

244244
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
@@ -92,7 +92,8 @@ protected void onUpdated(TestCustomResource primary, ConfigMap updated, ConfigMa
9292
Context<TestCustomResource> context) {}
9393

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

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())

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

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

1919
@Override
2020
protected ConfigMap desired(DependentOperationEventFilterCustomResource primary,
21-
Context<DependentOperationEventFilterCustomResource> context) {
21+
ConfigMap actual, Context<DependentOperationEventFilterCustomResource> context) {
2222

2323
ConfigMap configMap = new ConfigMap();
2424
configMap.setMetadata(new ObjectMeta());

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentresourcecrossref/DependentResourceCrossRefReconciler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public SecretDependentResource() {
6060

6161
@Override
6262
protected Secret desired(DependentResourceCrossRefResource primary,
63-
Context<DependentResourceCrossRefResource> context) {
63+
Secret actual, Context<DependentResourceCrossRefResource> context) {
6464
Secret secret = new Secret();
6565
secret.setMetadata(new ObjectMetaBuilder()
6666
.withName(primary.getMetadata().getName())
@@ -80,7 +80,7 @@ public ConfigMapDependentResource() {
8080

8181
@Override
8282
protected ConfigMap desired(DependentResourceCrossRefResource primary,
83-
Context<DependentResourceCrossRefResource> context) {
83+
ConfigMap actual, Context<DependentResourceCrossRefResource> context) {
8484
var secret = context.getSecondaryResource(Secret.class);
8585
if (secret.isEmpty()) {
8686
throw new IllegalStateException("Secret is empty");

0 commit comments

Comments
 (0)