Skip to content

Commit b08a232

Browse files
authored
Add support for Apache Kafka native image (#8993)
1 parent d061a03 commit b08a232

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

modules/kafka/src/main/java/org/testcontainers/kafka/KafkaContainer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@
1212
/**
1313
* Testcontainers implementation for Apache Kafka.
1414
* <p>
15-
* Supported image: {@code apache/kafka}
15+
* Supported image: {@code apache/kafka}, {@code apache/kafka-native}
1616
* <p>
1717
* Exposed ports: 9092
1818
*/
1919
public class KafkaContainer extends GenericContainer<KafkaContainer> {
2020

2121
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("apache/kafka");
2222

23+
private static final DockerImageName APACHE_KAFKA_NATIVE_IMAGE_NAME = DockerImageName.parse("apache/kafka-native");
24+
2325
private static final int KAFKA_PORT = 9092;
2426

2527
private static final String DEFAULT_INTERNAL_TOPIC_RF = "1";
@@ -34,7 +36,7 @@ public KafkaContainer(String imageName) {
3436

3537
public KafkaContainer(DockerImageName dockerImageName) {
3638
super(dockerImageName);
37-
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME);
39+
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, APACHE_KAFKA_NATIVE_IMAGE_NAME);
3840

3941
withExposedPorts(KAFKA_PORT);
4042
withEnv("CLUSTER_ID", DEFAULT_CLUSTER_ID);

modules/kafka/src/test/java/org/testcontainers/kafka/KafkaContainerTest.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
11
package org.testcontainers.kafka;
22

33
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.junit.runners.Parameterized;
46
import org.testcontainers.AbstractKafka;
57

8+
@RunWith(Parameterized.class)
69
public class KafkaContainerTest extends AbstractKafka {
710

11+
@Parameterized.Parameters(name = "{0}")
12+
public static String[] params() {
13+
return new String[] { "apache/kafka:3.7.0", "apache/kafka-native:3.8.0-rc3" };
14+
}
15+
16+
@Parameterized.Parameter
17+
public String imageName;
18+
819
@Test
920
public void testUsage() throws Exception {
10-
try (KafkaContainer kafka = new KafkaContainer("apache/kafka:3.7.0")) {
21+
try (KafkaContainer kafka = new KafkaContainer(imageName)) {
1122
kafka.start();
1223
testKafkaFunctionality(kafka.getBootstrapServers());
1324
}

0 commit comments

Comments
 (0)