You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2024/09/05 16:24:12 UTC

(camel-quarkus) branch main updated: Upgraded strimzi/kafka image + removed workaround for j17

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


The following commit(s) were added to refs/heads/main by this push:
     new dbf2853a62 Upgraded strimzi/kafka image + removed workaround for j17
dbf2853a62 is described below

commit dbf2853a6209cb958711681c97ded033f4e6df44
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Thu Sep 5 10:05:31 2024 +0200

    Upgraded strimzi/kafka image + removed workaround for j17
---
 .../test/support/kafka/KafkaTestResource.java      | 64 ++--------------------
 pom.xml                                            |  2 +-
 2 files changed, 5 insertions(+), 61 deletions(-)

diff --git a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
index a38e7c1f74..812770a210 100644
--- a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
+++ b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
@@ -20,16 +20,11 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.function.Function;
 
-import com.github.dockerjava.api.exception.NotFoundException;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import io.strimzi.test.container.StrimziKafkaContainer;
-import org.apache.camel.quarkus.test.FipsModeUtil;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.ContainerFetchException;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.images.builder.ImageFromDockerfile;
 import org.testcontainers.utility.TestcontainersConfiguration;
 
 public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
@@ -37,14 +32,13 @@ public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
     private static final Logger LOGGER = LoggerFactory.getLogger(KafkaTestResource.class);
 
     private StrimziKafkaContainer container;
-    private GenericContainer j17container;
 
     @Override
     public Map<String, String> start() {
         LOGGER.info(TestcontainersConfiguration.getInstance().toString());
 
         try {
-            startContainer(KAFKA_IMAGE_NAME, name -> new StrimziKafkaContainer(name));
+            start(name -> new StrimziKafkaContainer(name));
 
             return Collections.singletonMap("camel.component.kafka.brokers", container.getBootstrapServers());
         } catch (Exception e) {
@@ -54,58 +48,15 @@ public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
 
     public String start(Function<String, StrimziKafkaContainer> containerSupplier) {
         LOGGER.info(TestcontainersConfiguration.getInstance().toString());
-
-        //if FIPS environment is present, custom container using J17 has to used because:
-        // Password-based encryption support in FIPs mode was implemented in the Red Hat build of OpenJDK 17 update 4
-        if (FipsModeUtil.isFipsMode()) {
-            //custom image should be cached for the next usages with following id
-            String customImageName = "camel-quarkus-test-custom-" + KAFKA_IMAGE_NAME.replaceAll("[\\./]", "-");
-
-            try {
-                //in case that the image is not accessible, fetch exception is thrown
-                startContainer(customImageName, containerSupplier);
-            } catch (ContainerFetchException e) {
-                if (e.getCause() instanceof NotFoundException) {
-                    LOGGER.info("Custom image for kafka (%s) does not exist. Has to be created.", customImageName);
-
-                    //start of the customized container will create the image
-                    //it is not possible to customize existing StrimziKafkaContainer. Testcontainer API doe not allow
-                    //to customize the image.
-                    // This workaround can be removed once the strimzi container with openjdk 17 is released.
-                    // According to https://strimzi.io/blog/2023/01/25/running-apache-kafka-on-fips-enabled-kubernetes-cluster/
-                    // image should exist
-                    j17container = new GenericContainer(
-                            new ImageFromDockerfile(customImageName, false)
-                                    .withDockerfileFromBuilder(builder -> builder
-                                            .from("quay.io/strimzi-test-container/test-container:latest-kafka-3.2.1")
-                                            .env("JAVA_HOME", "/usr/lib/jvm/jre-17")
-                                            .env("PATH", "/usr/lib/jvm/jre-17/bin:$PATH")
-                                            .user("root")
-                                            .run("microdnf install -y --nodocs java-17-openjdk-headless glibc-langpack-en && microdnf clean all")));
-                    j17container.start();
-
-                    LOGGER.info("Custom image for kafka (%s) has been created.", customImageName);
-
-                    //start kafka container again
-                    startContainer(customImageName, containerSupplier);
-                }
-            }
-        } else {
-            startContainer(KAFKA_IMAGE_NAME, containerSupplier);
-        }
-
-        return container.getBootstrapServers();
-
-    }
-
-    private void startContainer(String imageName, Function<String, StrimziKafkaContainer> containerSupplier) {
-        container = containerSupplier.apply(imageName);
+        container = containerSupplier.apply(KAFKA_IMAGE_NAME);
 
         /* Added container startup logging because of https://github.com/apache/camel-quarkus/issues/2461 */
         container.withLogConsumer(frame -> System.out.print(frame.getUtf8String()))
                 //                .withEnv("KAFKA_LOG4J_OPTS", "-Dlog4j.configuration=file:/log4j.properties")
                 .waitForRunning()
                 .start();
+
+        return container.getBootstrapServers();
     }
 
     @Override
@@ -117,13 +68,6 @@ public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
                 // ignored
             }
         }
-        if (j17container != null) {
-            try {
-                j17container.stop();
-            } catch (Exception e) {
-                // ignored
-            }
-        }
     }
 
     @Override
diff --git a/pom.xml b/pom.xml
index 2a007e51e5..58c5ae53ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -240,7 +240,7 @@
         <hashicorp-vault.container.image>docker.io/hashicorp/vault:1.17</hashicorp-vault.container.image>
         <ibm-mq.container.image>icr.io/ibm-messaging/mq:9.3.2.1-r1</ibm-mq.container.image>
         <influxdb.container.image>docker.io/influxdb:1.8.10</influxdb.container.image>
-        <kafka.container.image>quay.io/strimzi-test-container/test-container:latest-kafka-3.2.1</kafka.container.image>
+        <kafka.container.image>quay.io/strimzi-test-container/test-container:latest-kafka-3.8.0</kafka.container.image>
         <kafka-oauth.container.image>quay.io/strimzi/kafka:latest-kafka-3.7.0</kafka-oauth.container.image>
         <keycloak.container.image>quay.io/keycloak/keycloak:23.0.7</keycloak.container.image>
         <kudu.container.image>docker.io/apache/kudu:1.17.0</kudu.container.image>