This is an automated email from the ASF dual-hosted git repository. nferraro pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 9d5467a7d7504883f0c887ac7dc01d2d1d8aa173 Author: Pasquale Congiusti <pasquale.congiu...@gmail.com> AuthorDate: Fri Oct 23 16:32:25 2020 +0200 doc(examples): timer source to log sink kamelet example --- .../timer-source-log-sink/log-sink.binding.yaml | 32 +++++++++++ .../timer-source-log-sink/log-sink.kamelet.yaml | 34 ++++++++++++ examples/kamelets/timer-source-log-sink/readme.md | 62 ++++++++++++++++++++++ .../timer-source-log-sink/timer-events.yaml | 21 ++++++++ .../timer-source.binding.yaml | 34 ++++++++++++ .../timer-source.kamelet.yaml | 54 +++++++++++++++++++ 6 files changed, 237 insertions(+) diff --git a/examples/kamelets/timer-source-log-sink/log-sink.binding.yaml b/examples/kamelets/timer-source-log-sink/log-sink.binding.yaml new file mode 100644 index 0000000..6b6608c --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/log-sink.binding.yaml @@ -0,0 +1,32 @@ +# --------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: log-event-sink +spec: + source: + ref: + kind: InMemoryChannel + apiVersion: messaging.knative.dev/v1beta1 + name: messages + sink: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: log-sink diff --git a/examples/kamelets/timer-source-log-sink/log-sink.kamelet.yaml b/examples/kamelets/timer-source-log-sink/log-sink.kamelet.yaml new file mode 100644 index 0000000..0d9ff42 --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/log-sink.kamelet.yaml @@ -0,0 +1,34 @@ +# --------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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: camel.apache.org/v1alpha1 +kind: Kamelet +metadata: + name: log-sink + annotations: + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAACcBJREFUeJzt3XmsHVUdwPHva21poWGTUpAiVRQSFjWAyi5LcCmKLCEouLwQccMgGsISEkQRXMIfSKMGhQSMCCibkRIgghQEF4RIQYtG4YFsraRlb6G+1j9+94a50/fmvuW+OTN3vp9kkrnnzj3zu+/N786ZmTNnQJIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZKkfjOQOoAKGQA+DJwAvBfYCpieNKKJexk4E/h56kDUH94O3AOs76NpHfDlXv6R1Ey7ACtIv0FP1XRa7/5Uapo5wL9JvxFP9fSNXv3Bmu [...] + labels: + camel.apache.org/kamelet.type: "sink" +spec: + definition: + title: "Log Sink" + description: "Consume events from a channel" + flow: + from: + uri: kamelet:source + steps: + - to: "log:sink" diff --git a/examples/kamelets/timer-source-log-sink/readme.md b/examples/kamelets/timer-source-log-sink/readme.md new file mode 100644 index 0000000..4d4d671 --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/readme.md @@ -0,0 +1,62 @@ +# Timer Source to Log Sink + +This example shows how to create a simple timer `event source` and a log `event sink`. The timer events emitted are consumed by a simple logging connector which will print out those events. + +## Create events source and sink + +Let's start by creating the timer event source and log event sink as `kamelet`s. +``` +$ kubectl apply -f timer-source.kamelet.yaml +$ kubectl apply -f log-sink.kamelet.yaml +``` + +You can check the newly created `kamelet`s in the list. +``` +$ kubectl get kamelets + +NAME PHASE +log-sink Ready +timer-source Ready +``` + +## Create channel destination + +Let's continue by creating a `knative` destination. +``` +$ kubectl apply -f timer-events.yaml +``` + +## Binding events + +We can now bind the timer event source to produce events on the destination with the `timer-source.binding.yaml` configuration. +``` +$ kubectl apply -f timer-source.binding.yaml +``` +In a similar fashion you can bind to the log sink in order to consume those events with the `log-sink.binding.yaml` configuration. +``` +$ kubectl apply -f log-sink.binding.yaml +``` +You can check the newly created bindings listing the `KameletBidings`. +``` +$ kubectl get KameletBindings + +NAME PHASE +log-event-sink Ready +timer-event-source Ready +``` + +### Watch the event sink + +After a while you will be able to watch the event consumed by the underlying `log-event-sink` integration: + +``` +$ kamel log log-event-sink + +[1] Monitoring pod log-event-sink-wjm9w-deployment-cf4f49655-xwq82 +... +[1] 2020-10-23 14:28:11,878 INFO [sink] (vert.x-worker-thread-1) Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: Hello world!] +[1] 2020-10-23 14:28:11,877 INFO [sink] (vert.x-worker-thread-0) Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: Hello world!] +[1] 2020-10-23 14:28:12,381 INFO [sink] (vert.x-worker-thread-2) Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: Hello world!] +[1] 2020-10-23 14:28:13,276 INFO [sink] (vert.x-worker-thread-3) Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: Hello world!] +[1] 2020-10-23 14:28:14,299 INFO [sink] (vert.x-worker-thread-4) Exchange[ExchangePattern: InOnly, BodyType: byte[], Body: Hello world!] +``` \ No newline at end of file diff --git a/examples/kamelets/timer-source-log-sink/timer-events.yaml b/examples/kamelets/timer-source-log-sink/timer-events.yaml new file mode 100644 index 0000000..b7b4133 --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/timer-events.yaml @@ -0,0 +1,21 @@ +# --------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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: messaging.knative.dev/v1beta1 +kind: InMemoryChannel +metadata: + name: messages \ No newline at end of file diff --git a/examples/kamelets/timer-source-log-sink/timer-source.binding.yaml b/examples/kamelets/timer-source-log-sink/timer-source.binding.yaml new file mode 100644 index 0000000..622e015 --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/timer-source.binding.yaml @@ -0,0 +1,34 @@ +# --------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: timer-event-source +spec: + source: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: timer-source + properties: + message: "Hello world!" + sink: + ref: + kind: InMemoryChannel + apiVersion: messaging.knative.dev/v1beta1 + name: messages \ No newline at end of file diff --git a/examples/kamelets/timer-source-log-sink/timer-source.kamelet.yaml b/examples/kamelets/timer-source-log-sink/timer-source.kamelet.yaml new file mode 100644 index 0000000..47a6393 --- /dev/null +++ b/examples/kamelets/timer-source-log-sink/timer-source.kamelet.yaml @@ -0,0 +1,54 @@ +# --------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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: camel.apache.org/v1alpha1 +kind: Kamelet +metadata: + name: timer-source + annotations: + camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gU3ZnIFZlY3RvciBJY29ucyA6IGh0dHA6Ly93d3cub25saW5ld2ViZm9udHMuY29tL2ljb24gLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm [...] + labels: + camel.apache.org/kamelet.type: "source" +spec: + definition: + title: "Timer Source" + description: "Produces periodic events with a custom payload" + required: + - message + properties: + period: + title: Period + description: The interval between two events + type: integer + default: 1000 + message: + title: Message + description: The message to generate + type: string + example: "hello world" + types: + out: + mediaType: text/plain + flow: + from: + uri: timer:tick + parameters: + period: "#property:period" + steps: + - set-body: + constant: "{{message}}" + - to: "kamelet:sink" \ No newline at end of file