This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 88070370bcff5612cf4357527355d99a6cf65c90
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Wed Mar 5 09:39:54 2025 +0000

    Adapt Kubernetes extension tests to updates in Camel 4.10.1
    
    Fixes #7011
    Fixes #7042
    Fixes #7044
---
 .../it/KubernetesConfigMapContextReloadIT.java     |   6 +-
 .../it/KubernetesConfigMapContextReloadTest.java   |  14 +-
 .../kubernetes/it/KubernetesConfigMapTest.java     |  42 +++---
 .../kubernetes/it/KubernetesDeploymentTest.java    | 150 ++++++++++-----------
 .../kubernetes/it/KubernetesPodsTest.java          |   3 -
 .../it/KubernetesSecretContextReloadIT.java        |   2 -
 .../it/KubernetesSecretContextReloadTest.java      |  20 ++-
 7 files changed, 121 insertions(+), 116 deletions(-)

diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadIT.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadIT.java
index 696275675d..21ac551915 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadIT.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadIT.java
@@ -16,10 +16,8 @@
  */
 package org.apache.camel.quarkus.component.kubernetes.it;
 
-import io.quarkus.test.junit.QuarkusTest;
-import org.junit.jupiter.api.Disabled;
+import io.quarkus.test.junit.QuarkusIntegrationTest;
 
-@Disabled("https://github.com/apache/camel-quarkus/issues/7042";)
-@QuarkusTest
+@QuarkusIntegrationTest
 class KubernetesConfigMapContextReloadIT extends 
KubernetesConfigMapContextReloadTest {
 }
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadTest.java
index 2843c105a4..54f39c10f5 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadTest.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapContextReloadTest.java
@@ -26,12 +26,10 @@ import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import org.awaitility.Awaitility;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.Matchers.is;
 
-@Disabled("https://github.com/apache/camel-quarkus/issues/7042";)
 
@TestProfile(KubernetesConfigMapContextReloadTest.KubernetesConfigMapContextReloadTestProfile.class)
 @QuarkusTest
 class KubernetesConfigMapContextReloadTest {
@@ -60,8 +58,16 @@ class KubernetesConfigMapContextReloadTest {
                             "metadata.namespace", is(namespace),
                             "data.foo", is("bar"));
 
-            // Need to delay before updating the secret so that the reload 
trigger task can capture the event
-            Thread.sleep(500);
+            // Need to delay before updating the ConfigMap so that the reload 
trigger task can capture the event
+            
Awaitility.await().pollDelay(Duration.ofSeconds(1)).pollInterval(Duration.ofMillis(250))
+                    .atMost(Duration.ofMinutes(1)).untilAsserted(() -> {
+                        RestAssured.given()
+                                .when()
+                                .get("/kubernetes/configmap/" + namespace + 
"/" + name)
+                                .then()
+                                .statusCode(200)
+                                .body("metadata.name", is(name));
+                    });
 
             // Update to trigger context reload
             Map<String, String> updatedData = Map.of("bin", "baz");
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapTest.java
index 5976c27ed8..a78466c280 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapTest.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesConfigMapTest.java
@@ -28,8 +28,6 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.quarkus.test.kubernetes.client.KubernetesTestServer;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.apache.camel.quarkus.test.EnabledIf;
-import org.apache.camel.quarkus.test.mock.backend.MockBackendEnabled;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 
@@ -137,7 +135,6 @@ class KubernetesConfigMapTest {
         }
     }
 
