Skip to content

Commit 7ed8e6c

Browse files
authored
improve: webpage e2e test and deprecated api usage (#2124)
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 092a640 commit 7ed8e6c

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

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

+7-5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.fabric8.kubernetes.api.model.apps.Deployment;
1717
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
1818
import io.fabric8.kubernetes.client.KubernetesClient;
19+
import io.fabric8.kubernetes.client.dsl.Replaceable;
1920
import io.javaoperatorsdk.operator.ReconcilerUtils;
2021
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
2122
import io.javaoperatorsdk.operator.api.reconciler.Context;
@@ -107,7 +108,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
107108
desiredHtmlConfigMap.getMetadata().getName(),
108109
ns);
109110
var res = kubernetesClient.configMaps().inNamespace(ns).resource(desiredHtmlConfigMap)
110-
.createOrReplace();
111+
.createOr(Replaceable::update);
111112
log.debug("Updated config map: {}", res);
112113
}
113114

@@ -118,7 +119,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
118119
desiredDeployment.getMetadata().getName(),
119120
ns);
120121
kubernetesClient.apps().deployments().inNamespace(ns).resource(desiredDeployment)
121-
.createOrReplace();
122+
.createOr(Replaceable::update);
122123
}
123124

124125
var existingService = context.getSecondaryResource(Service.class).orElse(null);
@@ -127,14 +128,15 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
127128
"Creating or updating Deployment {} in {}",
128129
desiredDeployment.getMetadata().getName(),
129130
ns);
130-
kubernetesClient.services().inNamespace(ns).resource(desiredService).createOrReplace();
131+
kubernetesClient.services().inNamespace(ns).resource(desiredService)
132+
.createOr(Replaceable::update);
131133
}
132134

133135
var existingIngress = context.getSecondaryResource(Ingress.class);
134136
if (Boolean.TRUE.equals(webPage.getSpec().getExposed())) {
135137
var desiredIngress = makeDesiredIngress(webPage);
136138
if (existingIngress.isEmpty() || !match(desiredIngress, existingIngress.get())) {
137-
kubernetesClient.resource(desiredIngress).inNamespace(ns).createOrReplace();
139+
kubernetesClient.resource(desiredIngress).inNamespace(ns).createOr(Replaceable::update);
138140
}
139141
} else
140142
existingIngress.ifPresent(
@@ -150,7 +152,7 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
150152
kubernetesClient.pods().inNamespace(ns).withLabel("app", deploymentName(webPage)).delete();
151153
}
152154
webPage.setStatus(createStatus(desiredHtmlConfigMap.getMetadata().getName()));
153-
return UpdateControl.updateStatus(webPage);
155+
return UpdateControl.patchStatus(webPage);
154156
}
155157

156158
private boolean match(Ingress desiredIngress, Ingress existingIngress) {

Diff for: sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.slf4j.Logger;
1313
import org.slf4j.LoggerFactory;
1414

15+
import io.fabric8.kubernetes.api.model.ConfigMap;
1516
import io.fabric8.kubernetes.api.model.ObjectMeta;
1617
import io.fabric8.kubernetes.api.model.apps.Deployment;
1718
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -23,6 +24,7 @@
2324

2425
import static io.javaoperatorsdk.operator.sample.Utils.deploymentName;
2526
import static io.javaoperatorsdk.operator.sample.Utils.serviceName;
27+
import static io.javaoperatorsdk.operator.sample.WebPageReconciler.INDEX_HTML;
2628
import static org.assertj.core.api.Assertions.assertThat;
2729
import static org.awaitility.Awaitility.await;
2830

@@ -72,7 +74,10 @@ void testAddingWebPage() {
7274
await().atMost(Duration.ofSeconds(LONG_WAIT_SECONDS))
7375
.pollInterval(POLL_INTERVAL)
7476
.untilAsserted(() -> {
75-
String page = httpGetForWebPage(webPage);
77+
String page = operator().get(ConfigMap.class, Utils.configMapName(webPage)).getData()
78+
.get(INDEX_HTML);
79+
// not using portforward here since there were issues with GitHub actions
80+
// String page = httpGetForWebPage(webPage);
7681
assertThat(page).isNotNull().contains(TITLE2);
7782
});
7883

0 commit comments

Comments
 (0)