Skip to content

Commit 03073ab

Browse files
committed
improve: facelift samples to use ReconcileUtils (#3135)
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent fdc210d commit 03073ab

File tree

6 files changed

+12
-78
lines changed

6 files changed

+12
-78
lines changed

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private static void assertReconciled(
131131
assertThat(
132132
reconciler.numberOfResourceReconciliations(
133133
resourceInAdditionalTestNamespace))
134-
.isEqualTo(2));
134+
.isEqualTo(1));
135135
}
136136

137137
private static void assertNotReconciled(

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestReconciler.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,7 @@ public UpdateControl<ChangeNamespaceTestCustomResource> reconcile(
5353
ChangeNamespaceTestCustomResource primary,
5454
Context<ChangeNamespaceTestCustomResource> context) {
5555

56-
var actualConfigMap = context.getSecondaryResource(ConfigMap.class);
57-
if (actualConfigMap.isEmpty()) {
58-
context
59-
.getClient()
60-
.configMaps()
61-
.inNamespace(primary.getMetadata().getNamespace())
62-
.resource(configMap(primary))
63-
.create();
64-
}
56+
ReconcileUtils.serverSideApply(context, configMap(primary));
6557

6658
if (primary.getStatus() == null) {
6759
primary.setStatus(new ChangeNamespaceTestCustomResourceStatus());

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingReconciler.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.io.IOException;
1919
import java.io.InputStream;
20-
import java.util.HashMap;
2120
import java.util.List;
2221
import java.util.Map;
2322

@@ -41,36 +40,11 @@ public UpdateControl<GenericKubernetesResourceHandlingCustomResource> reconcile(
4140
GenericKubernetesResourceHandlingCustomResource primary,
4241
Context<GenericKubernetesResourceHandlingCustomResource> context) {
4342

44-
var secondary = context.getSecondaryResource(GenericKubernetesResource.class);
45-
46-
secondary.ifPresentOrElse(
47-
r -> {
48-
var desired = desiredConfigMap(primary, context);
49-
if (!matches(r, desired)) {
50-
context
51-
.getClient()
52-
.genericKubernetesResources(VERSION, KIND)
53-
.resource(desired)
54-
.update();
55-
}
56-
},
57-
() ->
58-
context
59-
.getClient()
60-
.genericKubernetesResources(VERSION, KIND)
61-
.resource(desiredConfigMap(primary, context))
62-
.create());
43+
ReconcileUtils.serverSideApply(context, desiredConfigMap(primary, context));
6344

6445
return UpdateControl.noUpdate();
6546
}
6647

67-
@SuppressWarnings("unchecked")
68-
private boolean matches(GenericKubernetesResource actual, GenericKubernetesResource desired) {
69-
var actualData = (HashMap<String, String>) actual.getAdditionalProperties().get("data");
70-
var desiredData = (HashMap<String, String>) desired.getAdditionalProperties().get("data");
71-
return actualData.equals(desiredData);
72-
}
73-
7448
GenericKubernetesResource desiredConfigMap(
7549
GenericKubernetesResourceHandlingCustomResource primary,
7650
Context<GenericKubernetesResourceHandlingCustomResource> context) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.javaoperatorsdk.operator.api.reconciler.Context;
2727
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
2828
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
29+
import io.javaoperatorsdk.operator.api.reconciler.ReconcileUtils;
2930
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
3031
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
3132
import io.javaoperatorsdk.operator.processing.event.ResourceID;
@@ -53,31 +54,8 @@ public UpdateControl<MultipleSecondaryEventSourceCustomResource> reconcile(
5354
Context<MultipleSecondaryEventSourceCustomResource> context) {
5455
numberOfExecutions.addAndGet(1);
5556

56-
final var client = context.getClient();
57-
if (client
58-
.configMaps()
59-
.inNamespace(resource.getMetadata().getNamespace())
60-
.withName(getName1(resource))
61-
.get()
62-
== null) {
63-
client
64-
.configMaps()
65-
.inNamespace(resource.getMetadata().getNamespace())
66-
.resource(configMap(getName1(resource), resource))
67-
.createOrReplace();
68-
}
69-
if (client
70-
.configMaps()
71-
.inNamespace(resource.getMetadata().getNamespace())
72-
.withName(getName2(resource))
73-
.get()
74-
== null) {
75-
client
76-
.configMaps()
77-
.inNamespace(resource.getMetadata().getNamespace())
78-
.resource(configMap(getName2(resource), resource))
79-
.createOrReplace();
80-
}
57+
ReconcileUtils.serverSideApply(context, configMap(getName1(resource), resource));
58+
ReconcileUtils.serverSideApply(context, configMap(getName2(resource), resource));
8159

8260
if (numberOfExecutions.get() >= 3) {
8361
if (context.getSecondaryResources(ConfigMap.class).size() != 2) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateReconciler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
3333
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
3434
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
35+
import io.javaoperatorsdk.operator.api.reconciler.ReconcileUtils;
3536
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
3637
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
3738
import io.javaoperatorsdk.operator.processing.event.ResourceID;
@@ -110,7 +111,7 @@ private void createExternalResource(
110111
// This is critical in this case, since on next reconciliation if it would not be in the cache
111112
// it would be created again.
112113
configMapEventSource.eventFilteringUpdateAndCacheResource(
113-
configMap, toCreate -> context.getClient().configMaps().resource(toCreate).create());
114+
configMap, toCreate -> ReconcileUtils.serverSideApply(context, toCreate));
114115
externalResourceEventSource.handleRecentResourceCreate(primaryID, createdResource);
115116
}
116117

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

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
105105
"Creating or updating ConfigMap {} in {}",
106106
desiredHtmlConfigMap.getMetadata().getName(),
107107
ns);
108-
context
109-
.getClient()
110-
.configMaps()
111-
.inNamespace(ns)
112-
.resource(desiredHtmlConfigMap)
113-
.serverSideApply();
108+
ReconcileUtils.serverSideApply(context, desiredHtmlConfigMap);
114109
}
115110

116111
var existingDeployment = context.getSecondaryResource(Deployment.class).orElse(null);
@@ -119,13 +114,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
119114
"Creating or updating Deployment {} in {}",
120115
desiredDeployment.getMetadata().getName(),
121116
ns);
122-
context
123-
.getClient()
124-
.apps()
125-
.deployments()
126-
.inNamespace(ns)
127-
.resource(desiredDeployment)
128-
.serverSideApply();
117+
ReconcileUtils.serverSideApply(context, desiredDeployment);
129118
}
130119

131120
var existingService = context.getSecondaryResource(Service.class).orElse(null);
@@ -134,14 +123,14 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
134123
"Creating or updating Deployment {} in {}",
135124
desiredDeployment.getMetadata().getName(),
136125
ns);
137-
context.getClient().services().inNamespace(ns).resource(desiredService).serverSideApply();
126+
ReconcileUtils.serverSideApply(context, desiredService);
138127
}
139128

140129
var existingIngress = context.getSecondaryResource(Ingress.class);
141130
if (Boolean.TRUE.equals(webPage.getSpec().getExposed())) {
142131
var desiredIngress = makeDesiredIngress(webPage);
143132
if (existingIngress.isEmpty() || !match(desiredIngress, existingIngress.get())) {
144-
context.getClient().resource(desiredIngress).inNamespace(ns).serverSideApply();
133+
ReconcileUtils.serverSideApply(context, desiredIngress);
145134
}
146135
} else existingIngress.ifPresent(ingress -> context.getClient().resource(ingress).delete());
147136

0 commit comments

Comments
 (0)