forked from noobaa/noobaa-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
noobaa.io_backingstores_crd.yaml
383 lines (383 loc) · 18.9 KB
/
noobaa.io_backingstores_crd.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
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backingstores.noobaa.io
spec:
group: noobaa.io
names:
kind: BackingStore
listKind: BackingStoreList
plural: backingstores
singular: backingstore
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Type
jsonPath: .spec.type
name: Type
type: string
- description: Phase
jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: BackingStore is the Schema for the backingstores API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Specification of the desired behavior of the noobaa BackingStore.
properties:
awsS3:
description: AWSS3Spec specifies a backing store of type aws-s3
properties:
awsSTSRoleARN:
type: string
region:
description: Region is the AWS region
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
sslDisabled:
description: SSLDisabled allows to disable SSL and use plain http
type: boolean
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- targetBucket
type: object
azureBlob:
description: AzureBlob specifies a backing store of type azure-blob
properties:
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AccountName and AccountKey as provided
by Azure Blob.
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
targetBlobContainer:
description: TargetBlobContainer is the name of the target Azure
Blob container
type: string
required:
- secret
- targetBlobContainer
type: object
googleCloudStorage:
description: GoogleCloudStorage specifies a backing store of type
google-cloud-storage
properties:
secret:
description: Secret refers to a secret that provides the credentials
The secret should define GoogleServiceAccountPrivateKeyJson
containing the entire json string as provided by Google.
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- secret
- targetBucket
type: object
ibmCos:
description: IBMCos specifies a backing store of type ibm-cos
properties:
endpoint:
description: 'Endpoint is the IBM COS compatible endpoint: http(s)://host:port'
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define IBM_COS_ACCESS_KEY_ID and IBM_COS_SECRET_ACCESS_KEY
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
signatureVersion:
description: SignatureVersion specifies the client signature version
to use when signing requests.
type: string
targetBucket:
description: TargetBucket is the name of the target IBM COS bucket
type: string
required:
- endpoint
- secret
- targetBucket
type: object
pvPool:
description: PVPool specifies a backing store of type pv-pool
properties:
numVolumes:
description: NumVolumes is the number of volumes to allocate
type: integer
resources:
description: VolumeResources represents the minimum resources
each volume should have.
properties:
claims:
description: "Claims lists the names of resources, defined
in spec.resourceClaims, that are used by this container.
\n This is an alpha field and requires enabling the DynamicResourceAllocation
feature gate. \n This field is immutable."
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: Name must match the name of one entry in
pod.spec.resourceClaims of the Pod where this field
is used. It makes that resource available inside a
container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of compute
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount of compute
resources required. If Requests is omitted for a container,
it defaults to Limits if that is explicitly specified, otherwise
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
secret:
description: Secret refers to a secret that provides the agent
configuration The secret should define AGENT_CONFIG containing
agent_configuration from noobaa-core.
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
storageClass:
description: StorageClass is the name of the storage class to
use for the PV's
type: string
required:
- numVolumes
type: object
s3Compatible:
description: S3Compatible specifies a backing store of type s3-compatible
properties:
endpoint:
description: 'Endpoint is the S3 compatible endpoint: http(s)://host:port'
type: string
secret:
description: Secret refers to a secret that provides the credentials
The secret should define AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
properties:
name:
description: name is unique within a namespace to reference
a secret resource.
type: string
namespace:
description: namespace defines the space within which the
secret name must be unique.
type: string
type: object
signatureVersion:
description: SignatureVersion specifies the client signature version
to use when signing requests.
type: string
targetBucket:
description: TargetBucket is the name of the target S3 bucket
type: string
required:
- endpoint
- secret
- targetBucket
type: object
type:
description: Type is an enum of supported types
type: string
required:
- type
type: object
status:
description: Most recently observed status of the noobaa BackingStore.
properties:
conditions:
description: Conditions is a list of conditions related to operator
reconciliation
items:
description: Condition represents the state of the operator's reconciliation
functionality.
properties:
lastHeartbeatTime:
format: date-time
type: string
lastTransitionTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
description: ConditionType is the state of the operator's reconciliation
functionality.
type: string
required:
- status
- type
type: object
type: array
mode:
description: Mode specifies the updating mode of a BackingStore
properties:
modeCode:
description: ModeCode specifies the updated mode of backingstore
type: string
timeStamp:
description: TimeStamp specifies the update time of backingstore
new mode
type: string
type: object
phase:
description: Phase is a simple, high-level summary of where the backing
store is in its lifecycle
type: string
relatedObjects:
description: RelatedObjects is a list of objects related to this operator.
items:
description: "ObjectReference contains enough information to let
you inspect or modify the referred object. --- New uses of this
type are discouraged because of difficulty describing its usage
when embedded in APIs. 1. Ignored fields. It includes many fields
which are not generally honored. For instance, ResourceVersion
and FieldPath are both very rarely valid in actual usage. 2.
Invalid usage help. It is impossible to add specific help for
individual usage. In most embedded usages, there are particular
\ restrictions like, \"must refer only to types A and B\" or
\"UID not honored\" or \"name must be restricted\". Those
cannot be well described when embedded. 3. Inconsistent validation.
\ Because the usages are different, the validation rules are different
by usage, which makes it hard for users to predict what will happen.
\ 4. The fields are both imprecise and overly precise. Kind is
not a precise mapping to a URL. This can produce ambiguity during
interpretation and require a REST mapping. In most cases, the
dependency is on the group,resource tuple and the version
of the actual struct is irrelevant. 5. We cannot easily change
it. Because this type is embedded in many locations, updates
to this type will affect numerous schemas. Don't make new
APIs embed an underspecified API type they do not control. \n
Instead of using this type, create a locally provided and used
type that is well-focused on your reference. For example, ServiceReferences
for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
."
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. TODO: this design is not final and this field is
subject to change in the future.'
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
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}