Class OcpKafkaController
- java.lang.Object
-
- io.debezium.testing.system.tools.kafka.OcpKafkaController
-
- All Implemented Interfaces:
KafkaController
public class OcpKafkaController extends Object implements KafkaController
This class provides control over Kafka instance deployed in OpenShift- Author:
- Jakub Cechacek
-
-
Field Summary
Fields Modifier and Type Field Description private io.strimzi.api.kafka.model.Kafkakafkaprivate static org.slf4j.LoggerLOGGERprivate Stringnameprivate io.fabric8.openshift.client.OpenShiftClientocpprivate StrimziOperatorControlleroperatorControllerprivate Stringproject
-
Constructor Summary
Constructors Constructor Description OcpKafkaController(io.strimzi.api.kafka.model.Kafka kafka, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.strimzi.api.kafka.model.KafkaTopicdeployTopic(String yamlPath)Deploy kafka topic from given CRStringgetBootstrapAddress()The Bootstrap address returned by this method may not be reachable form arbitrary network.StringgetPublicBootstrapAddress()The Bootstrap address returned by this method must be reachable form arbitrary network.private io.fabric8.kubernetes.client.dsl.NonNamespaceOperation<io.strimzi.api.kafka.model.Kafka,io.strimzi.api.kafka.KafkaList,io.fabric8.kubernetes.client.dsl.Resource<io.strimzi.api.kafka.model.Kafka>>kafkaOperation()private io.fabric8.kubernetes.client.dsl.NonNamespaceOperation<io.strimzi.api.kafka.model.KafkaTopic,io.strimzi.api.kafka.KafkaTopicList,io.fabric8.kubernetes.client.dsl.Resource<io.strimzi.api.kafka.model.KafkaTopic>>topicOperation()booleanundeploy()Undeploy this Kafka clustervoidwaitForCluster()Waits for cluster to be availableprivate io.strimzi.api.kafka.model.KafkaTopicwaitForKafkaTopic(String name)Waits until topic is properly deployed.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.debezium.testing.system.tools.kafka.KafkaController
getDefaultConsumerProperties
-
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
ocp
private final io.fabric8.openshift.client.OpenShiftClient ocp
-
project
private final String project
-
name
private final String name
-
operatorController
private final StrimziOperatorController operatorController
-
kafka
private io.strimzi.api.kafka.model.Kafka kafka
-
-
Constructor Detail
-
OcpKafkaController
public OcpKafkaController(io.strimzi.api.kafka.model.Kafka kafka, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp)
-
-
Method Detail
-
getPublicBootstrapAddress
public String getPublicBootstrapAddress()
Description copied from interface:KafkaControllerThe Bootstrap address returned by this method must be reachable form arbitrary network.- Specified by:
getPublicBootstrapAddressin interfaceKafkaController- Returns:
- Publicly reachable Kafka Bootstrap Server address
-
getBootstrapAddress
public String getBootstrapAddress()
Description copied from interface:KafkaControllerThe Bootstrap address returned by this method may not be reachable form arbitrary network.- Specified by:
getBootstrapAddressin interfaceKafkaController- Returns:
- Kafka Bootstrap Server address
-
deployTopic
public io.strimzi.api.kafka.model.KafkaTopic deployTopic(String yamlPath) throws InterruptedException
Deploy kafka topic from given CR- Parameters:
yamlPath- path to yaml descript- Returns:
- created topic
- Throws:
InterruptedException
-
undeploy
public boolean undeploy()
Description copied from interface:KafkaControllerUndeploy this Kafka cluster- Specified by:
undeployin interfaceKafkaController- Returns:
- true on operation success
-
waitForCluster
public void waitForCluster() throws InterruptedExceptionDescription copied from interface:KafkaControllerWaits for cluster to be available- Specified by:
waitForClusterin interfaceKafkaController- Throws:
InterruptedException
-
waitForKafkaTopic
private io.strimzi.api.kafka.model.KafkaTopic waitForKafkaTopic(String name) throws InterruptedException
Waits until topic is properly deployed.- Parameters:
name- name of the topic- Throws:
InterruptedException- on wait errorIllegalArgumentException- when deployment doesn't use custom resources
-
topicOperation
private io.fabric8.kubernetes.client.dsl.NonNamespaceOperation<io.strimzi.api.kafka.model.KafkaTopic,io.strimzi.api.kafka.KafkaTopicList,io.fabric8.kubernetes.client.dsl.Resource<io.strimzi.api.kafka.model.KafkaTopic>> topicOperation()
-
kafkaOperation
private io.fabric8.kubernetes.client.dsl.NonNamespaceOperation<io.strimzi.api.kafka.model.Kafka,io.strimzi.api.kafka.KafkaList,io.fabric8.kubernetes.client.dsl.Resource<io.strimzi.api.kafka.model.Kafka>> kafkaOperation()
-
-