Class OcpKafkaConnectController
- java.lang.Object
-
- io.debezium.testing.system.tools.kafka.OcpKafkaConnectController
-
- All Implemented Interfaces:
KafkaConnectController
public class OcpKafkaConnectController extends Object implements KafkaConnectController
This class provides control over Kafka Connect instance deployed in OpenShift- Author:
- Jakub Cechacek
-
-
Field Summary
Fields Modifier and Type Field Description private io.fabric8.openshift.api.model.RouteapiRouteprivate booleanconnectorResourcesprivate okhttp3.OkHttpClienthttpprivate HttpUtilshttpUtilsprivate io.strimzi.api.kafka.model.KafkaConnectkafkaConnectprivate static org.slf4j.LoggerLOGGERprivate static intMETRICS_PORTprivate io.fabric8.openshift.api.model.RoutemetricsRouteprivate io.fabric8.kubernetes.api.model.ServicemetricsServiceprivate Stringnameprivate io.fabric8.openshift.client.OpenShiftClientocpprivate OpenShiftUtilsocpUtilsprivate StrimziOperatorControlleroperatorControllerprivate Stringproject
-
Constructor Summary
Constructors Constructor Description OcpKafkaConnectController(io.strimzi.api.kafka.model.KafkaConnect kafkaConnect, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp, okhttp3.OkHttpClient http, boolean connectorResources)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicyallowServiceAccess()Creates network policy allowing access to ports exposed by Kafka ConnectvoiddeployConnector(ConnectorConfigBuilder config)Deploys Kafka connector with given name and configuration via RESTvoiddestroy()Crashes Kafka Connect by force deleting all pods.voiddisable()Disables Kafka Connect by scaling it to ZEROio.fabric8.openshift.api.model.RouteexposeApi()Exposes a route for kafka connect API associated with given KafkaConnect resourceio.fabric8.openshift.api.model.RouteexposeMetrics()Exposes a route for prometheus metrics for kafka connect associated with given KafkaConnect resourceokhttp3.HttpUrlgetApiURL()private ConnectorDeployergetConnectorDeployer()ConnectorMetricsReadergetMetricsReader()okhttp3.HttpUrlgetMetricsURL()voidrestore()Restores Kafka Connect cluster after a call toKafkaConnectController.disable()orKafkaConnectController.destroy()booleanundeploy()Undeploy this Kafka Connect cluster by deleted related KafkaConnect CRvoidundeployConnector(String name)Deletes Kafka connector with given namevoidwaitForCluster()Wait until KafkaConnect instance is back and ready
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
METRICS_PORT
private static final int METRICS_PORT
- See Also:
- Constant Field Values
-
ocp
private final io.fabric8.openshift.client.OpenShiftClient ocp
-
http
private final okhttp3.OkHttpClient http
-
project
private final String project
-
operatorController
private final StrimziOperatorController operatorController
-
ocpUtils
private final OpenShiftUtils ocpUtils
-
httpUtils
private final HttpUtils httpUtils
-
connectorResources
private final boolean connectorResources
-
name
private final String name
-
kafkaConnect
private io.strimzi.api.kafka.model.KafkaConnect kafkaConnect
-
apiRoute
private io.fabric8.openshift.api.model.Route apiRoute
-
metricsRoute
private io.fabric8.openshift.api.model.Route metricsRoute
-
metricsService
private io.fabric8.kubernetes.api.model.Service metricsService
-
-
Constructor Detail
-
OcpKafkaConnectController
public OcpKafkaConnectController(io.strimzi.api.kafka.model.KafkaConnect kafkaConnect, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp, okhttp3.OkHttpClient http, boolean connectorResources)
-
-
Method Detail
-
disable
public void disable()
Disables Kafka Connect by scaling it to ZERONOTICE: cluster operator needs to be disabled first!
- Specified by:
disablein interfaceKafkaConnectController
-
destroy
public void destroy()
Crashes Kafka Connect by force deleting all pods. Then it immediately scales its deployment to ZERO by callingdisable()NOTICE: cluster operator is disabled once this method is called!
- Specified by:
destroyin interfaceKafkaConnectController
-
restore
public void restore() throws InterruptedExceptionDescription copied from interface:KafkaConnectControllerRestores Kafka Connect cluster after a call toKafkaConnectController.disable()orKafkaConnectController.destroy()- Specified by:
restorein interfaceKafkaConnectController- Throws:
InterruptedException
-
waitForCluster
public void waitForCluster() throws InterruptedExceptionWait until KafkaConnect instance is back and ready- Specified by:
waitForClusterin interfaceKafkaConnectController- Throws:
InterruptedException
-
allowServiceAccess
public io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicy allowServiceAccess()
Creates network policy allowing access to ports exposed by Kafka Connect- Returns:
-
exposeApi
public io.fabric8.openshift.api.model.Route exposeApi()
Exposes a route for kafka connect API associated with given KafkaConnect resource- Returns:
Routeobject
-
exposeMetrics
public io.fabric8.openshift.api.model.Route exposeMetrics()
Exposes a route for prometheus metrics for kafka connect associated with given KafkaConnect resource- Returns:
Routeobject
-
deployConnector
public void deployConnector(ConnectorConfigBuilder config) throws IOException, InterruptedException
Deploys Kafka connector with given name and configuration via REST- Specified by:
deployConnectorin interfaceKafkaConnectController- Parameters:
config- connector config- Throws:
IOException- or request errorInterruptedException
-
getConnectorDeployer
private ConnectorDeployer getConnectorDeployer()
-
undeployConnector
public void undeployConnector(String name) throws IOException
Deletes Kafka connector with given name- Specified by:
undeployConnectorin interfaceKafkaConnectController- Parameters:
name- connector name- Throws:
IOException- on request error
-
getApiURL
public okhttp3.HttpUrl getApiURL()
- Specified by:
getApiURLin interfaceKafkaConnectController- Returns:
- URL of Connect API endpoint
-
getMetricsURL
public okhttp3.HttpUrl getMetricsURL()
- Returns:
- URL of metrics endpoint
-
undeploy
public boolean undeploy()
Undeploy this Kafka Connect cluster by deleted related KafkaConnect CR- Specified by:
undeployin interfaceKafkaConnectController- Returns:
- true if the CR was found and deleted
-
getMetricsReader
public ConnectorMetricsReader getMetricsReader()
- Specified by:
getMetricsReaderin interfaceKafkaConnectController- Returns:
- metrics reader for this kafka connect
-
-