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.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.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()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.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.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()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
-