Class OcpKafkaConnectController
java.lang.Object
io.debezium.testing.system.tools.kafka.OcpKafkaConnectController
- All Implemented Interfaces:
KafkaConnectController
This class provides control over Kafka Connect instance deployed in OpenShift
- Author:
- Jakub Cechacek
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate io.fabric8.openshift.api.model.Routeprivate final okhttp3.OkHttpClientprivate final HttpUtilsprivate io.strimzi.api.kafka.model.connect.KafkaConnectprivate static final org.slf4j.Loggerprivate static final intprivate io.fabric8.openshift.api.model.Routeprivate io.fabric8.kubernetes.api.model.Serviceprivate final Stringprivate final io.fabric8.openshift.client.OpenShiftClientprivate final OpenShiftUtilsprivate final StrimziOperatorControllerprivate final String -
Constructor Summary
ConstructorsConstructorDescriptionOcpKafkaConnectController(io.strimzi.api.kafka.model.connect.KafkaConnect kafkaConnect, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp, okhttp3.OkHttpClient http) -
Method Summary
Modifier and TypeMethodDescriptionio.fabric8.kubernetes.api.model.networking.v1.NetworkPolicyCreates network policy allowing access to ports exposed by Kafka ConnectvoidDeploys Kafka connector with given name and configuration via RESTvoiddestroy()TODO: rewrite Crashes Kafka Connect by force deleting all pods.voiddisable()Disables Kafka Connect by scaling it to ZEROio.fabric8.openshift.api.model.RouteExposes a route for kafka connect API associated with given KafkaConnect resourceio.fabric8.openshift.api.model.RouteExposes a route for prometheus metrics for kafka connect associated with given KafkaConnect resourceokhttp3.HttpUrlprivate ConnectorDeployerokhttp3.HttpUrlprivate booleanvoidrestore()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 namevoidWait until KafkaConnect instance is back and ready
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
METRICS_PORT
private static final int METRICS_PORT- See Also:
-
ocp
private final io.fabric8.openshift.client.OpenShiftClient ocp -
http
private final okhttp3.OkHttpClient http -
project
-
operatorController
-
ocpUtils
-
httpUtils
-
name
-
kafkaConnect
private io.strimzi.api.kafka.model.connect.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 Details
-
OcpKafkaConnectController
public OcpKafkaConnectController(io.strimzi.api.kafka.model.connect.KafkaConnect kafkaConnect, StrimziOperatorController operatorController, io.fabric8.openshift.client.OpenShiftClient ocp, okhttp3.OkHttpClient http)
-
-
Method Details
-
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()TODO: rewrite 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
Description copied from interface:KafkaConnectControllerRestores Kafka Connect cluster after a call toKafkaConnectController.disable()orKafkaConnectController.destroy()- Specified by:
restorein interfaceKafkaConnectController- Throws:
InterruptedException
-
waitForCluster
Wait 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
Deploys Kafka connector with given name and configuration via REST- Specified by:
deployConnectorin interfaceKafkaConnectController- Parameters:
config- connector config- Throws:
IOException- or request errorInterruptedException
-
hasConnectorResourcesEnabled
private boolean hasConnectorResourcesEnabled() -
getConnectorDeployer
-
undeployConnector
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
- Specified by:
getMetricsReaderin interfaceKafkaConnectController- Returns:
- metrics reader for this kafka connect
-