You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/03/23 12:06:47 UTC

[camel] branch main updated: CAMEL-17843: improve camel-test-infra-kafka support for ARM

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 3e496f5  CAMEL-17843: improve camel-test-infra-kafka support for ARM
3e496f5 is described below

commit 3e496f5faf7f0223465650c461d5ac200cc91be2
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Mar 23 11:38:07 2022 +0100

    CAMEL-17843: improve camel-test-infra-kafka support for ARM
---
 .../kafka/integration/BaseEmbeddedKafkaTestSupport.java        |  1 +
 docs/user-manual/modules/ROOT/pages/test-infra.adoc            |  9 +++++++++
 .../camel/test/infra/kafka/services/StrimziContainer.java      | 10 ++++++++--
 .../camel/test/infra/kafka/services/ZookeeperContainer.java    |  9 +++++++--
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/BaseEmbeddedKafkaTestSupport.java b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/BaseEmbeddedKafkaTestSupport.java
index da85107..10d54c1 100644
--- a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/BaseEmbeddedKafkaTestSupport.java
+++ b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/integration/BaseEmbeddedKafkaTestSupport.java
@@ -34,6 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public abstract class BaseEmbeddedKafkaTestSupport extends CamelTestSupport {
+    // Note: you must use Strimzi on MacOS with Apple Silicon (and possibly other ARM-based architectures)
     @RegisterExtension
     public static KafkaService service = KafkaServiceFactory.createService();
 
diff --git a/docs/user-manual/modules/ROOT/pages/test-infra.adoc b/docs/user-manual/modules/ROOT/pages/test-infra.adoc
index ff9f6e4..8c4135a 100644
--- a/docs/user-manual/modules/ROOT/pages/test-infra.adoc
+++ b/docs/user-manual/modules/ROOT/pages/test-infra.adoc
@@ -217,4 +217,13 @@ export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
 
 Running the test-infra with Podman on OS X and Windows should work on many cases. However, it requires additional steps and has a few issues. Therefore, it is not recommended at this time.
 
+== Known Issues and/or Tips
+
+=== Multi-architecture support: ARM
+
+Some containers don't have images available for ARM. In this case, it is recommended to use an alternative image or build your own. The list below contains some tips for specific components:
+
+* camel-test-infra-kafka: use the Strimzi images `-Dkafka.instance.type=local-strimzi-container`
+
+
 
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziContainer.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziContainer.java
index 325a143..f3d13d3 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziContainer.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziContainer.java
@@ -23,11 +23,17 @@ import org.testcontainers.containers.Network;
 import org.testcontainers.containers.wait.strategy.Wait;
 
 public class StrimziContainer extends GenericContainer<StrimziContainer> {
-    private static final String STRIMZI_CONTAINER = System.getProperty("itest.strimzi.container.image");
+    public static final String DEFAULT_STRIMZI_CONTAINER = "quay.io/strimzi/kafka:0.28.0-kafka-3.1.0";
+    private static final String STRIMZI_CONTAINER
+            = System.getProperty("itest.strimzi.container.image", DEFAULT_STRIMZI_CONTAINER);
     private static final int KAFKA_PORT = 9092;
 
     public StrimziContainer(Network network, String name, String zookeeperInstanceName) {
-        super(STRIMZI_CONTAINER);
+        this(network, name, STRIMZI_CONTAINER, zookeeperInstanceName);
+    }
+
+    public StrimziContainer(Network network, String name, String containerName, String zookeeperInstanceName) {
+        super(containerName);
 
         withEnv("LOG_DIR", "/tmp/logs");
         withExposedPorts(KAFKA_PORT);
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ZookeeperContainer.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ZookeeperContainer.java
index 53494fe..e259748 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ZookeeperContainer.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ZookeeperContainer.java
@@ -23,11 +23,16 @@ import org.testcontainers.containers.Network;
 import org.testcontainers.containers.wait.strategy.Wait;
 
 public class ZookeeperContainer extends GenericContainer<ZookeeperContainer> {
-    private static final String ZOOKEEPER_CONTAINER = System.getProperty("itest.zookeeper.container.image");
+    private static final String ZOOKEEPER_CONTAINER = System.getProperty("itest.zookeeper.container.image",
+            StrimziContainer.DEFAULT_STRIMZI_CONTAINER);
     private static final int ZOOKEEPER_PORT = 2181;
 
     public ZookeeperContainer(Network network, String name) {
-        super(ZOOKEEPER_CONTAINER);
+        this(network, name, ZOOKEEPER_CONTAINER);
+    }
+
+    public ZookeeperContainer(Network network, String name, String containerName) {
+        super(containerName);
 
         withEnv("LOG_DIR", "/tmp/logs");
         withExposedPorts(ZOOKEEPER_PORT);