From 2e4fc2c7c5bd3153a7dd27df7175188cbd985731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Mon, 20 Nov 2023 14:39:36 +0100 Subject: [PATCH] improve: webpage e2e test and deprecated api usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../operator/sample/WebPageReconciler.java | 12 +++++++----- .../operator/sample/WebPageOperatorAbstractTest.java | 7 ++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java index 18021402a5..fba64bb45d 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java @@ -16,6 +16,7 @@ import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.dsl.Replaceable; import io.javaoperatorsdk.operator.ReconcilerUtils; import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Context; @@ -107,7 +108,7 @@ public UpdateControl reconcile(WebPage webPage, Context contex desiredHtmlConfigMap.getMetadata().getName(), ns); var res = kubernetesClient.configMaps().inNamespace(ns).resource(desiredHtmlConfigMap) - .createOrReplace(); + .createOr(Replaceable::update); log.debug("Updated config map: {}", res); } @@ -118,7 +119,7 @@ public UpdateControl reconcile(WebPage webPage, Context contex desiredDeployment.getMetadata().getName(), ns); kubernetesClient.apps().deployments().inNamespace(ns).resource(desiredDeployment) - .createOrReplace(); + .createOr(Replaceable::update); } var existingService = context.getSecondaryResource(Service.class).orElse(null); @@ -127,14 +128,15 @@ public UpdateControl reconcile(WebPage webPage, Context contex "Creating or updating Deployment {} in {}", desiredDeployment.getMetadata().getName(), ns); - kubernetesClient.services().inNamespace(ns).resource(desiredService).createOrReplace(); + kubernetesClient.services().inNamespace(ns).resource(desiredService) + .createOr(Replaceable::update); } var existingIngress = context.getSecondaryResource(Ingress.class); if (Boolean.TRUE.equals(webPage.getSpec().getExposed())) { var desiredIngress = makeDesiredIngress(webPage); if (existingIngress.isEmpty() || !match(desiredIngress, existingIngress.get())) { - kubernetesClient.resource(desiredIngress).inNamespace(ns).createOrReplace(); + kubernetesClient.resource(desiredIngress).inNamespace(ns).createOr(Replaceable::update); } } else existingIngress.ifPresent( @@ -150,7 +152,7 @@ public UpdateControl reconcile(WebPage webPage, Context contex kubernetesClient.pods().inNamespace(ns).withLabel("app", deploymentName(webPage)).delete(); } webPage.setStatus(createStatus(desiredHtmlConfigMap.getMetadata().getName())); - return UpdateControl.updateStatus(webPage); + return UpdateControl.patchStatus(webPage); } private boolean match(Ingress desiredIngress, Ingress existingIngress) { diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java index d1445e34ba..040b3b2f8f 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.client.KubernetesClient; @@ -23,6 +24,7 @@ import static io.javaoperatorsdk.operator.sample.Utils.deploymentName; import static io.javaoperatorsdk.operator.sample.Utils.serviceName; +import static io.javaoperatorsdk.operator.sample.WebPageReconciler.INDEX_HTML; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; @@ -72,7 +74,10 @@ void testAddingWebPage() { await().atMost(Duration.ofSeconds(LONG_WAIT_SECONDS)) .pollInterval(POLL_INTERVAL) .untilAsserted(() -> { - String page = httpGetForWebPage(webPage); + String page = operator().get(ConfigMap.class, Utils.configMapName(webPage)).getData() + .get(INDEX_HTML); + // not using portforward here since there were issues with GitHub actions + // String page = httpGetForWebPage(webPage); assertThat(page).isNotNull().contains(TITLE2); });