-
Notifications
You must be signed in to change notification settings - Fork 28
/
300-redisstreamsource.yaml
314 lines (312 loc) · 18.2 KB
/
300-redisstreamsource.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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# Copyright 2019 The Knative Authors
#
# Licensed 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: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: redisstreamsources.sources.knative.dev
labels:
eventing.knative.dev/release: devel
knative.dev/crd-install: "true"
duck.knative.dev/addressable: "true"
spec:
group: sources.knative.dev
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: {}
scale:
# specReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Spec.Replicas.
specReplicasPath: .spec.consumers
# statusReplicasPath defines the JSONPath inside of a custom resource that corresponds to Scale.Status.Replicas.
statusReplicasPath: .status.consumers
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
address:
description: Address is the Redis TCP address
type: string
ceOverrides:
description: CloudEventOverrides defines overrides to control the
output format and modifications of the event sent to the sink.
type: object
properties:
extensions:
description: Extensions specify what attribute are added or
overridden on the outbound event. Each `Extensions` key-value
pair are set on the event as an attribute extension independently.
type: object
x-kubernetes-preserve-unknown-fields: true
dialOptions:
description: Options are the connection options
type: object
properties:
caCert:
description: CACert is the Kubernetes secret containing the
server CA cert.
type: object
required:
- secretKeyRef
properties:
secretKeyRef:
description: The Secret key to select from.
type: object
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
optional:
description: Specify whether the Secret or
its key must be defined
type: boolean
cert:
description: Cert is the Kubernetes secret containing the
client certificate.
type: object
required:
- secretKeyRef
properties:
secretKeyRef:
description: The Secret key to select from.
type: object
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
optional:
description: Specify whether the Secret or
its key must be defined
type: boolean
key:
description: Key is the Kubernetes secret containing the client
key.
type: object
required:
- secretKeyRef
properties:
secretKeyRef:
description: The Secret key to select from.
type: object
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
optional:
description: Specify whether the Secret or
its key must be defined
type: boolean
password:
description: Password to use for connecting to Redis
type: object
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object
instead of an entire object, this string should
contain a valid JSON/Go field access statement,
such as desiredState.manifest.containers[2]. For
example, if the object reference is to a container
within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to
the name of the container that triggered the event)
or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax
is chosen only to have some well-defined way of
referencing a part of an object.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
skipVerify:
description: SkipVerify indicates whether to skip TLS verification
or not
type: boolean
useTLS:
description: UseTLS indicates whether to use TLS or not
type: boolean
group:
description: Group is the name of the consumer group associated to
this source. When left empty, a group is automatically created
for this source and deleted when this source is deleted.
type: string
consumers:
description: Consumers is a pointer to the number of desired consumers
running in the consumer group.
type: integer
format: int32
sink:
description: Sink is a reference to an object that will resolve to
a uri to use as the sink.
type: object
properties:
ref:
description: Ref points to an Addressable.
type: object
properties:
apiVersion:
description: API version of the referent.
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
This is optional field, it gets defaulted to the
object holding it if left out.'
type: string
uri:
description: URI can be an absolute URL(non-empty scheme and
non-empty host) pointing to the target or a relative URI.
Relative URIs will be resolved using the base URI retrieved
from Ref.
type: string
stream:
description: Stream is the name of the stream.
type: string
status:
type: object
properties:
annotations:
description: Annotations is additional Status fields for the Resource
to save some additional State as well as convey more information
to the user. This is roughly akin to Annotations on any k8s resource,
just the reconciler conveying richer information outwards.
type: object
x-kubernetes-preserve-unknown-fields: true
ceAttributes:
description: CloudEventAttributes are the specific attributes that
the Source uses as part of its CloudEvents.
type: array
items:
type: object
properties:
source:
description: Source is the CloudEvents source attribute.
type: string
type:
description: Type refers to the CloudEvent type attribute.
type: string
conditions:
description: Conditions the latest available observations of a resource's
current state.
type: array
items:
type: object
required:
- type
- status
properties:
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another. We use VolatileTime
in place of metav1.Time to exclude this from creating
equality.Semantic differences (all other things held
constant).
type: string
message:
description: A human readable message indicating details
about the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
severity:
description: Severity with which to treat failures of
this type of condition. When this is not specified,
it defaults to Error.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of condition.
type: string
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service
that was last processed by the controller.
type: integer
format: int64
sinkUri:
description: SinkURI is the current active sink URI that has been
configured for the Source.
type: string
consumers:
description: Consumers is the number of desired consumers
running in the consumer group.
type: integer
format: int32
additionalPrinterColumns:
- name: Sink
type: string
jsonPath: .status.sinkUri
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type=='Ready')].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type=='Ready')].reason"
names:
categories:
- all
- knative
- eventing
- sources
kind: RedisStreamSource
plural: redisstreamsources
singular: redisstreamsource
scope: Namespaced