Skip to content

Commit 0b7e374

Browse files
committed
feat: desired method aware of actual resource
1 parent 89a5cf0 commit 0b7e374

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");

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java

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

9090
@Override
9191
protected ConfigMap desired(DependentGarbageCollectionTestCustomResource primary,
92-
Context<DependentGarbageCollectionTestCustomResource> context) {
92+
ConfigMap actual, Context<DependentGarbageCollectionTestCustomResource> context) {
9393
ConfigMap configMap = new ConfigMap();
9494
configMap.setMetadata(new ObjectMetaBuilder()
9595
.withName(primary.getMetadata().getName())

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresource/MultipleDependentResourceConfigMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public MultipleDependentResourceConfigMap(int value) {
2121

2222
@Override
2323
protected ConfigMap desired(MultipleDependentResourceCustomResource primary,
24-
Context<MultipleDependentResourceCustomResource> context) {
24+
ConfigMap actual, Context<MultipleDependentResourceCustomResource> context) {
2525
Map<String, String> data = new HashMap<>();
2626
data.put(DATA_KEY, String.valueOf(value));
2727

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource1.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ReconcileResult<ConfigMap> reconcile(OrderedManagedDependentCustomResourc
3030

3131
@Override
3232
protected ConfigMap desired(OrderedManagedDependentCustomResource primary,
33-
Context<OrderedManagedDependentCustomResource> context) {
33+
ConfigMap actual, Context<OrderedManagedDependentCustomResource> context) {
3434

3535
ConfigMap configMap = new ConfigMap();
3636
configMap.setMetadata(new ObjectMeta());

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ReconcileResult<ConfigMap> reconcile(OrderedManagedDependentCustomResourc
3030

3131
@Override
3232
protected ConfigMap desired(OrderedManagedDependentCustomResource primary,
33-
Context<OrderedManagedDependentCustomResource> context) {
33+
ConfigMap actual, Context<OrderedManagedDependentCustomResource> context) {
3434

3535
ConfigMap configMap = new ConfigMap();
3636
configMap.setMetadata(new ObjectMeta());

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public DeploymentDependentResource() {
9595

9696
@Override
9797
protected Deployment desired(StandaloneDependentTestCustomResource primary,
98-
Context<StandaloneDependentTestCustomResource> context) {
98+
Deployment actual, Context<StandaloneDependentTestCustomResource> context) {
9999
Deployment deployment =
100100
ReconcilerUtils.loadYaml(Deployment.class, StandaloneDependentResourceIT.class,
101101
"nginx-deployment.yaml");

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

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

3232
@Override
3333
protected ConfigMap desired(WorkflowAllFeatureCustomResource primary,
34-
Context<WorkflowAllFeatureCustomResource> context) {
34+
ConfigMap actual, Context<WorkflowAllFeatureCustomResource> context) {
3535
ConfigMap configMap = new ConfigMap();
3636
configMap.setMetadata(new ObjectMetaBuilder()
3737
.withName(primary.getMetadata().getName())

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/DeploymentDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public DeploymentDependentResource() {
1515

1616
@Override
1717
protected Deployment desired(WorkflowAllFeatureCustomResource primary,
18-
Context<WorkflowAllFeatureCustomResource> context) {
18+
Deployment actual, Context<WorkflowAllFeatureCustomResource> context) {
1919
Deployment deployment =
2020
ReconcilerUtils.loadYaml(Deployment.class, WorkflowAllFeatureIT.class,
2121
"nginx-deployment.yaml");

sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void configureWith(ResourcePollerConfig config) {
6262
}
6363

6464
@Override
65-
public Schema desired(MySQLSchema primary, Context<MySQLSchema> context) {
65+
public Schema desired(MySQLSchema primary, Schema actual, Context<MySQLSchema> context) {
6666
return new Schema(primary.getMetadata().getName(), primary.getSpec().getEncoding());
6767
}
6868

sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private static String encode(String value) {
3333
}
3434

3535
@Override
36-
protected Secret desired(MySQLSchema schema, Context<MySQLSchema> context) {
36+
protected Secret desired(MySQLSchema schema, Secret actual, Context<MySQLSchema> context) {
3737
final var password = RandomStringUtils
3838
.randomAlphanumeric(16); // NOSONAR: we don't need cryptographically-strong randomness here
3939
final var name = schema.getMetadata().getName();

sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ private static String tomcatImage(Tomcat tomcat) {
2121
}
2222

2323
@Override
24-
protected Deployment desired(Tomcat tomcat, Context<Tomcat> context) {
24+
protected Deployment desired(Tomcat tomcat, Deployment actual, Context<Tomcat> context) {
2525
Deployment deployment =
2626
ReconcilerUtils.loadYaml(Deployment.class, getClass(), "deployment.yaml");
2727
final ObjectMeta tomcatMetadata = tomcat.getMetadata();

sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public ServiceDependentResource() {
1616
}
1717

1818
@Override
19-
protected Service desired(Tomcat tomcat, Context<Tomcat> context) {
19+
protected Service desired(Tomcat tomcat, Service actual, Context<Tomcat> context) {
2020
final ObjectMeta tomcatMetadata = tomcat.getMetadata();
2121
return new ServiceBuilder(ReconcilerUtils.loadYaml(Service.class, getClass(), "service.yaml"))
2222
.editMetadata()

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/ConfigMapDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public ConfigMapDependentResource() {
2929
}
3030

3131
@Override
32-
protected ConfigMap desired(WebPage webPage, Context<WebPage> context) {
32+
protected ConfigMap desired(WebPage webPage, ConfigMap actual, Context<WebPage> context) {
3333
Map<String, String> data = new HashMap<>();
3434
data.put("index.html", webPage.getSpec().getHtml());
3535
Map<String, String> labels = new HashMap<>();

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public DeploymentDependentResource() {
2424
}
2525

2626
@Override
27-
protected Deployment desired(WebPage webPage, Context<WebPage> context) {
27+
protected Deployment desired(WebPage webPage, Deployment actual, Context<WebPage> context) {
2828
Map<String, String> labels = new HashMap<>();
2929
labels.put(SELECTOR, "true");
3030
var deploymentName = deploymentName(webPage);

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/IngressDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public IngressDependentResource() {
1616
}
1717

1818
@Override
19-
protected Ingress desired(WebPage webPage, Context<WebPage> context) {
19+
protected Ingress desired(WebPage webPage, Ingress actual, Context<WebPage> context) {
2020
return makeDesiredIngress(webPage);
2121
}
2222

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public ServiceDependentResource() {
2222
}
2323

2424
@Override
25-
protected Service desired(WebPage webPage, Context<WebPage> context) {
25+
protected Service desired(WebPage webPage, Service actual, Context<WebPage> context) {
2626
Map<String, String> serviceLabels = new HashMap<>();
2727
serviceLabels.put(SELECTOR, "true");
2828
Service service = loadYaml(Service.class, getClass(), "service.yaml");

0 commit comments

Comments
 (0)