From dfb6eb2a5df5d94ff1211df3cfa0437276f140d9 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:39:05 -0700 Subject: [PATCH 01/12] doc for kafka binding --- docs/eventing/samples/kafka/README.md | 39 +-- docs/eventing/samples/kafka/binding/README.md | 251 ++++++++++++++++++ .../samples/kafka/binding/event-binding.yaml | 63 +++++ .../samples/kafka/binding/event-display.yaml | 23 ++ .../samples/kafka/binding/event-source.yaml | 78 ++++++ docs/eventing/samples/kafka/binding/index.md | 8 + 6 files changed, 446 insertions(+), 16 deletions(-) create mode 100644 docs/eventing/samples/kafka/binding/README.md create mode 100644 docs/eventing/samples/kafka/binding/event-binding.yaml create mode 100644 docs/eventing/samples/kafka/binding/event-display.yaml create mode 100644 docs/eventing/samples/kafka/binding/event-source.yaml create mode 100644 docs/eventing/samples/kafka/binding/index.md diff --git a/docs/eventing/samples/kafka/README.md b/docs/eventing/samples/kafka/README.md index 087883ac05f..8f84ff7cf3f 100644 --- a/docs/eventing/samples/kafka/README.md +++ b/docs/eventing/samples/kafka/README.md @@ -1,4 +1,5 @@ -The following examples will help you understand how to use the different Apache Kafka components for Knative. +The following examples will help you understand how to use the different Apache +Kafka components for Knative. ## Prerequisites @@ -11,7 +12,8 @@ All examples require: ### Setting up Apache Kafka -If you want to run the Apache Kafka cluster on Kubernetes, the simplest option is to install it by using [Strimzi](https://strimzi.io). +If you want to run the Apache Kafka cluster on Kubernetes, the simplest option +is to install it by using [Strimzi](https://strimzi.io). 1. Create a namespace for your Apache Kafka installation, like `kafka`: ```shell @@ -56,25 +58,28 @@ If you want to run the Apache Kafka cluster on Kubernetes, the simplest option i $ kubectl apply -n kafka -f kafka.yaml ``` -This will install a small, non-production, cluster of Apache Kafka. To verify your installation, -check if the pods for Strimzi are all up, in the `kafka` namespace: +This will install a small, non-production, cluster of Apache Kafka. To verify +your installation, check if the pods for Strimzi are all up, in the `kafka` +namespace: - ```shell - $ kubectl get pods -n kafka - NAME READY STATUS RESTARTS AGE - my-cluster-entity-operator-65995cf856-ld2zp 3/3 Running 0 102s - my-cluster-kafka-0 2/2 Running 0 2m8s - my-cluster-zookeeper-0 2/2 Running 0 2m39s - my-cluster-zookeeper-1 2/2 Running 0 2m49s - my-cluster-zookeeper-2 2/2 Running 0 2m59s - strimzi-cluster-operator-77555d4b69-sbrt4 1/1 Running 0 3m14s - ``` +```shell +$ kubectl get pods -n kafka +NAME READY STATUS RESTARTS AGE +my-cluster-entity-operator-65995cf856-ld2zp 3/3 Running 0 102s +my-cluster-kafka-0 2/2 Running 0 2m8s +my-cluster-zookeeper-0 2/2 Running 0 2m39s +my-cluster-zookeeper-1 2/2 Running 0 2m49s +my-cluster-zookeeper-2 2/2 Running 0 2m59s +strimzi-cluster-operator-77555d4b69-sbrt4 1/1 Running 0 3m14s +``` > NOTE: For production ready installs check [Strimzi](https://strimzi.io). ### Installation script -If you want to install the latest version of Strimzi, in just one step, we have a [script](./kafka_setup.sh) for your convenience, which does exactly the same steps that are listed above: +If you want to install the latest version of Strimzi, in just one step, we have +a [script](./kafka_setup.sh) for your convenience, which does exactly the same +steps that are listed above: ```shell $ ./kafka_setup.sh @@ -82,7 +87,9 @@ $ ./kafka_setup.sh ## Examples of Apache Kafka and Knative -A number of different examples, showing the `KafkaSource` and the `KafkaChannel` can be found here: +A number of different examples, showing the `KafkaSource`, `KafkaChannel` and +`KafkaBinding` can be found here: - [`KafkaSource` to `Service`](./source/README.md) - [`KafkaChannel` and Broker](./channel/README.md) +- [`KafkaBinding`](./binding/README.md) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md new file mode 100644 index 00000000000..1e8007c8fcd --- /dev/null +++ b/docs/eventing/samples/kafka/binding/README.md @@ -0,0 +1,251 @@ +KafkaBinding is responsible for injecting Kafka bootstrap connection information +into a Kubernetes resource that embed a PodSpec (as `spec.template.spec`). This +enables easy bootstrapping of a Kafka client. + +## Create a Job that uses KafkaBinding + +In the below example a Kubernetes Job will be using the KafkaBinding to produce +messages on a Kafka Topic, which will be recieved by the Event Display service +via Kafka Source + +### Prerequisites + +You must ensure that you meet the +[prerequisites listed in the Apache Kafka overview](../README.md). + +### Creating a `KafkaSource` source CRD + +1. Install the `KafkaSource` sub-component to your Knative cluster: + + ``` + kubectl apply -f https://storage.googleapis.com/knative-releases/eventing-contrib/latest/kafka-source.yaml + + ``` + +1. Check that the `kafka-controller-manager-0` pod is running. + ``` + kubectl get pods --namespace knative-sources + NAME READY STATUS RESTARTS AGE + kafka-controller-manager-0 1/1 Running 0 42m + ``` + +### Create the Event Display service + +1. Deploy the Event Display Service: + + ```yaml + apiVersion: serving.knative.dev/v1 + kind: Service + metadata: + name: event-display + spec: + template: + spec: + containers: + - image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display + ``` + + ``` + $ kubectl apply --filename event-display.yaml + ... + service.serving.knative.dev/event-display created + ``` + +Alernatively, you can create the knative service using the `kn` cli like below + +``` +kn service create event-display --image=gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display +``` + +1. Ensure that the Service pod is running. The pod name will be prefixed with + `event-display`. + ``` + $ kubectl get pods + NAME READY STATUS RESTARTS AGE + event-display-00001-deployment-5d5df6c7-gv2j4 2/2 Running 0 72s + ... + ``` + +### Apache Kafka Event Source + +1. Modify `event-source.yaml` accordingly with bootstrap servers, topics, + etc...: + + ```yaml + apiVersion: sources.knative.dev/v1alpha1 + kind: KafkaSource + metadata: + name: kafka-source + spec: + consumerGroup: knative-group + bootstrapServers: + - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + topics: + - logs + sink: + ref: + apiVersion: serving.knative.dev/v1 + kind: Service + name: event-display + ``` + +1. Deploy the event source. + ``` + $ kubectl apply -f event-source.yaml + ... + kafkasource.sources.knative.dev/kafka-source created + ``` +1. Check that the event source pod is running. The pod name will be prefixed + with `kafka-source`. + ``` + $ kubectl get pods + NAME READY STATUS RESTARTS AGE + kafka-source-xlnhq-5544766765-dnl5s 1/1 Running 0 40m + ``` + +### Kafka Binding Resource + +Create the KafkaBinding that will inject kafka bootstrap information into select +`Jobs`: + +1. Modify `kafka-binding.yaml` accordingly with bootstrap servers etc...: + + ```yaml + apiVersion: bindings.knative.dev/v1alpha1 + kind: KafkaBinding + metadata: + name: kafka-binding-test + spec: + subject: + apiVersion: batch/v1 + kind: Job + selector: + matchLabels: + kafka.topic: "logs" + bootstrapServers: + - my-cluster-kafka-bootstrap.kafka:9092 + ``` + +In this case, we will bind any `Job` with the labels `kafka.topic: "logs"`. + +### Create Kubernetes Job + +1. Now we will use the kafka-publisher container to send events to kafka topic + when the Job runs. You can find the source of he kafka-publisher + [here](https://github.com/knative/eventing-contrib/blob/master/test/test_images/kafka-publisher/main.go) + + ```yaml + apiVersion: batch/v1 + kind: Job + metadata: + labels: + kafka.topic: "logs" + name: kafka-publisher-job + namespace: test-alpha + spec: + backoffLimit: 1 + completions: 1 + parallelism: 1 + template: + metadata: + annotations: + sidecar.istio.io/inject: "false" + spec: + restartPolicy: Never + containers: + - image: docker.io/murugappans/kafka-publisher-1974f83e2ff7c8994707b5e8731528e8@sha256:fd79490514053c643617dc72a43097251fed139c966fd5d131134a0e424882de + env: + - name: KAFKA_TOPIC + value: "logs" + - name: KAFKA_KEY + value: "0" + - name: KAFKA_HEADERS + value: "content-type:application/json" + - name: KAFKA_VALUE + value: '{"msg":"This is a test!"}' + name: kafka-publisher + ``` + +### Verify + +1. Ensure the Event Display received the message sent to it by the Event Source. + + ``` + $ kubectl logs --selector='serving.knative.dev/service=event-display' -c user-container + + ☁️ cloudevents.Event + Validation: valid + Context Attributes, + specversion: 1.0 + type: dev.knative.kafka.event + source: /apis/v1/namespaces/default/kafkasources/kafka-source#logs + subject: partition:0#1 + id: partition:0/offset:1 + time: 2020-05-17T19:45:02.7Z + datacontenttype: application/json + Extensions, + kafkaheadercontenttype: application/json + key: 0 + traceparent: 00-f383b779f512358b24ffbf6556a6d6da-cacdbe78ef9b5ad3-00 + Data, + { + "msg": "This is a test!" + } + + ``` + +## Connecting to a TLS enabled Kafka broker + +The KafkaBinding supports TLS and SASL authentication methods. For injecting TLS +authentication, please have the below files + +- CA Certificate +- Client Certificate and Key + +These files are expected to be in pem format, if it is in other format like jks +, please convert to pem. + +1. Create the certificate files as secrets in the namespace where Kafkabinding + is going to be set up + + ``` + $ kubectl create secret generic cacert --from-file=caroot.pem + secret/cacert created + + $ kubectl create secret tls kafka-secret --cert=certificate.pem --key=key.pem + secret/key created + + ``` + +2. Apply the kafkabinding-tls.yaml, change bootstrapServers and topics + accordingly. + ```yaml + apiVersion: sources.knative.dev/v1alpha1 + kind: KafkaBinding + metadata: + name: kafka-source-with-tls + spec: + subject: + apiVersion: batch/v1 + kind: Job + selector: + matchLabels: + kafka.topic: "logs" + net: + tls: + enable: true + cert: + secretKeyRef: + key: tls.crt + name: kafka-secret + key: + secretKeyRef: + key: tls.key + name: kafka-secret + caCert: + secretKeyRef: + key: caroot.pem + name: cacert + consumerGroup: knative-group + bootstrapServers: my-secure-kafka-bootstrap.kafka:443 + ``` diff --git a/docs/eventing/samples/kafka/binding/event-binding.yaml b/docs/eventing/samples/kafka/binding/event-binding.yaml new file mode 100644 index 00000000000..d5c90a87f26 --- /dev/null +++ b/docs/eventing/samples/kafka/binding/event-binding.yaml @@ -0,0 +1,63 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Replace the following before applying this file: +# KAFKA_CONSUMER_GROUP_NAME: Name of Kafka consumer group +# KAFKA_BOOTSTRAP_SERVERS: Array of bootstrap servers +# KAFKA_SASL_ENABLE: Truthy value to enable/disable SASL, disabled by default (optional) +# KAFKA_SASL_USER_SECRET_NAME: Name of secret containing SASL user (optional) +# KAFKA_SASL_USER_SECRET_KEY: Key within secret containing SASL user (optional) +# KAFKA_SASL_PASSWORD_SECRET_NAME: Name of secret containing SASL password (optional) +# KAFKA_SASL_PASSWORD_SECRET_KEY: Key within secret containing SASL password (optional) +# KAFKA_TLS_ENABLE: Truthy to enable TLS, disabled by default (optional) +# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting wtih TLS (optional) +# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting wtih TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting wtih TLS (optional) + +apiVersion: sources.knative.dev/v1alpha1 +kind: KafkaBinding +metadata: + name: kafka-binding +spec: + consumerGroup: KAFKA_CONSUMER_GROUP_NAME + bootstrapServers: + - KAFKA_BOOTSTRAP_SERVERS + net: + sasl: + enable: KAFKA_SASL_ENABLE + user: + secretKeyRef: + name: KAFKA_SASL_USER_SECRET_NAME + key: KAFKA_SASL_USER_SECRET_KEY + password: + secretKeyRef: + name: KAFKA_SASL_PASSWORD_SECRET_NAME + key: KAFKA_SASL_PASSWORD_SECRET_KEY + tls: + enable: KAFKA_TLS_ENABLE + cert: + secretKeyRef: + name: KAFKA_TLS_CERT_SECRET_NAME + key: KAFKA_TLS_CERT_SECRET_KEY + key: + secretKeyRef: + name: KAFKA_TLS_KEY_SECRET_NAME + key: KAFKA_TLS_KEY_SECRET_KEY + caCert: + secretKeyRef: + name: KAFKA_TLS_CA_CERT_SECRET_NAME + key: KAFKA_TLS_CA_CERT_SECRET_KEY \ No newline at end of file diff --git a/docs/eventing/samples/kafka/binding/event-display.yaml b/docs/eventing/samples/kafka/binding/event-display.yaml new file mode 100644 index 00000000000..5fc41972fea --- /dev/null +++ b/docs/eventing/samples/kafka/binding/event-display.yaml @@ -0,0 +1,23 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + apiVersion: serving.knative.dev/v1 + kind: Service + metadata: + name: event-display + spec: + template: + spec: + containers: + - image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display \ No newline at end of file diff --git a/docs/eventing/samples/kafka/binding/event-source.yaml b/docs/eventing/samples/kafka/binding/event-source.yaml new file mode 100644 index 00000000000..63410f70e5e --- /dev/null +++ b/docs/eventing/samples/kafka/binding/event-source.yaml @@ -0,0 +1,78 @@ +# Copyright 2020 The Knative Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Replace the following before applying this file: +# KAFKA_CONSUMER_GROUP_NAME: Name of Kafka consumer group +# KAFKA_BOOTSTRAP_SERVERS: Array of bootstrap servers +# KAFKA_TOPICS: Array of topics +# KAFKA_SASL_ENABLE: Truthy value to enable/disable SASL, disabled by default (optional) +# KAFKA_SASL_USER_SECRET_NAME: Name of secret containing SASL user (optional) +# KAFKA_SASL_USER_SECRET_KEY: Key within secret containing SASL user (optional) +# KAFKA_SASL_PASSWORD_SECRET_NAME: Name of secret containing SASL password (optional) +# KAFKA_SASL_PASSWORD_SECRET_KEY: Key within secret containing SASL password (optional) +# KAFKA_TLS_ENABLE: Truthy to enable TLS, disabled by default (optional) +# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting wtih TLS (optional) +# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting wtih TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting wtih TLS (optional) + +apiVersion: sources.knative.dev/v1alpha1 +kind: KafkaSource +metadata: + name: kafka-source +spec: + consumerGroup: KAFKA_CONSUMER_GROUP_NAME + bootstrapServers: + - KAFKA_BOOTSTRAP_SERVERS + topics: + - KAFKA_TOPICS + net: + sasl: + enable: KAFKA_SASL_ENABLE + user: + secretKeyRef: + name: KAFKA_SASL_USER_SECRET_NAME + key: KAFKA_SASL_USER_SECRET_KEY + password: + secretKeyRef: + name: KAFKA_SASL_PASSWORD_SECRET_NAME + key: KAFKA_SASL_PASSWORD_SECRET_KEY + tls: + enable: KAFKA_TLS_ENABLE + cert: + secretKeyRef: + name: KAFKA_TLS_CERT_SECRET_NAME + key: KAFKA_TLS_CERT_SECRET_KEY + key: + secretKeyRef: + name: KAFKA_TLS_KEY_SECRET_NAME + key: KAFKA_TLS_KEY_SECRET_KEY + caCert: + secretKeyRef: + name: KAFKA_TLS_CA_CERT_SECRET_NAME + key: KAFKA_TLS_CA_CERT_SECRET_KEY + resources: + limits: + cpu: 250m + memory: 512Mi + requests: + cpu: 250m + memory: 512Mi + sink: + ref: + apiVersion: serving.knative.dev/v1 + kind: Service + name: event-display diff --git a/docs/eventing/samples/kafka/binding/index.md b/docs/eventing/samples/kafka/binding/index.md new file mode 100644 index 00000000000..b84b2e5356f --- /dev/null +++ b/docs/eventing/samples/kafka/binding/index.md @@ -0,0 +1,8 @@ +--- +title: "Apache Kafka Binding Example" +linkTitle: "Binding Example" +weight: 20 +type: "docs" +--- + +{{% readfile file="README.md" %}} From b0054e911afb089127d9e7ad0360c6fb301fa6f7 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:43:03 -0700 Subject: [PATCH 02/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index 1e8007c8fcd..c1865fb4d82 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -10,8 +10,9 @@ via Kafka Source ### Prerequisites -You must ensure that you meet the +1. You must ensure that you meet the [prerequisites listed in the Apache Kafka overview](../README.md). +2. This feature is available from Knative Eventing 0.15+ ### Creating a `KafkaSource` source CRD @@ -53,9 +54,9 @@ You must ensure that you meet the Alernatively, you can create the knative service using the `kn` cli like below -``` -kn service create event-display --image=gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display -``` + ``` + kn service create event-display --image=gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display + ``` 1. Ensure that the Service pod is running. The pod name will be prefixed with `event-display`. From b120f93ca4f8e2eda06afca04772ca487eb7f0d7 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:44:41 -0700 Subject: [PATCH 03/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index c1865fb4d82..da3dc7646b0 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -11,7 +11,7 @@ via Kafka Source ### Prerequisites 1. You must ensure that you meet the -[prerequisites listed in the Apache Kafka overview](../README.md). + [prerequisites listed in the Apache Kafka overview](../README.md). 2. This feature is available from Knative Eventing 0.15+ ### Creating a `KafkaSource` source CRD @@ -32,7 +32,7 @@ via Kafka Source ### Create the Event Display service -1. Deploy the Event Display Service: +1. Deploy the Event Display Service via kubectl: ```yaml apiVersion: serving.knative.dev/v1 @@ -52,7 +52,10 @@ via Kafka Source service.serving.knative.dev/event-display created ``` -Alernatively, you can create the knative service using the `kn` cli like below +1. Deploy the Event Display Service via kn cli: + + Alernatively, you can create the knative service using the `kn` cli like + below ``` kn service create event-display --image=gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display From 1e2df5d626fb9395d615541ffb8f81c4f6f0bffe Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:45:52 -0700 Subject: [PATCH 04/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index da3dc7646b0..8d9930d0ad3 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -52,7 +52,7 @@ via Kafka Source service.serving.knative.dev/event-display created ``` -1. Deploy the Event Display Service via kn cli: +1. (Optional) Deploy the Event Display Service via kn cli: Alernatively, you can create the knative service using the `kn` cli like below From e80ec58c94d6dce57a2cb8f04c86a214577e88b7 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:57:12 -0700 Subject: [PATCH 05/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index 8d9930d0ad3..59f11835b30 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -5,7 +5,7 @@ enables easy bootstrapping of a Kafka client. ## Create a Job that uses KafkaBinding In the below example a Kubernetes Job will be using the KafkaBinding to produce -messages on a Kafka Topic, which will be recieved by the Event Display service +messages on a Kafka Topic, which will be received by the Event Display service via Kafka Source ### Prerequisites From 4da276f1344850c404b254ca2e7db09980afd235 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 17 May 2020 17:58:49 -0700 Subject: [PATCH 06/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/event-binding.yaml | 2 +- docs/eventing/samples/kafka/binding/event-display.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/eventing/samples/kafka/binding/event-binding.yaml b/docs/eventing/samples/kafka/binding/event-binding.yaml index d5c90a87f26..3b27f37f10d 100644 --- a/docs/eventing/samples/kafka/binding/event-binding.yaml +++ b/docs/eventing/samples/kafka/binding/event-binding.yaml @@ -60,4 +60,4 @@ spec: caCert: secretKeyRef: name: KAFKA_TLS_CA_CERT_SECRET_NAME - key: KAFKA_TLS_CA_CERT_SECRET_KEY \ No newline at end of file + key: KAFKA_TLS_CA_CERT_SECRET_KEY diff --git a/docs/eventing/samples/kafka/binding/event-display.yaml b/docs/eventing/samples/kafka/binding/event-display.yaml index 5fc41972fea..6facf6717a2 100644 --- a/docs/eventing/samples/kafka/binding/event-display.yaml +++ b/docs/eventing/samples/kafka/binding/event-display.yaml @@ -20,4 +20,4 @@ template: spec: containers: - - image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display \ No newline at end of file + - image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display From 5d4b7d06578cbbd500a0c930269069c247beb111 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Mon, 18 May 2020 09:41:44 -0700 Subject: [PATCH 07/12] doc for kafka binding --- docs/eventing/samples/kafka/binding/README.md | 21 +++++++++++++------ .../samples/kafka/binding/event-binding.yaml | 12 +++++------ .../samples/kafka/binding/event-source.yaml | 12 +++++------ docs/eventing/samples/kafka/source/README.md | 12 +++++++---- .../samples/kafka/source/event-source.yaml | 12 +++++------ 5 files changed, 41 insertions(+), 28 deletions(-) diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index 59f11835b30..6d9b7b5ccdf 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -32,6 +32,11 @@ via Kafka Source ### Create the Event Display service +1. Source code for Event Display service + + Get the source code of Event Display container image from + [here](https://github.com/knative/eventing-contrib/blob/master/cmd/event_display/main.go) + 1. Deploy the Event Display Service via kubectl: ```yaml @@ -134,10 +139,14 @@ In this case, we will bind any `Job` with the labels `kafka.topic: "logs"`. ### Create Kubernetes Job -1. Now we will use the kafka-publisher container to send events to kafka topic - when the Job runs. You can find the source of he kafka-publisher +1. Source code for kafka-publisher service + + Get the source code of kafka-publisher container image from [here](https://github.com/knative/eventing-contrib/blob/master/test/test_images/kafka-publisher/main.go) +1. Now we will use the kafka-publisher container to send events to kafka topic + when the Job runs. + ```yaml apiVersion: batch/v1 kind: Job @@ -209,7 +218,7 @@ authentication, please have the below files These files are expected to be in pem format, if it is in other format like jks , please convert to pem. -1. Create the certificate files as secrets in the namespace where Kafkabinding +1. Create the certificate files as secrets in the namespace where KafkaBinding is going to be set up ``` @@ -221,8 +230,7 @@ These files are expected to be in pem format, if it is in other format like jks ``` -2. Apply the kafkabinding-tls.yaml, change bootstrapServers and topics - accordingly. +2. Apply the kafkabinding-tls.yaml, change bootstrapServers accordingly. ```yaml apiVersion: sources.knative.dev/v1alpha1 kind: KafkaBinding @@ -251,5 +259,6 @@ These files are expected to be in pem format, if it is in other format like jks key: caroot.pem name: cacert consumerGroup: knative-group - bootstrapServers: my-secure-kafka-bootstrap.kafka:443 + bootstrapServers: + - my-secure-kafka-bootstrap.kafka:443 ``` diff --git a/docs/eventing/samples/kafka/binding/event-binding.yaml b/docs/eventing/samples/kafka/binding/event-binding.yaml index 3b27f37f10d..5d624e5c8b8 100644 --- a/docs/eventing/samples/kafka/binding/event-binding.yaml +++ b/docs/eventing/samples/kafka/binding/event-binding.yaml @@ -21,12 +21,12 @@ # KAFKA_SASL_PASSWORD_SECRET_NAME: Name of secret containing SASL password (optional) # KAFKA_SASL_PASSWORD_SECRET_KEY: Key within secret containing SASL password (optional) # KAFKA_TLS_ENABLE: Truthy to enable TLS, disabled by default (optional) -# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting with TLS (optional) apiVersion: sources.knative.dev/v1alpha1 kind: KafkaBinding diff --git a/docs/eventing/samples/kafka/binding/event-source.yaml b/docs/eventing/samples/kafka/binding/event-source.yaml index 63410f70e5e..2a6a844f095 100644 --- a/docs/eventing/samples/kafka/binding/event-source.yaml +++ b/docs/eventing/samples/kafka/binding/event-source.yaml @@ -22,12 +22,12 @@ # KAFKA_SASL_PASSWORD_SECRET_NAME: Name of secret containing SASL password (optional) # KAFKA_SASL_PASSWORD_SECRET_KEY: Key within secret containing SASL password (optional) # KAFKA_TLS_ENABLE: Truthy to enable TLS, disabled by default (optional) -# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting with TLS (optional) apiVersion: sources.knative.dev/v1alpha1 kind: KafkaSource diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index 703a9ceec9d..6acdbe702ef 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -124,8 +124,10 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over name: kafka-source spec: consumerGroup: knative-group - bootstrapServers: my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace - topics: knative-demo-topic + bootstrapServers: + - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + topics: + - knative-demo-topic sink: ref: apiVersion: serving.knative.dev/v1 @@ -259,8 +261,10 @@ metadata: kafkasources.sources.knative.dev/key-type: int spec: consumerGroup: knative-group - bootstrapServers: my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace - topics: knative-demo-topic + bootstrapServers: + - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + topics: + - knative-demo-topic sink: ref: apiVersion: serving.knative.dev/v1 diff --git a/docs/eventing/samples/kafka/source/event-source.yaml b/docs/eventing/samples/kafka/source/event-source.yaml index 249910155e6..58a1d1d085d 100644 --- a/docs/eventing/samples/kafka/source/event-source.yaml +++ b/docs/eventing/samples/kafka/source/event-source.yaml @@ -22,12 +22,12 @@ # KAFKA_SASL_PASSWORD_SECRET_NAME: Name of secret containing SASL password (optional) # KAFKA_SASL_PASSWORD_SECRET_KEY: Key within secret containing SASL password (optional) # KAFKA_TLS_ENABLE: Truthy to enable TLS, disabled by default (optional) -# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting wtih TLS (optional) -# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting wtih TLS (optional) +# KAFKA_TLS_CERT_SECRET_NAME: Name of secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_CERT_SECRET_KEY: Key within secret containing client cert to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_NAME: Name of secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_KEY_SECRET_KEY: Key within secret containing client key to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_NAME: Name of secret containing server CA cert to use when connecting with TLS (optional) +# KAFKA_TLS_CA_CERT_SECRET_KEY: Key within secret containing server CA cert to use when connecting with TLS (optional) apiVersion: sources.knative.dev/v1alpha1 kind: KafkaSource From 58675324e2981fb4838f734d310086990d00c69c Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Mon, 18 May 2020 09:44:05 -0700 Subject: [PATCH 08/12] doc for kafka binding --- docs/eventing/samples/kafka/source/README.md | 48 +++++++++----------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index 6acdbe702ef..31f8a0c1998 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -1,8 +1,10 @@ -Tutorial on how to build and deploy a `KafkaSource` [Eventing source](../../../sources/README.md) using a Knative Serving `Service`. +Tutorial on how to build and deploy a `KafkaSource` +[Eventing source](../../../sources/README.md) using a Knative Serving `Service`. ## Prerequisites -You must ensure that you meet the [prerequisites listed in the Apache Kafka overview](../README.md). +You must ensure that you meet the +[prerequisites listed in the Apache Kafka overview](../README.md). ## Creating a `KafkaSource` source CRD @@ -95,7 +97,7 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display ``` -1. Deploy the Event Display Service +3. Deploy the Event Display Service ``` $ kubectl apply --filename event-display.yaml @@ -103,7 +105,7 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over service.serving.knative.dev/event-display created ``` -1. Ensure that the Service pod is running. The pod name will be prefixed with +4. Ensure that the Service pod is running. The pod name will be prefixed with `event-display`. ``` $ kubectl get pods @@ -124,10 +126,10 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over name: kafka-source spec: consumerGroup: knative-group - bootstrapServers: - - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace - topics: - - knative-demo-topic + bootstrapServers: + - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + topics: + - knative-demo-topic sink: ref: apiVersion: serving.knative.dev/v1 @@ -181,22 +183,12 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over $ kubectl logs --selector='serving.knative.dev/service=event-display' -c user-container ``` -☁️ cloudevents.Event -Validation: valid -Context Attributes, - specversion: 1.0 - type: dev.knative.kafka.event - source: /apis/v1/namespaces/default/kafkasources/kafka-source#my-topic - subject: partition:0#564 - id: partition:0/offset:564 - time: 2020-02-10T18:10:23.861866615Z - datacontenttype: application/json -Extensions, - key: -Data, - { - "msg": "This is a test!" - } +☁️ cloudevents.Event Validation: valid Context Attributes, specversion: 1.0 +type: dev.knative.kafka.event source: +/apis/v1/namespaces/default/kafkasources/kafka-source#my-topic subject: +partition:0#564 id: partition:0/offset:564 time: 2020-02-10T18:10:23.861866615Z +datacontenttype: application/json Extensions, key: Data, { "msg": "This is a +test!" } ``` @@ -219,7 +211,8 @@ Data, 3. Remove the Apache Kafka Event Controller ``` -\$ kubectl delete -f https://storage.googleapis.com/knative-releases/eventing-contrib/latest/kafka-source.yaml +\$ kubectl delete -f +https://storage.googleapis.com/knative-releases/eventing-contrib/latest/kafka-source.yaml serviceaccount "kafka-controller-manager" deleted clusterrole.rbac.authorization.k8s.io "eventing-sources-kafka-controller" deleted clusterrolebinding.rbac.authorization.k8s.io @@ -261,9 +254,9 @@ metadata: kafkasources.sources.knative.dev/key-type: int spec: consumerGroup: knative-group - bootstrapServers: + bootstrapServers: - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace - topics: + topics: - knative-demo-topic sink: ref: @@ -271,3 +264,4 @@ spec: kind: Service name: event-display ``` +```` From cfa5b3c27d9adf21cadcdb599020f8b8e1802b99 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Mon, 18 May 2020 09:48:44 -0700 Subject: [PATCH 09/12] doc for kafka binding --- docs/eventing/samples/kafka/source/README.md | 40 +++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index 31f8a0c1998..97d722aa748 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -1,10 +1,8 @@ -Tutorial on how to build and deploy a `KafkaSource` -[Eventing source](../../../sources/README.md) using a Knative Serving `Service`. +Tutorial on how to build and deploy a `KafkaSource` [Eventing source](../../../sources/README.md) using a Knative Serving `Service`. ## Prerequisites -You must ensure that you meet the -[prerequisites listed in the Apache Kafka overview](../README.md). +You must ensure that you meet the [prerequisites listed in the Apache Kafka overview](../README.md). ## Creating a `KafkaSource` source CRD @@ -97,7 +95,7 @@ You must ensure that you meet the image: gcr.io/knative-releases/github.com/knative/eventing-contrib/cmd/event_display ``` -3. Deploy the Event Display Service +1. Deploy the Event Display Service ``` $ kubectl apply --filename event-display.yaml @@ -105,7 +103,7 @@ You must ensure that you meet the service.serving.knative.dev/event-display created ``` -4. Ensure that the Service pod is running. The pod name will be prefixed with +1. Ensure that the Service pod is running. The pod name will be prefixed with `event-display`. ``` $ kubectl get pods @@ -127,9 +125,9 @@ You must ensure that you meet the spec: consumerGroup: knative-group bootstrapServers: - - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace topics: - - knative-demo-topic + - knative-demo-topic sink: ref: apiVersion: serving.knative.dev/v1 @@ -183,12 +181,22 @@ You must ensure that you meet the $ kubectl logs --selector='serving.knative.dev/service=event-display' -c user-container ``` -☁️ cloudevents.Event Validation: valid Context Attributes, specversion: 1.0 -type: dev.knative.kafka.event source: -/apis/v1/namespaces/default/kafkasources/kafka-source#my-topic subject: -partition:0#564 id: partition:0/offset:564 time: 2020-02-10T18:10:23.861866615Z -datacontenttype: application/json Extensions, key: Data, { "msg": "This is a -test!" } +☁️ cloudevents.Event +Validation: valid +Context Attributes, + specversion: 1.0 + type: dev.knative.kafka.event + source: /apis/v1/namespaces/default/kafkasources/kafka-source#my-topic + subject: partition:0#564 + id: partition:0/offset:564 + time: 2020-02-10T18:10:23.861866615Z + datacontenttype: application/json +Extensions, + key: +Data, + { + "msg": "This is a test!" + } ``` @@ -211,8 +219,7 @@ test!" } 3. Remove the Apache Kafka Event Controller ``` -\$ kubectl delete -f -https://storage.googleapis.com/knative-releases/eventing-contrib/latest/kafka-source.yaml +\$ kubectl delete -f https://storage.googleapis.com/knative-releases/eventing-contrib/latest/kafka-source.yaml serviceaccount "kafka-controller-manager" deleted clusterrole.rbac.authorization.k8s.io "eventing-sources-kafka-controller" deleted clusterrolebinding.rbac.authorization.k8s.io @@ -264,4 +271,3 @@ spec: kind: Service name: event-display ``` -```` From f923b6ec78270899874a1889dabf8ac9f28928e5 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Mon, 18 May 2020 16:08:28 -0700 Subject: [PATCH 10/12] kafka binding doc --- docs/eventing/samples/kafka/README.md | 2 +- docs/eventing/samples/kafka/binding/README.md | 4 ++-- docs/eventing/samples/kafka/source/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/eventing/samples/kafka/README.md b/docs/eventing/samples/kafka/README.md index 8f84ff7cf3f..dc71a28225c 100644 --- a/docs/eventing/samples/kafka/README.md +++ b/docs/eventing/samples/kafka/README.md @@ -25,7 +25,7 @@ is to install it by using [Strimzi](https://strimzi.io). | sed 's/namespace: .*/namespace: kafka/' \ | kubectl -n kafka apply -f - ``` -1. Describe the size of your Apache Kafka installation, like: +1. Describe the size of your Apache Kafka installation in `kafka.yaml`, like: ```yaml apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka diff --git a/docs/eventing/samples/kafka/binding/README.md b/docs/eventing/samples/kafka/binding/README.md index 6d9b7b5ccdf..5733ad72a51 100644 --- a/docs/eventing/samples/kafka/binding/README.md +++ b/docs/eventing/samples/kafka/binding/README.md @@ -32,7 +32,7 @@ via Kafka Source ### Create the Event Display service -1. Source code for Event Display service +1. (Optional) Source code for Event Display service Get the source code of Event Display container image from [here](https://github.com/knative/eventing-contrib/blob/master/cmd/event_display/main.go) @@ -59,7 +59,7 @@ via Kafka Source 1. (Optional) Deploy the Event Display Service via kn cli: - Alernatively, you can create the knative service using the `kn` cli like + Alternatively, you can create the knative service using the `kn` cli like below ``` diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index 97d722aa748..3d54af464a4 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -125,7 +125,7 @@ You must ensure that you meet the [prerequisites listed in the Apache Kafka over spec: consumerGroup: knative-group bootstrapServers: - - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + - my-cluster-kafka-bootstrap.kafka:9092 # note the kafka namespace topics: - knative-demo-topic sink: From 67fc4ddc3eda616e837893e6f9d8ba22a56e1ab7 Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Thu, 21 May 2020 15:34:59 -0700 Subject: [PATCH 11/12] kafka binding doc --- docs/eventing/samples/kafka/source/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index 3d54af464a4..779287096c1 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -262,7 +262,7 @@ metadata: spec: consumerGroup: knative-group bootstrapServers: - - my-cluster-kafka-bootstrap.kafka:9092 #note the kafka namespace + - my-cluster-kafka-bootstrap.kafka:9092 # note the kafka namespace topics: - knative-demo-topic sink: From 9b4a2ad0380f296990bff11227568c4021e7d03d Mon Sep 17 00:00:00 2001 From: itsmurugappan Date: Sun, 24 May 2020 08:51:01 -0700 Subject: [PATCH 12/12] kafka binding doc --- docs/eventing/samples/kafka/source/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/eventing/samples/kafka/source/README.md b/docs/eventing/samples/kafka/source/README.md index fd258651270..2f428f8b164 100644 --- a/docs/eventing/samples/kafka/source/README.md +++ b/docs/eventing/samples/kafka/source/README.md @@ -322,4 +322,3 @@ KafkaSource expects these files to be in pem format, if it is in other format li kind: Service name: event-display ``` -