Helm chart enable you to deploy Confluent Connect and schemaRegistry services on Kubernetes.
The following table lists the configurable parameters of the Kafka Connect and schema Registry chart and their default values.
Parameter | Description | Default |
---|---|---|
KafkaBootstrapServers |
Bootstrap Servers for Kafka connect and Schema Registry if enabled | "" |
connect.replicaCount |
The number of Kafka Connect Servers. | 1 |
connect.image |
Docker Image of Confluent Kafka Connect. | confluentinc/cp-kafka-connect |
connect.imageTag |
Docker Image Tag of Confluent Kafka Connect. | 5.5.0 |
connect.imagePullPolicy |
Docker Image Tag of Confluent Kafka Connect. | IfNotPresent |
connect.servicePort |
The port on which the Kafka Connect will be available and serving requests. | 8083 |
connect.configurationOverrides |
Kafka Connect configuration overrides in the dictionary format. | {} |
connect.customEnv |
Custom environmental variables | {} |
connect.heapOptions |
The JVM Heap Options for Kafka Connect | "-Xms512M -Xmx512M" |
connect.podAnnotations |
Map of custom annotations to attach to the pod spec. | {} |
connect.health.readinessProbe |
Readiness probe configurations | { "httpGet": { "path": "/connectors", "port": "kafka-connect" } } |
connect.service.type |
Kafka-connect service type | ClusterIP |
connect.service.ports.targetPort |
Kafka-connect service port name | http |
connect.service.annotations |
Optional service annotations | {} |
connect.resources |
Pod resource requests and limits | {} |
connect.nodeSelector |
Node labels for pod assignment | {} |
connect.tolerations |
Tolerations for pod assignment | [] |
connect.antiAffinity |
Affinity for pod assignment | {} |
ingress.enabled |
If true, create an ingress resource | false |
ingress.annotations |
Optional ingress annotations | {} |
ingress.path |
Ingress path | / |
ingress.hosts |
Ingress hostnames | kafka-connect.local |
schemaRegistry.enabled |
If true, deploy Schema registery | true |
schemaRegistry.replicaCount |
The number of Schema Registry Servers. | 1 |
schemaRegistry.image |
Docker Image of Confluent Schema Registry. | confluentinc/cp-schema-registry |
schemaRegistry.imageTag |
Docker Image Tag of Confluent Schema Registry. | 5.5.0 |
schemaRegistry.imagePullPolicy |
Docker Image Tag of Confluent Schema Registry. | IfNotPresent |
schemaRegistry.configurationOverrides |
Schema Registry configuration overrides in the dictionary format. | {} |
schemaRegistry.customEnv |
Custom environmental variables | {} |
schemaRegistry.servicePort |
The port on which the Schema Registry will be available and serving requests. | 8081 |
schemaRegistry.podAnnotations |
Map of custom annotations to attach to the pod spec. | {} |
schemaRegistry.nodeSelector |
Dictionary containing key-value-pairs to match labels on nodes. When defined pods will only be scheduled on nodes, that have each of the indicated key-value pairs as labels. Further information can be found in the Kubernetes documentation | {} |
schemaRegistry.tolerations |
Array containing taint references. When defined, pods can run on nodes, which would otherwise deny scheduling. Further information can be found in the Kubernetes documentation | {} |
Specify each parameter using the --set key=value[,key=value]
argument to helm install
. For example,
To add the chart for your local client, run helm repo add:
$ helm repo add myrepo https://mahagamal.github.io/helm-kafka-connect/
"myrepo" has been added to your repositories
You can then run helm search myrepo
to see the charts.
$ helm install --name mychart --namespace <ns> myrepo/kafka-connect --set KafkaBootstrapServers=??
$ helm upgrade <ns>-<CHARTNAME> --install --namespace <ns> myrepo/kafka-connect [--version CHART-VERSION] --debug
Since Kafka Connect is intended to be run as a service, it also supports a REST API for managing connectors. By default this service runs on port 8083
. The following are the currently supported endpoints:
API | description |
---|---|
GET /connectors |
return a list of active connectors |
POST /connectors |
create a new connector; the request body should be a JSON object containing a string name field and a object config field with the connector configuration parameters |
GET /connectors/{name} |
get information about a specific connector |
GET /connectors/{name}/config |
get the configuration parameters for a specific connector |
PUT /connectors/{name}/config |
update the configuration parameters for a specific connector |
GET /connectors/{name}/tasks |
get a list of tasks currently running for a connector |
DELETE /connectors/{name} |
delete a connector, halting all tasks and deleting its configuration |