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.Kafka
     
    private static final org.slf4j.Logger
     
    private final String
     
    private final io.fabric8.openshift.client.OpenShiftClient
     
     
    private final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    OcpKafkaController(io.strimzi.api.kafka.model.Kafka kafka, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    io.strimzi.api.kafka.model.KafkaTopic
    deployTopic(String yamlPath)
    Deploy kafka topic from given CR
    The Bootstrap address returned by this method may not be reachable form arbitrary network.
    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>>
     
    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>>
     
    boolean
    Undeploy this Kafka cluster
    void
    Waits for cluster to be available
    private io.strimzi.api.kafka.model.KafkaTopic
    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 Details

    • 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 Details

    • OcpKafkaController

      public OcpKafkaController(io.strimzi.api.kafka.model.Kafka kafka, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp)
  • Method Details

    • getPublicBootstrapAddress

      public String getPublicBootstrapAddress()
      Description copied from interface: KafkaController
      The Bootstrap address returned by this method must be reachable form arbitrary network.
      Specified by:
      getPublicBootstrapAddress in interface KafkaController
      Returns:
      Publicly reachable Kafka Bootstrap Server address
    • getBootstrapAddress

      public String getBootstrapAddress()
      Description copied from interface: KafkaController
      The Bootstrap address returned by this method may not be reachable form arbitrary network.
      Specified by:
      getBootstrapAddress in interface KafkaController
      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: KafkaController
      Undeploy this Kafka cluster
      Specified by:
      undeploy in interface KafkaController
      Returns:
      true on operation success
    • waitForCluster

      public void waitForCluster() throws InterruptedException
      Description copied from interface: KafkaController
      Waits for cluster to be available
      Specified by:
      waitForCluster in interface KafkaController
      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 error
      IllegalArgumentException - 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()