-    @EnabledIf(MockBackendEnabled.class)
     @Test
     void configMapEvents() throws Exception {
         try (CamelKubernetesNamespace namespace = new 
CamelKubernetesNamespace()) {
@@ -172,16 +169,18 @@ class KubernetesConfigMapTest {
                     .then()
                     .statusCode(204);
 
-            RestAssured.given()
-                    .contentType(ContentType.JSON)
-                    .body(data)
-                    .when()
-                    .post("/kubernetes/configmap/" + namespace.getNamespace() 
+ "/camel-configmap-watched")
-                    .then()
-                    .statusCode(201)
-                    .body("metadata.name", is("camel-configmap-watched"),
-                            "metadata.namespace", is(namespace.getNamespace()),
-                            "data.some", is("data"));
+            
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
+                RestAssured.given()
+                        .contentType(ContentType.JSON)
+                        .body(data)
+                        .when()
+                        .post("/kubernetes/configmap/" + 
namespace.getNamespace() + "/camel-configmap-watched")
+                        .then()
+                        .statusCode(201)
+                        .body("metadata.name", is("camel-configmap-watched"),
+                                "metadata.namespace", 
is(namespace.getNamespace()),
+                                "data.some", is("data"));
+            });
 
             RestAssured.given()
                     .when()
@@ -189,13 +188,16 @@ class KubernetesConfigMapTest {
                     .then()
                     .statusCode(204);
 
-            RestAssured.given()
-                    .get("/kubernetes/configmap/events")
-                    .then()
-                    .statusCode(200)
-                    .body("metadata.name", is("camel-configmap-watched"),
-                            "metadata.namespace", is(namespace.getNamespace()),
-                            "data.some", is("data"));
+            
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
+                RestAssured.given()
+                        .get("/kubernetes/configmap/events")
+                        .then()
+                        .statusCode(200)
+                        .body("metadata.name", is("camel-configmap-watched"),
+                                "metadata.namespace", 
is(namespace.getNamespace()),
+                                "data.some", is("data"));
+
+            });
         } finally {
             RestAssured.given()
                     .when()
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesDeploymentTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesDeploymentTest.java
index 635b7aceb6..1c456980d6 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesDeploymentTest.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesDeploymentTest.java
@@ -31,8 +31,6 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.quarkus.test.kubernetes.client.KubernetesTestServer;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.apache.camel.quarkus.test.EnabledIf;
-import org.apache.camel.quarkus.test.mock.backend.MockBackendEnabled;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 
@@ -86,100 +84,97 @@ class KubernetesDeploymentTest {
                     .body("metadata.name", is(name),
                             "metadata.namespace", 
is(namespace.getNamespace()));
 
-            // TODO: Remove the if block when 
23b7f03878faf906e81932e2c92fd3dceef666a6 is present in camel
-            // https://github.com/apache/camel-quarkus/issues/7011
-            if (false) {
-                // Read
-                Deployment currentDeployment = RestAssured.given()
-                        .when()
-                        .get("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name)
-                        .then()
-                        .statusCode(200)
-                        .body("metadata.name", is(name),
-                                "metadata.namespace", 
is(namespace.getNamespace()))
-                        .extract()
-                        .as(Deployment.class);
+            // Read
+            Deployment currentDeployment = RestAssured.given()
+                    .when()
+                    .get("/kubernetes/deployment/" + namespace.getNamespace() 
+ "/" + name)
+                    .then()
+                    .statusCode(200)
+                    .body("metadata.name", is(name),
+                            "metadata.namespace", is(namespace.getNamespace()))
+                    .extract()
+                    .as(Deployment.class);
 
-                // Update
-                int value = 120;
-                Deployment updatedDeployment = new 
DeploymentBuilder(currentDeployment)
-                        .editSpec()
-                        .withMinReadySeconds(value)
-                        .endSpec()
-                        .build();
+            // Update
+            int value = 120;
+            Deployment updatedDeployment = new 
DeploymentBuilder(currentDeployment)
+                    .editSpec()
+                    .withMinReadySeconds(value)
+                    .endSpec()
+                    .build();
 
+            RestAssured.given()
+                    .contentType(ContentType.JSON)
+                    .body(updatedDeployment)
+                    .when()
+                    .put("/kubernetes/deployment/" + namespace.getNamespace())
+                    .then()
+                    .statusCode(200)
+                    .body("spec.minReadySeconds", is(value));
+
+            
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
                 RestAssured.given()
-                        .contentType(ContentType.JSON)
-                        .body(updatedDeployment)
                         .when()
-                        .put("/kubernetes/deployment/" + 
namespace.getNamespace())
+                        .get("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name)
                         .then()
                         .statusCode(200)
                         .body("spec.minReadySeconds", is(value));
+            });
 
-                
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
-                    RestAssured.given()
-                            .when()
-                            .get("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name)
-                            .then()
-                            .statusCode(200)
-                            .body("spec.minReadySeconds", is(value));
-                });
+            if (mockServer != null) {
+                mockServer.expect()
+                        .get()
+                        .withPath("/apis/apps/v1/namespaces/" + 
namespace.getNamespace() + "/deployments")
+                        .andReturn(200, new 
DeploymentListBuilder().addAllToItems(List.of(updatedDeployment)).build())
+                        .once();
 
-                String listNamespace = mockServer == null ? 
namespace.getNamespace() : "test";
-                if (mockServer != null) {
-                    mockServer.expect()
-                            .get()
-                            .withPath("/apis/apps/v1/namespaces/" + 
listNamespace + "/deployments")
-                            .andReturn(200, new 
DeploymentListBuilder().addAllToItems(List.of(updatedDeployment)).build())
-                            .once();
+                mockServer.expect()
+                        .get()
+                        .withPath(
+                                "/apis/apps/v1/namespaces/" + 
namespace.getNamespace() + "/deployments?labelSelector=app%3D"
+                                        + name)
+                        .andReturn(200, new 
DeploymentListBuilder().addAllToItems(List.of(updatedDeployment)).build())
+                        .once();
+            }
 
-                    mockServer.expect()
-                            .get()
-                            .withPath("/apis/apps/v1/namespaces/" + 
listNamespace + "/deployments?labelSelector=app%3D" + name)
-                            .andReturn(200, new 
DeploymentListBuilder().addAllToItems(List.of(updatedDeployment)).build())
-                            .once();
-                }
+            // List
+            RestAssured.given()
+                    .when()
+                    .get("/kubernetes/deployment/" + namespace.getNamespace())
+                    .then()
+                    .statusCode(200)
+                    .body("[0].metadata.name", is(name),
+                            "[0].metadata.namespace", 
is(namespace.getNamespace()));
 
-                // List
-                RestAssured.given()
-                        .when()
-                        .get("/kubernetes/deployment/" + listNamespace)
-                        .then()
-                        .statusCode(200)
-                        .body("[0].metadata.name", is(name),
-                                "[0].metadata.namespace", 
is(namespace.getNamespace()));
+            // List by labels
+            RestAssured.given()
+                    .contentType(ContentType.JSON)
+                    .body(Map.of("app", name))
+                    .when()
+                    .get("/kubernetes/deployment/labels/" + 
namespace.getNamespace())
+                    .then()
+                    .statusCode(200)
+                    .body("[0].metadata.name", is(name),
+                            "[0].metadata.namespace", 
is(namespace.getNamespace()));
 
-                // List by labels
+            // Scale
+            // Requires a real k8s server, as the scale operation returns 
deployment.getStatus().getReplicas() that is not available in the mock server
+            if (mockServer == null) {
+                int scaleReplicas = 1;
                 RestAssured.given()
-                        .contentType(ContentType.JSON)
-                        .body(Map.of("app", name))
                         .when()
-                        .get("/kubernetes/deployment/labels/" + listNamespace)
+                        .post("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name + "/" + scaleReplicas)
                         .then()
-                        .statusCode(200)
-                        .body("[0].metadata.name", is(name),
-                                "[0].metadata.namespace", 
is(namespace.getNamespace()));
+                        .statusCode(201);
 
-                // Scale
-                // Requires a real k8s server, as the scale operation returns 
deployment.getStatus().getReplicas() that is not available in the mock server
-                if (mockServer == null) {
-                    int scaleReplicas = 1;
+                
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
                     RestAssured.given()
                             .when()
-                            .post("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name + "/" + scaleReplicas)
+                            .get("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name)
                             .then()
-                            .statusCode(201);
-
-                    
Awaitility.await().pollInterval(Duration.ofMillis(250)).atMost(Duration.ofMinutes(1)).untilAsserted(()
 -> {
-                        RestAssured.given()
-                                .when()
-                                .get("/kubernetes/deployment/" + 
namespace.getNamespace() + "/" + name)
-                                .then()
-                                .statusCode(200)
-                                .body("spec.replicas", is(scaleReplicas));
-                    });
-                }
+                            .statusCode(200)
+                            .body("spec.replicas", is(scaleReplicas));
+                });
             }
 
             // Delete
@@ -202,7 +197,6 @@ class KubernetesDeploymentTest {
         }
     }
 
-    @EnabledIf(MockBackendEnabled.class)
     @Test
     void deploymentEvents() throws Exception {
         try (CamelKubernetesNamespace namespace = new 
CamelKubernetesNamespace()) {
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesPodsTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesPodsTest.java
index e405b5adeb..9bd59e2d7a 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesPodsTest.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesPodsTest.java
@@ -31,8 +31,6 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.quarkus.test.kubernetes.client.KubernetesTestServer;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
-import org.apache.camel.quarkus.test.EnabledIf;
-import org.apache.camel.quarkus.test.mock.backend.MockBackendEnabled;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 
@@ -211,7 +209,6 @@ class KubernetesPodsTest {
         }
     }
 
-    @EnabledIf(MockBackendEnabled.class)
     @Test
     void podEvents() throws Exception {
         try (CamelKubernetesNamespace namespace = new 
CamelKubernetesNamespace()) {
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadIT.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadIT.java
index 4bea227c04..aafb47a1b2 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadIT.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadIT.java
@@ -17,9 +17,7 @@
 package org.apache.camel.quarkus.component.kubernetes.it;
 
 import io.quarkus.test.junit.QuarkusIntegrationTest;
-import org.junit.jupiter.api.Disabled;
 
-@Disabled("https://github.com/apache/camel-quarkus/issues/7042";)
 @QuarkusIntegrationTest
 class KubernetesSecretContextReloadIT extends 
KubernetesSecretContextReloadTest {
 }
diff --git 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadTest.java
 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadTest.java
index 38c92983e9..71f062b1a6 100644
--- 
a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadTest.java
+++ 
b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesSecretContextReloadTest.java
@@ -16,7 +16,9 @@
  */
 package org.apache.camel.quarkus.component.kubernetes.it;
 
+import java.nio.charset.StandardCharsets;
 import java.time.Duration;
+import java.util.Base64;
 import java.util.Map;
 
 import io.fabric8.kubernetes.api.model.Secret;
@@ -28,18 +30,17 @@ import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import org.awaitility.Awaitility;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.Matchers.is;
 
-@Disabled("https://github.com/apache/camel-quarkus/issues/7042";)
 
@TestProfile(KubernetesSecretContextReloadTest.KubernetesSecretContextReloadTestProfile.class)
 @QuarkusTest
 class KubernetesSecretContextReloadTest {
     @Test
     void secretTriggersCamelContextReload() throws Exception {
-        Map<String, String> data = Map.of("project-name", "Camel");
+        Map<String, String> data = Map.of("project-name",
+                
Base64.getEncoder().encodeToString("Camel".getBytes(StandardCharsets.UTF_8)));
 
         String name = 
ConfigProvider.getConfig().getValue("camel.vault.kubernetes.secrets", 
String.class);
         Secret secret = new SecretBuilder()
@@ -72,10 +73,19 @@ class KubernetesSecretContextReloadTest {
                             "data.project-name", is(data.get("project-name")));
 
             // Need to delay before updating the secret so that the reload 
trigger task can capture the event
-            Thread.sleep(500);
+            
Awaitility.await().pollDelay(Duration.ofSeconds(1)).pollInterval(Duration.ofMillis(250))
+                    .atMost(Duration.ofMinutes(1)).untilAsserted(() -> {
+                        RestAssured.given()
+                                .when()
+                                .get("/kubernetes/secret/" + namespace + "/" + 
name)
+                                .then()
+                                .statusCode(200)
+                                .body("metadata.name", is(name));
+                    });
 
             // Update to trigger context reload
-            Map<String, String> newData = Map.of("project-name", "Apache Camel 
Quarkus");
+            Map<String, String> newData = Map.of("project-name",
+                    Base64.getEncoder().encodeToString("Apache Camel 
Quarkus".getBytes(StandardCharsets.UTF_8)));
             secret.setData(newData);
             RestAssured.given()
                     .contentType(ContentType.JSON)

Reply via email to