From c44c757e2254e42a0f2abbad7e2672120b7b8d7c Mon Sep 17 00:00:00 2001 From: Scott Nichols <32305648+n3wscott@users.noreply.github.com> Date: Mon, 9 Mar 2020 04:19:28 -0700 Subject: [PATCH] Make documentation for PingSource. (#2126) * Document ping source. * Squashed commit of the following: commit 9a04cb676153c31876ba70ac12a3f0095d6e897b Author: Scott Nichols Date: Thu Feb 27 07:32:03 2020 -0800 Document ping source. * typo on source. * update image * kail tabs * by name default --- docs/eventing/samples/ping-source/README.md | 164 ++++++++++++++++++ .../samples/ping-source/ping-source.yaml | 12 ++ .../eventing/samples/ping-source/service.yaml | 11 ++ 3 files changed, 187 insertions(+) create mode 100644 docs/eventing/samples/ping-source/README.md create mode 100644 docs/eventing/samples/ping-source/ping-source.yaml create mode 100644 docs/eventing/samples/ping-source/service.yaml diff --git a/docs/eventing/samples/ping-source/README.md b/docs/eventing/samples/ping-source/README.md new file mode 100644 index 000000000..2f4cabca0 --- /dev/null +++ b/docs/eventing/samples/ping-source/README.md @@ -0,0 +1,164 @@ +--- +title: "PingSource example" +linkTitle: "PingSource" +weight: 10 +type: "docs" +--- + +This example shows how to configure PingSource as an event source for +functions. + +## Before you begin + +1. Set up [Knative Serving](../../../serving). +1. Set up [Knative Eventing](../../../eventing). + +## Create a Knative Service + +To verify that `PingSource` is working, create a simple Knative +Service that dumps incoming messages to its log. + +{{< tabs name="create-service" default="By YAML" >}} +{{% tab name="By YAML" %}} +Use following command to create the service from STDIN: + +```shell +cat <}} + +{{% tab name="By filename" %}} +Use following command to create the service from the `service.yaml` file: + +```shell +kubectl apply --filename service.yaml +``` +{{< /tab >}} +{{< /tabs >}} + +## Create a PingSource + +For each set of ping events that you want to request, create an Event +Source in the same namespace as the destination. + +{{< tabs name="create-source" default="By YAML" >}} +{{% tab name="By YAML" %}} +Use following command to create the event source from STDIN: + +```shell +cat <}} + +{{% tab name="By filename" %}} +Use following command to create the event source from the `ping-source.yaml` file: + +```shell +kubectl apply --filename ping-source.yaml +``` +{{< /tab >}} +{{< /tabs >}} + + +## Verify + +Verify that the message was sent to the Knative eventing system by +looking at message dumper logs. + +{{< tabs name="view-event" default="kubectl" >}} +{{% tab name="kubectl" %}} + +Use following command to view the logs of the event-display service: + +```shell +kubectl logs -l serving.knative.dev/service=event-display -c user-container --since=10m +``` + +{{< /tab >}} +{{% tab name="kail" %}} + +You can also use [`kail`](https://github.com/boz/kail) instead of `kubectl logs` +to tail the logs of the subscriber. + +```shell +kail -l serving.knative.dev/service=event-display -c user-container --since=10m +``` + +{{< /tab >}} +{{< /tabs >}} + +You should see log lines showing the request headers and body from the source: + +``` +☁️ cloudevents.Event +Validation: valid +Context Attributes, + specversion: 1.0 + type: dev.knative.sources.ping + source: /apis/v1/namespaces/default/pingsources/test-ping-source + id: d8e761eb-30c7-49a3-a421-cd5895239f2d + time: 2019-12-04T14:24:00.000702251Z + datacontenttype: application/json +Data, + { + "message": "Hello world!" + } +``` + +## Cleanup + +You can delete the PingSource instance by entering the following command: + +{{< tabs name="delete-source" default="By name" >}} +{{% tab name="By name" %}} +```shell +kubectl delete pingsources.sources.knative.dev test-ping-source +``` +{{< /tab >}} + +{{% tab name="By filename" %}} +```shell +kubectl delete --filename ping-source.yaml +``` +{{< /tab >}} +{{< /tabs >}} + + +Similarly, you can delete the Service instance via: + +{{< tabs name="delete-service" default="By name" >}} +{{% tab name="By name" %}} +```shell +kubectl delete service.serving.knative.dev event-display +``` +{{< /tab >}} +{{% tab name="By filename" %}} +```shell +kubectl delete --filename service.yaml +``` +{{< /tab >}} + +{{< /tabs >}} diff --git a/docs/eventing/samples/ping-source/ping-source.yaml b/docs/eventing/samples/ping-source/ping-source.yaml new file mode 100644 index 000000000..12b0cecfb --- /dev/null +++ b/docs/eventing/samples/ping-source/ping-source.yaml @@ -0,0 +1,12 @@ +apiVersion: sources.knative.dev/v1alpha1 +kind: PingSource +metadata: + name: test-ping-source +spec: + schedule: "*/2 * * * *" + data: '{"message": "Hello world!"}' + sink: + ref: + apiVersion: serving.knative.dev/v1 + kind: Service + name: event-display diff --git a/docs/eventing/samples/ping-source/service.yaml b/docs/eventing/samples/ping-source/service.yaml new file mode 100644 index 000000000..38ac01bc0 --- /dev/null +++ b/docs/eventing/samples/ping-source/service.yaml @@ -0,0 +1,11 @@ +# This is a very simple Knative Service that writes the input request to its log. + +apiVersion: serving.knative.dev/v1 +kind: Service +metadata: + name: event-display +spec: + template: + spec: + containers: + - image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display