Skip to content

Commit 304ad6b

Browse files
robertojrojasItalyPaleAletmacam
authored
[Bindings Kafka] Adds Component Metadata Schema (#3068)
Signed-off-by: robertojrojas <[email protected]> Signed-off-by: Roberto Rojas <[email protected]> Co-authored-by: Alessandro (Ale) Segala <[email protected]> Co-authored-by: Tiago Alves Macambira <[email protected]>
1 parent 32b1b30 commit 304ad6b

File tree

2 files changed

+391
-97
lines changed

2 files changed

+391
-97
lines changed

bindings/kafka/metadata.yaml

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
# yaml-language-server: $schema=../../component-metadata-schema.json
2+
schemaVersion: v1
3+
type: bindings
4+
name: kafka
5+
version: v1
6+
status: stable
7+
title: "Apache Kafka"
8+
urls:
9+
- title: Reference
10+
url: https://docs.dapr.io/reference/components-reference/supported-bindings/kafka/
11+
binding:
12+
output: true
13+
input: true
14+
operations:
15+
- name: create
16+
description: "Publish a new message in the topic."
17+
authenticationProfiles:
18+
- title: "OIDC Authentication"
19+
description: |
20+
Authenticate using OpenID Connect.
21+
metadata:
22+
- name: authType
23+
type: string
24+
required: true
25+
description: |
26+
Authentication type.
27+
This must be set to "oidc" for this authentication profile.
28+
example: '"oidc"'
29+
allowedValues:
30+
- "oidc"
31+
- name: oidcTokenEndpoint
32+
type: string
33+
required: true
34+
description: |
35+
URL of the OAuth2 identity provider access token endpoint.
36+
example: '"https://identity.example.com/v1/token"'
37+
- name: oidcClientID
38+
description: |
39+
The OAuth2 client ID that has been provisioned in the identity provider.
40+
example: '"my-client-id"'
41+
type: string
42+
required: true
43+
- name: oidcClientSecret
44+
type: string
45+
required: true
46+
sensitive: true
47+
description: |
48+
The OAuth2 client secret that has been provisioned in the identity provider.
49+
example: '"KeFg23!"'
50+
- name: oidcScopes
51+
type: string
52+
description: |
53+
Comma-delimited list of OAuth2/OIDC scopes to request with the access token.
54+
Although not required, this field is recommended.
55+
example: '"openid,kafka-prod"'
56+
default: '"openid"'
57+
- title: "SASL Authentication"
58+
description: |
59+
Authenticate using SASL.
60+
metadata:
61+
- name: authType
62+
type: string
63+
required: true
64+
description: |
65+
Authentication type.
66+
This must be set to "password" for this authentication profile.
67+
example: '"password"'
68+
allowedValues:
69+
- "password"
70+
- name: saslUsername
71+
type: string
72+
required: true
73+
description: |
74+
The SASL username.
75+
example: '"myuser"'
76+
- name: saslPassword
77+
type: string
78+
required: true
79+
sensitive: true
80+
description: |
81+
The SASL password.
82+
example: '"mypassword"'
83+
- name: saslMechanism
84+
type: string
85+
required: true
86+
description: |
87+
The SASL authentication mechanism to use.
88+
example: '"SHA-512"'
89+
default: '"PLAINTEXT"'
90+
allowedValues:
91+
- "SHA-512"
92+
- "SHA-256"
93+
- "PLAINTEXT"
94+
- title: "mTLS Authentication"
95+
description: |
96+
Authenticate using mTLS.
97+
metadata:
98+
- name: authType
99+
type: string
100+
required: true
101+
description: |
102+
Authentication type.
103+
This must be set to "mtls" for this authentication profile.
104+
example: '"mtls"'
105+
allowedValues:
106+
- "mtls"
107+
- name: caCert
108+
type: string
109+
required: true
110+
description: "Certificate authority certificate."
111+
example: "-----BEGIN CERTIFICATE-----\n<base64-encoded DER>\n-----END CERTIFICATE-----"
112+
- name: clientCert
113+
required: true
114+
description: "Client certificate."
115+
example: "-----BEGIN CERTIFICATE-----\n<base64-encoded DER>\n-----END CERTIFICATE-----"
116+
type: string
117+
- name: clientKey
118+
type: string
119+
required: true
120+
sensitive: true
121+
description: "Client key."
122+
example: "-----BEGIN RSA PRIVATE KEY-----\n<base64-encoded DER>\n-----END RSA PRIVATE KEY-----"
123+
- title: "No Authentication"
124+
description: |
125+
Do not perform authentication.
126+
metadata:
127+
- name: authType
128+
type: string
129+
required: true
130+
description: |
131+
Authentication type.
132+
This must be set to "none" for this authentication profile.
133+
example: '"none"'
134+
allowedValues:
135+
- "none"
136+
metadata:
137+
- name: topics
138+
type: string
139+
description: |
140+
A comma-separated list of topics to subscribe to.
141+
example: '"mytopic1,topic2"'
142+
binding:
143+
input: true
144+
- name: brokers
145+
type: string
146+
required: true
147+
description: |
148+
A comma-separated list of Kafka brokers.
149+
example: '"localhost:9092,dapr-kafka.myapp.svc.cluster.local:9093"'
150+
binding:
151+
output: true
152+
input: true
153+
- name: publishTopic
154+
type: string
155+
required: true
156+
description: |
157+
The topic to publish to.
158+
example: '"mytopic"'
159+
binding:
160+
output: true
161+
- name: consumerGroup
162+
type: string
163+
description: |
164+
A kafka consumer group to listen on. Each record published
165+
to a topic is delivered to one consumer within each consumer
166+
group subscribed to the topic.
167+
example: '"group1"'
168+
binding:
169+
input: true
170+
- name: clientID
171+
type: string
172+
description: |
173+
A user-provided string sent with every request to
174+
the Kafka brokers for logging, debugging, and auditing purposes.
175+
example: '"my-dapr-app"'
176+
default: '"sarama"'
177+
- name: initialOffset
178+
type: string
179+
description: |
180+
The initial offset to use if no offset was previously committed.
181+
example: '"oldest"'
182+
default: '"newest"'
183+
allowedValues:
184+
- "newest"
185+
- "oldest"
186+
binding:
187+
input: true
188+
- name: maxMessageBytes
189+
type: number
190+
description: |
191+
The maximum size in bytes allowed for a single Kafka message.
192+
example: '2048'
193+
default: '1024'
194+
- name: consumeRetryInterval
195+
type: duration
196+
description: |
197+
The interval between retries when attempting to consume topics.
198+
example: '"200ms"'
199+
default: '"100ms"'
200+
- name: consumeRetryEnabled
201+
type: bool
202+
description: |
203+
Disables consumer retry by setting this to "false".
204+
example: '"true"'
205+
default: '"false"'
206+
- name: version
207+
type: string
208+
description: |
209+
Kafka cluster version.
210+
Note that this must be set to "1.0.0" if you are using Azure Event Hubs with Kafka.
211+
example: '"0.10.2.0"'
212+
default: '"2.0.0.0"'
213+
- name: skipVerify
214+
required: false
215+
description: |
216+
Skip TLS verification.
217+
This is potentially insecure and not recommended for use in production.
218+
example: "true"
219+
default: "false"
220+
type: bool
221+
- name: disableTls
222+
required: false
223+
description: |
224+
Disable TLS for transport security.
225+
This is potentially insecure and not recommended for use in production.
226+
example: "true"
227+
default: "false"
228+
type: bool

0 commit comments

Comments
 (0)