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>