This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
commit 0848e86e6009f2ae833ff74015a60d65f8cb7970 Author: Andrea Cosentino <[email protected]> AuthorDate: Fri Jun 25 14:33:33 2021 +0200 Added MongoDB Sink Kamelet --- .../ROOT/assets/images/kamelets/mongodb-sink.svg | 1 + docs/modules/ROOT/pages/mongodb-sink.adoc | 138 +++++++++++++++++++++ 2 files changed, 139 insertions(+) diff --git a/docs/modules/ROOT/assets/images/kamelets/mongodb-sink.svg b/docs/modules/ROOT/assets/images/kamelets/mongodb-sink.svg new file mode 100644 index 0000000..bf6e1f5 --- /dev/null +++ b/docs/modules/ROOT/assets/images/kamelets/mongodb-sink.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 31 67" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#A" x="1" y="1"/><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M14.174.175l1.708 3.208c.371.579.804 1.117 1.29 1.604 1.43 1.43 2.788 2.928 4.008 4.532 2.894 3.8 4.846 8 6.24 12.584a30.94 30.94 0 0 1 1.324 8.54c.14 8.646-2.824 16.07-8.8 22.24-.97 [...] \ No newline at end of file diff --git a/docs/modules/ROOT/pages/mongodb-sink.adoc b/docs/modules/ROOT/pages/mongodb-sink.adoc new file mode 100644 index 0000000..d3f517a --- /dev/null +++ b/docs/modules/ROOT/pages/mongodb-sink.adoc @@ -0,0 +1,138 @@ +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT += image:kamelets/mongodb-sink.svg[] MongoDB Sink + +*Provided by: "Apache Software Foundation"* + +*Support Level for this Kamelet is: "Preview"* + +Send documents to MongoDB. + +This Kamelet expects a JSON as body. + +== Configuration Options + +The following table summarizes the configuration options available for the `mongodb-sink` Kamelet: +[width="100%",cols="2,^2,3,^2,^2,^3",options="header"] +|=== +| Property| Name| Description| Type| Default| Example +| *collection {empty}* *| MongoDB Collection| Sets the name of the MongoDB collection to bind to this endpoint.| string| | +| *database {empty}* *| MongoDB Database| Sets the name of the MongoDB database to target.| string| | +| *hosts {empty}* *| MongoDB Hosts| Comma separated list of MongoDB Host Addresses in host:port format.| string| | +| *password {empty}* *| MongoDB Password| User password for accessing MongoDB.| string| | +| *username {empty}* *| MongoDB Username| Username for accessing MongoDB.| string| | +|=== + +NOTE: Fields marked with ({empty}*) are mandatory. + +== Usage + +This section summarizes how the `mongodb-sink` can be used in various contexts. + +=== Knative Sink + +The `mongodb-sink` Kamelet can be used as Knative sink by binding it to a Knative object. + +.mongodb-sink-binding.yaml +[source,yaml] +---- +apiVersion: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: mongodb-sink-binding +spec: + source: + ref: + kind: InMemoryChannel + apiVersion: messaging.knative.dev/v1 + name: mychannel + sink: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: mongodb-sink + properties: + collection: "The MongoDB Collection" + database: "The MongoDB Database" + hosts: "The MongoDB Hosts" + password: "The MongoDB Password" + username: "The MongoDB Username" + +---- + +Make sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to. + +Save the `mongodb-sink-binding.yaml` file into your hard drive, then configure it according to your needs. + +You can run the sink using the following command: + +[source,shell] +---- +kubectl apply -f mongodb-sink-binding.yaml +---- + +==== *Binding to Knative using the Kamel CLI:* + +The procedure described above can be simplified into a single execution of the `kamel bind` command: + +[source,shell] +---- +kamel bind channel/mychannel mongodb-sink -p "sink.collection=The MongoDB Collection" -p "sink.database=The MongoDB Database" -p "sink.hosts=The MongoDB Hosts" -p "sink.password=The MongoDB Password" -p "sink.username=The MongoDB Username" +---- + +This will create the KameletBinding under the hood and apply it to the current namespace in the cluster. + +=== Kafka Sink + +The `mongodb-sink` Kamelet can be used as Kafka sink by binding it to a Kafka topic. + +.mongodb-sink-binding.yaml +[source,yaml] +---- +apiVersion: camel.apache.org/v1alpha1 +kind: KameletBinding +metadata: + name: mongodb-sink-binding +spec: + source: + ref: + kind: KafkaTopic + apiVersion: kafka.strimzi.io/v1beta1 + name: my-topic + sink: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: mongodb-sink + properties: + collection: "The MongoDB Collection" + database: "The MongoDB Database" + hosts: "The MongoDB Hosts" + password: "The MongoDB Password" + username: "The MongoDB Username" + +---- + +Ensure that you've installed https://strimzi.io/[Strimzi] and created a topic named `my-topic` in the current namespace. +Make also sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to. + +Save the `mongodb-sink-binding.yaml` file into your hard drive, then configure it according to your needs. + +You can run the sink using the following command: + +[source,shell] +---- +kubectl apply -f mongodb-sink-binding.yaml +---- + +==== *Binding to Kafka using the Kamel CLI:* + +The procedure described above can be simplified into a single execution of the `kamel bind` command: + +[source,shell] +---- +kamel bind kafka.strimzi.io/v1beta1:KafkaTopic:my-topic mongodb-sink -p "sink.collection=The MongoDB Collection" -p "sink.database=The MongoDB Database" -p "sink.hosts=The MongoDB Hosts" -p "sink.password=The MongoDB Password" -p "sink.username=The MongoDB Username" +---- + +This will create the KameletBinding under the hood and apply it to the current namespace in the cluster. + +// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
