-
Notifications
You must be signed in to change notification settings - Fork 26
/
mongodb-sink.kamelet.yaml
125 lines (123 loc) · 6.06 KB
/
mongodb-sink.kamelet.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
apiVersion: camel.apache.org/v1
kind: Kamelet
metadata:
name: mongodb-sink
annotations:
camel.apache.org/kamelet.support.level: "Stable"
camel.apache.org/catalog.version: "2.3.0"
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzEgNjciIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJBIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgc3Ryb2tlPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNC4xNzQuMTc1bDEuNzA4IDMuMjA4Yy4zNzEuNTc5LjgwNCAxLjExNyAxLjI5IDEuNjA0IDEuNDMgMS40MyAyLjc4OCAyLjkyOCA0LjAwOCA0LjUzMiAyLjg5NCAzLjggNC44NDYgOCA2LjI0IDEyLjU4NGEzMC45NCAzMC45NCAwIDAgMSAxLjMyNCA4LjU0Yy4xNCA4LjY0Ni0yLjgyNCAxNi4wNy04LjggMjIuMjQtLjk3Mi45NzgtMi4wMjIgMS44NzYtMy4xNCAyLjY4NC0uNTkyIDAtLjg3Mi0uNDU0LTEuMTE2LS44NzItLjQ1NC0uNzY2LS43MzItMS42NC0uODcyLTIuNTEtLjIxLTEuMDQ2LS4zNDgtMi4wOTItLjI4LTMuMTcydi0uNDg4Yy0uMDQ4LS4xMjQtLjU3LTQ4LjEyNC0uMzYyLTQ4LjM1eiIgZmlsbD0iIzU5OTYzNiIvPjxwYXRoIGQ9Ik0xNC4xNzQuMDY5Yy0uMDctLjE0LS4xNC0uMDM0LS4yMS4wMzQuMDM0LjctLjIxIDEuMzI0LS41OTIgMS45Mi0uNC41OTItLjk3NiAxLjA0Ni0xLjUzNCAxLjUzNC0zLjEgMi42ODQtNS41NCA1LjkyNi03LjQ5NCA5LjU1Mi0yLjYgNC44OC0zLjk0IDEwLjExLTQuMzIgMTUuNjE2LS4xNzQgMS45ODYuNjI4IDguOTk0IDEuMjU0IDExLjAxNiAxLjcwOCA1LjM2OCA0Ljc3NiA5Ljg2NiA4Ljc1IDEzLjc3YTM1LjA4IDM1LjA4IDAgMCAwIDMuMSAyLjY1Yy4zMTQgMCAuMzQ4LS4yOC40LS40ODhhOS41NyA5LjU3IDAgMCAwIC4zMTQtMS4zNmwuNy01LjIyOEwxNC4xNzQuMDY5eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Ik0xNS44ODIgNTcuNjkxYy4wNy0uOC40NTQtMS40NjQuODcyLTIuMTI2LS40LS4xNzQtLjczMi0uNTItLjk3Ni0uOTA2YTYuNDcgNi40NyAwIDAgMS0uNTItMS4xNWMtLjQ4OC0xLjQ2NC0uNTkyLTMtLjczMi00LjQ5NnYtLjkwNmMtLjE3NC4xNC0uMjEgMS4zMjQtLjIxIDEuNS0uMTAyIDEuNTgxLS4zMTIgMy4xNTQtLjYyOCA0LjcwNi0uMTA0LjYyOC0uMTc0IDEuMjU0LS41NiAxLjgxMiAwIC4wNyAwIC4xNC4wMzQuMjQ0LjYyOCAxLjg0OC44IDMuNzMuOTA2IDUuNjQ4di43YzAgLjgzNi0uMDM0LjY2LjY2Ljk0LjI4LjEwNC41OTIuMTQuODcyLjM0OC4yMSAwIC4yNDQtLjE3NC4yNDQtLjMxNGwtLjEwNC0xLjE1di0zLjIwOGMtLjAzNC0uNTYuMDctMS4xMTYuMTQtMS42NHoiIGZpbGw9IiNjMmJmYmYiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
camel.apache.org/provider: "Red Hat"
camel.apache.org/kamelet.group: "MongoDB"
camel.apache.org/kamelet.namespace: "Nosql"
labels:
camel.apache.org/kamelet.type: "sink"
spec:
definition:
title: "MongoDB Sink"
description: |-
Send data to MongoDB.
This Kamelet expects a JSON-formatted body.
In the header, you can set the `db-upsert` / `ce-dbupsert` property, a boolean value that specifies whether the database should create an element if it does not exist.
required:
- hosts
- collection
- database
type: object
properties:
hosts:
title: MongoDB Hosts
description: A comma-separated list of MongoDB host addresses in `host:port` format.
type: string
collection:
title: MongoDB Collection
description: The name of the MongoDB collection to bind to this endpoint.
type: string
password:
title: MongoDB Password
description: A user password for accessing MongoDB.
type: string
format: password
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:password
- urn:camel:group:credentials
username:
title: MongoDB Username
description: A username for accessing MongoDB.
type: string
x-descriptors:
- urn:camel:group:credentials
ssl:
title: Enable Ssl for Mongodb Connection
description: whether to enable ssl connection to mongodb
type: boolean
default: true
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:checkbox'
sslValidationEnabled:
title: Enables Ssl Certificates Validation and Host name checks.
description: IMPORTANT this should be disabled only in test environment since can pose security issues.
type: boolean
default: true
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:checkbox'
database:
title: MongoDB Database
description: The name of the MongoDB database.
type: string
writeConcern:
title: Write Concern
description: The level of acknowledgment requested from MongoDB for write operations.
type: string
enum: ["ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY"]
createCollection:
title: Collection
description: Create a collection during initialization if it doesn't exist.
type: boolean
default: false
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:checkbox'
types:
in:
mediaType: application/json
dependencies:
- "camel:core"
- "camel:kamelet"
- "camel:mongodb"
- "camel:jackson"
- "mvn:org.apache.camel.kamelets:camel-kamelets-utils:2.3.0"
template:
beans:
- name: local-mongodb
type: "#class:org.apache.camel.component.mongodb.MongoDbComponent"
- name: mongo-client
type: "#class:org.apache.camel.kamelets.utils.mongodb.SslAwareMongoClient"
properties:
password: "{{?password}}"
username: "{{?username}}"
hosts: "{{hosts}}"
ssl: "{{ssl}}"
sslValidationEnabled: "{{sslValidationEnabled}}"
from:
uri: kamelet:source
steps:
- choice:
when:
- simple: "${header[db-upsert]}"
steps:
- set-header:
name: CamelMongoDbUpsert
simple: "${header[db-upsert]}"
- simple: "${header[ce-dbupsert]}"
steps:
- set-header:
name: CamelMongoDbUpsert
simple: "${header[ce-dbupsert]}"
- to:
uri: "{{local-mongodb}}:test"
parameters:
createCollection: "{{?createCollection}}"
writeConcern: "{{?writeConcern}}"
collection: "{{collection}}"
database: "{{database}}"
operation: "insert"
mongoConnection: "#{{mongo-client}}"