Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/production/operator/crds/monitoring.grafana.com_integrations.yaml
4096 views
1
---
2
apiVersion: apiextensions.k8s.io/v1
3
kind: CustomResourceDefinition
4
metadata:
5
annotations:
6
controller-gen.kubebuilder.io/version: v0.9.2
7
creationTimestamp: null
8
name: integrations.monitoring.grafana.com
9
spec:
10
group: monitoring.grafana.com
11
names:
12
categories:
13
- agent-operator
14
kind: Integration
15
listKind: IntegrationList
16
plural: integrations
17
singular: integration
18
scope: Namespaced
19
versions:
20
- name: v1alpha1
21
schema:
22
openAPIV3Schema:
23
description: "Integration runs a single Grafana Agent integration. Integrations
24
that generate telemetry must be configured to send that telemetry somewhere,
25
such as autoscrape for exporter-based integrations. \n Integrations have
26
access to the LogsInstances and MetricsInstances in the same GrafanaAgent
27
resource set, referenced by the <namespace>/<name> of the Instance resource.
28
\n For example, if there is a default/production MetricsInstance, you can
29
configure a supported integration's autoscrape block with: \n autoscrape:
30
enable: true metrics_instance: default/production \n There is currently
31
no way for telemetry created by an Operator-managed integration to be collected
32
from outside of the integration itself."
33
properties:
34
apiVersion:
35
description: 'APIVersion defines the versioned schema of this representation
36
of an object. Servers should convert recognized schemas to the latest
37
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
38
type: string
39
kind:
40
description: 'Kind is a string value representing the REST resource this
41
object represents. Servers may infer this from the endpoint the client
42
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
43
type: string
44
metadata:
45
type: object
46
spec:
47
description: Specifies the desired behavior of the Integration.
48
properties:
49
config:
50
description: "The configuration for the named integration. Note that
51
Integrations are deployed with the integrations-next feature flag,
52
which has different common settings: \n https://grafana.com/docs/agent/latest/configuration/integrations/integrations-next/"
53
type: object
54
x-kubernetes-preserve-unknown-fields: true
55
configMaps:
56
description: "An extra list of keys from ConfigMaps in the same namespace
57
as the Integration which will be mounted into the Grafana Agent
58
pod running this Integration. \n ConfigMaps are mounted at /etc/grafana-agent/integrations/configMaps/<configmap_namespace>/<configmap_name>/<key>."
59
items:
60
description: Selects a key from a ConfigMap.
61
properties:
62
key:
63
description: The key to select.
64
type: string
65
name:
66
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
67
TODO: Add other useful fields. apiVersion, kind, uid?'
68
type: string
69
optional:
70
description: Specify whether the ConfigMap or its key must be
71
defined
72
type: boolean
73
required:
74
- key
75
type: object
76
x-kubernetes-map-type: atomic
77
type: array
78
name:
79
description: Name of the integration to run (e.g., "node_exporter",
80
"mysqld_exporter").
81
type: string
82
secrets:
83
description: "An extra list of keys from Secrets in the same namespace
84
as the Integration which will be mounted into the Grafana Agent
85
pod running this Integration. \n Secrets will be mounted at /etc/grafana-agent/integrations/secrets/<secret_namespace>/<secret_name>/<key>."
86
items:
87
description: SecretKeySelector selects a key of a Secret.
88
properties:
89
key:
90
description: The key of the secret to select from. Must be
91
a valid secret key.
92
type: string
93
name:
94
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
95
TODO: Add other useful fields. apiVersion, kind, uid?'
96
type: string
97
optional:
98
description: Specify whether the Secret or its key must be defined
99
type: boolean
100
required:
101
- key
102
type: object
103
x-kubernetes-map-type: atomic
104
type: array
105
type:
106
description: Type informs Grafana Agent Operator about how to manage
107
the integration being configured.
108
properties:
109
allNodes:
110
description: When true, the configured integration should be run
111
on every Node in the cluster. This is required for Integrations
112
that generate Node-specific metrics like node_exporter, otherwise
113
it must be false to avoid generating duplicate metrics.
114
type: boolean
115
unique:
116
description: Whether this integration can only be defined once
117
for a Grafana Agent process, such as statsd_exporter. It is
118
invalid for a GrafanaAgent to discover multiple unique Integrations
119
with the same Integration name (i.e., a single GrafanaAgent
120
cannot deploy two statsd_exporters).
121
type: boolean
122
type: object
123
volumeMounts:
124
description: "An extra list of VolumeMounts to be associated with
125
the Grafana Agent pods running this integration. VolumeMount names
126
are mutated to be unique across all used IntegrationSpecs. \n Mount
127
paths should include the namespace/name of the Integration CR to
128
avoid potentially colliding with other resources."
129
items:
130
description: VolumeMount describes a mounting of a Volume within
131
a container.
132
properties:
133
mountPath:
134
description: Path within the container at which the volume should
135
be mounted. Must not contain ':'.
136
type: string
137
mountPropagation:
138
description: mountPropagation determines how mounts are propagated
139
from the host to container and the other way around. When
140
not set, MountPropagationNone is used. This field is beta
141
in 1.10.
142
type: string
143
name:
144
description: This must match the Name of a Volume.
145
type: string
146
readOnly:
147
description: Mounted read-only if true, read-write otherwise
148
(false or unspecified). Defaults to false.
149
type: boolean
150
subPath:
151
description: Path within the volume from which the container's
152
volume should be mounted. Defaults to "" (volume's root).
153
type: string
154
subPathExpr:
155
description: Expanded path within the volume from which the
156
container's volume should be mounted. Behaves similarly to
157
SubPath but environment variable references $(VAR_NAME) are
158
expanded using the container's environment. Defaults to ""
159
(volume's root). SubPathExpr and SubPath are mutually exclusive.
160
type: string
161
required:
162
- mountPath
163
- name
164
type: object
165
type: array
166
volumes:
167
description: "An extra list of Volumes to be associated with the Grafana
168
Agent pods running this integration. Volume names are mutated to
169
be unique across all Integrations. Note that the specified volumes
170
should be able to tolerate existing on multiple pods at once when
171
type is daemonset. \n Don't use volumes for loading Secrets or ConfigMaps
172
from the same namespace as the Integration; use the Secrets and
173
ConfigMaps fields instead."
174
items:
175
description: Volume represents a named volume in a pod that may
176
be accessed by any container in the pod.
177
properties:
178
awsElasticBlockStore:
179
description: 'awsElasticBlockStore represents an AWS Disk resource
180
that is attached to a kubelet''s host machine and then exposed
181
to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
182
properties:
183
fsType:
184
description: 'fsType is the filesystem type of the volume
185
that you want to mount. Tip: Ensure that the filesystem
186
type is supported by the host operating system. Examples:
187
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
188
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
189
TODO: how do we prevent errors in the filesystem from
190
compromising the machine'
191
type: string
192
partition:
193
description: 'partition is the partition in the volume that
194
you want to mount. If omitted, the default is to mount
195
by volume name. Examples: For volume /dev/sda1, you specify
196
the partition as "1". Similarly, the volume partition
197
for /dev/sda is "0" (or you can leave the property empty).'
198
format: int32
199
type: integer
200
readOnly:
201
description: 'readOnly value true will force the readOnly
202
setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
203
type: boolean
204
volumeID:
205
description: 'volumeID is unique ID of the persistent disk
206
resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
207
type: string
208
required:
209
- volumeID
210
type: object
211
azureDisk:
212
description: azureDisk represents an Azure Data Disk mount on
213
the host and bind mount to the pod.
214
properties:
215
cachingMode:
216
description: 'cachingMode is the Host Caching mode: None,
217
Read Only, Read Write.'
218
type: string
219
diskName:
220
description: diskName is the Name of the data disk in the
221
blob storage
222
type: string
223
diskURI:
224
description: diskURI is the URI of data disk in the blob
225
storage
226
type: string
227
fsType:
228
description: fsType is Filesystem type to mount. Must be
229
a filesystem type supported by the host operating system.
230
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
231
if unspecified.
232
type: string
233
kind:
234
description: 'kind expected values are Shared: multiple
235
blob disks per storage account Dedicated: single blob
236
disk per storage account Managed: azure managed data
237
disk (only in managed availability set). defaults to shared'
238
type: string
239
readOnly:
240
description: readOnly Defaults to false (read/write). ReadOnly
241
here will force the ReadOnly setting in VolumeMounts.
242
type: boolean
243
required:
244
- diskName
245
- diskURI
246
type: object
247
azureFile:
248
description: azureFile represents an Azure File Service mount
249
on the host and bind mount to the pod.
250
properties:
251
readOnly:
252
description: readOnly defaults to false (read/write). ReadOnly
253
here will force the ReadOnly setting in VolumeMounts.
254
type: boolean
255
secretName:
256
description: secretName is the name of secret that contains
257
Azure Storage Account Name and Key
258
type: string
259
shareName:
260
description: shareName is the azure share Name
261
type: string
262
required:
263
- secretName
264
- shareName
265
type: object
266
cephfs:
267
description: cephFS represents a Ceph FS mount on the host that
268
shares a pod's lifetime
269
properties:
270
monitors:
271
description: 'monitors is Required: Monitors is a collection
272
of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
273
items:
274
type: string
275
type: array
276
path:
277
description: 'path is Optional: Used as the mounted root,
278
rather than the full Ceph tree, default is /'
279
type: string
280
readOnly:
281
description: 'readOnly is Optional: Defaults to false (read/write).
282
ReadOnly here will force the ReadOnly setting in VolumeMounts.
283
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
284
type: boolean
285
secretFile:
286
description: 'secretFile is Optional: SecretFile is the
287
path to key ring for User, default is /etc/ceph/user.secret
288
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
289
type: string
290
secretRef:
291
description: 'secretRef is Optional: SecretRef is reference
292
to the authentication secret for User, default is empty.
293
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
294
properties:
295
name:
296
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
297
TODO: Add other useful fields. apiVersion, kind, uid?'
298
type: string
299
type: object
300
x-kubernetes-map-type: atomic
301
user:
302
description: 'user is optional: User is the rados user name,
303
default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
304
type: string
305
required:
306
- monitors
307
type: object
308
cinder:
309
description: 'cinder represents a cinder volume attached and
310
mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
311
properties:
312
fsType:
313
description: 'fsType is the filesystem type to mount. Must
314
be a filesystem type supported by the host operating system.
315
Examples: "ext4", "xfs", "ntfs". Implicitly inferred to
316
be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
317
type: string
318
readOnly:
319
description: 'readOnly defaults to false (read/write). ReadOnly
320
here will force the ReadOnly setting in VolumeMounts.
321
More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
322
type: boolean
323
secretRef:
324
description: 'secretRef is optional: points to a secret
325
object containing parameters used to connect to OpenStack.'
326
properties:
327
name:
328
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
329
TODO: Add other useful fields. apiVersion, kind, uid?'
330
type: string
331
type: object
332
x-kubernetes-map-type: atomic
333
volumeID:
334
description: 'volumeID used to identify the volume in cinder.
335
More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
336
type: string
337
required:
338
- volumeID
339
type: object
340
configMap:
341
description: configMap represents a configMap that should populate
342
this volume
343
properties:
344
defaultMode:
345
description: 'defaultMode is optional: mode bits used to
346
set permissions on created files by default. Must be an
347
octal value between 0000 and 0777 or a decimal value between
348
0 and 511. YAML accepts both octal and decimal values,
349
JSON requires decimal values for mode bits. Defaults to
350
0644. Directories within the path are not affected by
351
this setting. This might be in conflict with other options
352
that affect the file mode, like fsGroup, and the result
353
can be other mode bits set.'
354
format: int32
355
type: integer
356
items:
357
description: items if unspecified, each key-value pair in
358
the Data field of the referenced ConfigMap will be projected
359
into the volume as a file whose name is the key and content
360
is the value. If specified, the listed keys will be projected
361
into the specified paths, and unlisted keys will not be
362
present. If a key is specified which is not present in
363
the ConfigMap, the volume setup will error unless it is
364
marked optional. Paths must be relative and may not contain
365
the '..' path or start with '..'.
366
items:
367
description: Maps a string key to a path within a volume.
368
properties:
369
key:
370
description: key is the key to project.
371
type: string
372
mode:
373
description: 'mode is Optional: mode bits used to
374
set permissions on this file. Must be an octal value
375
between 0000 and 0777 or a decimal value between
376
0 and 511. YAML accepts both octal and decimal values,
377
JSON requires decimal values for mode bits. If not
378
specified, the volume defaultMode will be used.
379
This might be in conflict with other options that
380
affect the file mode, like fsGroup, and the result
381
can be other mode bits set.'
382
format: int32
383
type: integer
384
path:
385
description: path is the relative path of the file
386
to map the key to. May not be an absolute path.
387
May not contain the path element '..'. May not start
388
with the string '..'.
389
type: string
390
required:
391
- key
392
- path
393
type: object
394
type: array
395
name:
396
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
397
TODO: Add other useful fields. apiVersion, kind, uid?'
398
type: string
399
optional:
400
description: optional specify whether the ConfigMap or its
401
keys must be defined
402
type: boolean
403
type: object
404
x-kubernetes-map-type: atomic
405
csi:
406
description: csi (Container Storage Interface) represents ephemeral
407
storage that is handled by certain external CSI drivers (Beta
408
feature).
409
properties:
410
driver:
411
description: driver is the name of the CSI driver that handles
412
this volume. Consult with your admin for the correct name
413
as registered in the cluster.
414
type: string
415
fsType:
416
description: fsType to mount. Ex. "ext4", "xfs", "ntfs".
417
If not provided, the empty value is passed to the associated
418
CSI driver which will determine the default filesystem
419
to apply.
420
type: string
421
nodePublishSecretRef:
422
description: nodePublishSecretRef is a reference to the
423
secret object containing sensitive information to pass
424
to the CSI driver to complete the CSI NodePublishVolume
425
and NodeUnpublishVolume calls. This field is optional,
426
and may be empty if no secret is required. If the secret
427
object contains more than one secret, all secret references
428
are passed.
429
properties:
430
name:
431
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
432
TODO: Add other useful fields. apiVersion, kind, uid?'
433
type: string
434
type: object
435
x-kubernetes-map-type: atomic
436
readOnly:
437
description: readOnly specifies a read-only configuration
438
for the volume. Defaults to false (read/write).
439
type: boolean
440
volumeAttributes:
441
additionalProperties:
442
type: string
443
description: volumeAttributes stores driver-specific properties
444
that are passed to the CSI driver. Consult your driver's
445
documentation for supported values.
446
type: object
447
required:
448
- driver
449
type: object
450
downwardAPI:
451
description: downwardAPI represents downward API about the pod
452
that should populate this volume
453
properties:
454
defaultMode:
455
description: 'Optional: mode bits to use on created files
456
by default. Must be a Optional: mode bits used to set
457
permissions on created files by default. Must be an octal
458
value between 0000 and 0777 or a decimal value between
459
0 and 511. YAML accepts both octal and decimal values,
460
JSON requires decimal values for mode bits. Defaults to
461
0644. Directories within the path are not affected by
462
this setting. This might be in conflict with other options
463
that affect the file mode, like fsGroup, and the result
464
can be other mode bits set.'
465
format: int32
466
type: integer
467
items:
468
description: Items is a list of downward API volume file
469
items:
470
description: DownwardAPIVolumeFile represents information
471
to create the file containing the pod field
472
properties:
473
fieldRef:
474
description: 'Required: Selects a field of the pod:
475
only annotations, labels, name and namespace are
476
supported.'
477
properties:
478
apiVersion:
479
description: Version of the schema the FieldPath
480
is written in terms of, defaults to "v1".
481
type: string
482
fieldPath:
483
description: Path of the field to select in the
484
specified API version.
485
type: string
486
required:
487
- fieldPath
488
type: object
489
x-kubernetes-map-type: atomic
490
mode:
491
description: 'Optional: mode bits used to set permissions
492
on this file, must be an octal value between 0000
493
and 0777 or a decimal value between 0 and 511. YAML
494
accepts both octal and decimal values, JSON requires
495
decimal values for mode bits. If not specified,
496
the volume defaultMode will be used. This might
497
be in conflict with other options that affect the
498
file mode, like fsGroup, and the result can be other
499
mode bits set.'
500
format: int32
501
type: integer
502
path:
503
description: 'Required: Path is the relative path
504
name of the file to be created. Must not be absolute
505
or contain the ''..'' path. Must be utf-8 encoded.
506
The first item of the relative path must not start
507
with ''..'''
508
type: string
509
resourceFieldRef:
510
description: 'Selects a resource of the container:
511
only resources limits and requests (limits.cpu,
512
limits.memory, requests.cpu and requests.memory)
513
are currently supported.'
514
properties:
515
containerName:
516
description: 'Container name: required for volumes,
517
optional for env vars'
518
type: string
519
divisor:
520
anyOf:
521
- type: integer
522
- type: string
523
description: Specifies the output format of the
524
exposed resources, defaults to "1"
525
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
526
x-kubernetes-int-or-string: true
527
resource:
528
description: 'Required: resource to select'
529
type: string
530
required:
531
- resource
532
type: object
533
x-kubernetes-map-type: atomic
534
required:
535
- path
536
type: object
537
type: array
538
type: object
539
emptyDir:
540
description: 'emptyDir represents a temporary directory that
541
shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
542
properties:
543
medium:
544
description: 'medium represents what type of storage medium
545
should back this directory. The default is "" which means
546
to use the node''s default medium. Must be an empty string
547
(default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
548
type: string
549
sizeLimit:
550
anyOf:
551
- type: integer
552
- type: string
553
description: 'sizeLimit is the total amount of local storage
554
required for this EmptyDir volume. The size limit is also
555
applicable for memory medium. The maximum usage on memory
556
medium EmptyDir would be the minimum value between the
557
SizeLimit specified here and the sum of memory limits
558
of all containers in a pod. The default is nil which means
559
that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir'
560
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
561
x-kubernetes-int-or-string: true
562
type: object
563
ephemeral:
564
description: "ephemeral represents a volume that is handled
565
by a cluster storage driver. The volume's lifecycle is tied
566
to the pod that defines it - it will be created before the
567
pod starts, and deleted when the pod is removed. \n Use this
568
if: a) the volume is only needed while the pod runs, b) features
569
of normal volumes like restoring from snapshot or capacity
570
tracking are needed, c) the storage driver is specified through
571
a storage class, and d) the storage driver supports dynamic
572
volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource
573
for more information on the connection between this volume
574
type and PersistentVolumeClaim). \n Use PersistentVolumeClaim
575
or one of the vendor-specific APIs for volumes that persist
576
for longer than the lifecycle of an individual pod. \n Use
577
CSI for light-weight local ephemeral volumes if the CSI driver
578
is meant to be used that way - see the documentation of the
579
driver for more information. \n A pod can use both types of
580
ephemeral volumes and persistent volumes at the same time."
581
properties:
582
volumeClaimTemplate:
583
description: "Will be used to create a stand-alone PVC to
584
provision the volume. The pod in which this EphemeralVolumeSource
585
is embedded will be the owner of the PVC, i.e. the PVC
586
will be deleted together with the pod. The name of the
587
PVC will be `<pod name>-<volume name>` where `<volume
588
name>` is the name from the `PodSpec.Volumes` array entry.
589
Pod validation will reject the pod if the concatenated
590
name is not valid for a PVC (for example, too long). \n
591
An existing PVC with that name that is not owned by the
592
pod will *not* be used for the pod to avoid using an unrelated
593
volume by mistake. Starting the pod is then blocked until
594
the unrelated PVC is removed. If such a pre-created PVC
595
is meant to be used by the pod, the PVC has to updated
596
with an owner reference to the pod once the pod exists.
597
Normally this should not be necessary, but it may be useful
598
when manually reconstructing a broken cluster. \n This
599
field is read-only and no changes will be made by Kubernetes
600
to the PVC after it has been created. \n Required, must
601
not be nil."
602
properties:
603
metadata:
604
description: May contain labels and annotations that
605
will be copied into the PVC when creating it. No other
606
fields are allowed and will be rejected during validation.
607
type: object
608
spec:
609
description: The specification for the PersistentVolumeClaim.
610
The entire content is copied unchanged into the PVC
611
that gets created from this template. The same fields
612
as in a PersistentVolumeClaim are also valid here.
613
properties:
614
accessModes:
615
description: 'accessModes contains the desired access
616
modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
617
items:
618
type: string
619
type: array
620
dataSource:
621
description: 'dataSource field can be used to specify
622
either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
623
* An existing PVC (PersistentVolumeClaim) If the
624
provisioner or an external controller can support
625
the specified data source, it will create a new
626
volume based on the contents of the specified
627
data source. If the AnyVolumeDataSource feature
628
gate is enabled, this field will always have the
629
same contents as the DataSourceRef field.'
630
properties:
631
apiGroup:
632
description: APIGroup is the group for the resource
633
being referenced. If APIGroup is not specified,
634
the specified Kind must be in the core API
635
group. For any other third-party types, APIGroup
636
is required.
637
type: string
638
kind:
639
description: Kind is the type of resource being
640
referenced
641
type: string
642
name:
643
description: Name is the name of resource being
644
referenced
645
type: string
646
required:
647
- kind
648
- name
649
type: object
650
x-kubernetes-map-type: atomic
651
dataSourceRef:
652
description: 'dataSourceRef specifies the object
653
from which to populate the volume with data, if
654
a non-empty volume is desired. This may be any
655
local object from a non-empty API group (non core
656
object) or a PersistentVolumeClaim object. When
657
this field is specified, volume binding will only
658
succeed if the type of the specified object matches
659
some installed volume populator or dynamic provisioner.
660
This field will replace the functionality of the
661
DataSource field and as such if both fields are
662
non-empty, they must have the same value. For
663
backwards compatibility, both fields (DataSource
664
and DataSourceRef) will be set to the same value
665
automatically if one of them is empty and the
666
other is non-empty. There are two important differences
667
between DataSource and DataSourceRef: * While
668
DataSource only allows two specific types of objects,
669
DataSourceRef allows any non-core object, as well
670
as PersistentVolumeClaim objects. * While DataSource
671
ignores disallowed values (dropping them), DataSourceRef
672
preserves all values, and generates an error if
673
a disallowed value is specified. (Beta) Using
674
this field requires the AnyVolumeDataSource feature
675
gate to be enabled.'
676
properties:
677
apiGroup:
678
description: APIGroup is the group for the resource
679
being referenced. If APIGroup is not specified,
680
the specified Kind must be in the core API
681
group. For any other third-party types, APIGroup
682
is required.
683
type: string
684
kind:
685
description: Kind is the type of resource being
686
referenced
687
type: string
688
name:
689
description: Name is the name of resource being
690
referenced
691
type: string
692
required:
693
- kind
694
- name
695
type: object
696
x-kubernetes-map-type: atomic
697
resources:
698
description: 'resources represents the minimum resources
699
the volume should have. If RecoverVolumeExpansionFailure
700
feature is enabled users are allowed to specify
701
resource requirements that are lower than previous
702
value but must still be higher than capacity recorded
703
in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
704
properties:
705
limits:
706
additionalProperties:
707
anyOf:
708
- type: integer
709
- type: string
710
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
711
x-kubernetes-int-or-string: true
712
description: 'Limits describes the maximum amount
713
of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
714
type: object
715
requests:
716
additionalProperties:
717
anyOf:
718
- type: integer
719
- type: string
720
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
721
x-kubernetes-int-or-string: true
722
description: 'Requests describes the minimum
723
amount of compute resources required. If Requests
724
is omitted for a container, it defaults to
725
Limits if that is explicitly specified, otherwise
726
to an implementation-defined value. More info:
727
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
728
type: object
729
type: object
730
selector:
731
description: selector is a label query over volumes
732
to consider for binding.
733
properties:
734
matchExpressions:
735
description: matchExpressions is a list of label
736
selector requirements. The requirements are
737
ANDed.
738
items:
739
description: A label selector requirement
740
is a selector that contains values, a key,
741
and an operator that relates the key and
742
values.
743
properties:
744
key:
745
description: key is the label key that
746
the selector applies to.
747
type: string
748
operator:
749
description: operator represents a key's
750
relationship to a set of values. Valid
751
operators are In, NotIn, Exists and
752
DoesNotExist.
753
type: string
754
values:
755
description: values is an array of string
756
values. If the operator is In or NotIn,
757
the values array must be non-empty.
758
If the operator is Exists or DoesNotExist,
759
the values array must be empty. This
760
array is replaced during a strategic
761
merge patch.
762
items:
763
type: string
764
type: array
765
required:
766
- key
767
- operator
768
type: object
769
type: array
770
matchLabels:
771
additionalProperties:
772
type: string
773
description: matchLabels is a map of {key,value}
774
pairs. A single {key,value} in the matchLabels
775
map is equivalent to an element of matchExpressions,
776
whose key field is "key", the operator is
777
"In", and the values array contains only "value".
778
The requirements are ANDed.
779
type: object
780
type: object
781
x-kubernetes-map-type: atomic
782
storageClassName:
783
description: 'storageClassName is the name of the
784
StorageClass required by the claim. More info:
785
https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
786
type: string
787
volumeMode:
788
description: volumeMode defines what type of volume
789
is required by the claim. Value of Filesystem
790
is implied when not included in claim spec.
791
type: string
792
volumeName:
793
description: volumeName is the binding reference
794
to the PersistentVolume backing this claim.
795
type: string
796
type: object
797
required:
798
- spec
799
type: object
800
type: object
801
fc:
802
description: fc represents a Fibre Channel resource that is
803
attached to a kubelet's host machine and then exposed to the
804
pod.
805
properties:
806
fsType:
807
description: 'fsType is the filesystem type to mount. Must
808
be a filesystem type supported by the host operating system.
809
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
810
if unspecified. TODO: how do we prevent errors in the
811
filesystem from compromising the machine'
812
type: string
813
lun:
814
description: 'lun is Optional: FC target lun number'
815
format: int32
816
type: integer
817
readOnly:
818
description: 'readOnly is Optional: Defaults to false (read/write).
819
ReadOnly here will force the ReadOnly setting in VolumeMounts.'
820
type: boolean
821
targetWWNs:
822
description: 'targetWWNs is Optional: FC target worldwide
823
names (WWNs)'
824
items:
825
type: string
826
type: array
827
wwids:
828
description: 'wwids Optional: FC volume world wide identifiers
829
(wwids) Either wwids or combination of targetWWNs and
830
lun must be set, but not both simultaneously.'
831
items:
832
type: string
833
type: array
834
type: object
835
flexVolume:
836
description: flexVolume represents a generic volume resource
837
that is provisioned/attached using an exec based plugin.
838
properties:
839
driver:
840
description: driver is the name of the driver to use for
841
this volume.
842
type: string
843
fsType:
844
description: fsType is the filesystem type to mount. Must
845
be a filesystem type supported by the host operating system.
846
Ex. "ext4", "xfs", "ntfs". The default filesystem depends
847
on FlexVolume script.
848
type: string
849
options:
850
additionalProperties:
851
type: string
852
description: 'options is Optional: this field holds extra
853
command options if any.'
854
type: object
855
readOnly:
856
description: 'readOnly is Optional: defaults to false (read/write).
857
ReadOnly here will force the ReadOnly setting in VolumeMounts.'
858
type: boolean
859
secretRef:
860
description: 'secretRef is Optional: secretRef is reference
861
to the secret object containing sensitive information
862
to pass to the plugin scripts. This may be empty if no
863
secret object is specified. If the secret object contains
864
more than one secret, all secrets are passed to the plugin
865
scripts.'
866
properties:
867
name:
868
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
869
TODO: Add other useful fields. apiVersion, kind, uid?'
870
type: string
871
type: object
872
x-kubernetes-map-type: atomic
873
required:
874
- driver
875
type: object
876
flocker:
877
description: flocker represents a Flocker volume attached to
878
a kubelet's host machine. This depends on the Flocker control
879
service being running
880
properties:
881
datasetName:
882
description: datasetName is Name of the dataset stored as
883
metadata -> name on the dataset for Flocker should be
884
considered as deprecated
885
type: string
886
datasetUUID:
887
description: datasetUUID is the UUID of the dataset. This
888
is unique identifier of a Flocker dataset
889
type: string
890
type: object
891
gcePersistentDisk:
892
description: 'gcePersistentDisk represents a GCE Disk resource
893
that is attached to a kubelet''s host machine and then exposed
894
to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
895
properties:
896
fsType:
897
description: 'fsType is filesystem type of the volume that
898
you want to mount. Tip: Ensure that the filesystem type
899
is supported by the host operating system. Examples: "ext4",
900
"xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
901
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
902
TODO: how do we prevent errors in the filesystem from
903
compromising the machine'
904
type: string
905
partition:
906
description: 'partition is the partition in the volume that
907
you want to mount. If omitted, the default is to mount
908
by volume name. Examples: For volume /dev/sda1, you specify
909
the partition as "1". Similarly, the volume partition
910
for /dev/sda is "0" (or you can leave the property empty).
911
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
912
format: int32
913
type: integer
914
pdName:
915
description: 'pdName is unique name of the PD resource in
916
GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
917
type: string
918
readOnly:
919
description: 'readOnly here will force the ReadOnly setting
920
in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
921
type: boolean
922
required:
923
- pdName
924
type: object
925
gitRepo:
926
description: 'gitRepo represents a git repository at a particular
927
revision. DEPRECATED: GitRepo is deprecated. To provision
928
a container with a git repo, mount an EmptyDir into an InitContainer
929
that clones the repo using git, then mount the EmptyDir into
930
the Pod''s container.'
931
properties:
932
directory:
933
description: directory is the target directory name. Must
934
not contain or start with '..'. If '.' is supplied, the
935
volume directory will be the git repository. Otherwise,
936
if specified, the volume will contain the git repository
937
in the subdirectory with the given name.
938
type: string
939
repository:
940
description: repository is the URL
941
type: string
942
revision:
943
description: revision is the commit hash for the specified
944
revision.
945
type: string
946
required:
947
- repository
948
type: object
949
glusterfs:
950
description: 'glusterfs represents a Glusterfs mount on the
951
host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
952
properties:
953
endpoints:
954
description: 'endpoints is the endpoint name that details
955
Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
956
type: string
957
path:
958
description: 'path is the Glusterfs volume path. More info:
959
https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
960
type: string
961
readOnly:
962
description: 'readOnly here will force the Glusterfs volume
963
to be mounted with read-only permissions. Defaults to
964
false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
965
type: boolean
966
required:
967
- endpoints
968
- path
969
type: object
970
hostPath:
971
description: 'hostPath represents a pre-existing file or directory
972
on the host machine that is directly exposed to the container.
973
This is generally used for system agents or other privileged
974
things that are allowed to see the host machine. Most containers
975
will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
976
--- TODO(jonesdl) We need to restrict who can use host directory
977
mounts and who can/can not mount host directories as read/write.'
978
properties:
979
path:
980
description: 'path of the directory on the host. If the
981
path is a symlink, it will follow the link to the real
982
path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
983
type: string
984
type:
985
description: 'type for HostPath Volume Defaults to "" More
986
info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
987
type: string
988
required:
989
- path
990
type: object
991
iscsi:
992
description: 'iscsi represents an ISCSI Disk resource that is
993
attached to a kubelet''s host machine and then exposed to
994
the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
995
properties:
996
chapAuthDiscovery:
997
description: chapAuthDiscovery defines whether support iSCSI
998
Discovery CHAP authentication
999
type: boolean
1000
chapAuthSession:
1001
description: chapAuthSession defines whether support iSCSI
1002
Session CHAP authentication
1003
type: boolean
1004
fsType:
1005
description: 'fsType is the filesystem type of the volume
1006
that you want to mount. Tip: Ensure that the filesystem
1007
type is supported by the host operating system. Examples:
1008
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
1009
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
1010
TODO: how do we prevent errors in the filesystem from
1011
compromising the machine'
1012
type: string
1013
initiatorName:
1014
description: initiatorName is the custom iSCSI Initiator
1015
Name. If initiatorName is specified with iscsiInterface
1016
simultaneously, new iSCSI interface <target portal>:<volume
1017
name> will be created for the connection.
1018
type: string
1019
iqn:
1020
description: iqn is the target iSCSI Qualified Name.
1021
type: string
1022
iscsiInterface:
1023
description: iscsiInterface is the interface Name that uses
1024
an iSCSI transport. Defaults to 'default' (tcp).
1025
type: string
1026
lun:
1027
description: lun represents iSCSI Target Lun number.
1028
format: int32
1029
type: integer
1030
portals:
1031
description: portals is the iSCSI Target Portal List. The
1032
portal is either an IP or ip_addr:port if the port is
1033
other than default (typically TCP ports 860 and 3260).
1034
items:
1035
type: string
1036
type: array
1037
readOnly:
1038
description: readOnly here will force the ReadOnly setting
1039
in VolumeMounts. Defaults to false.
1040
type: boolean
1041
secretRef:
1042
description: secretRef is the CHAP Secret for iSCSI target
1043
and initiator authentication
1044
properties:
1045
name:
1046
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1047
TODO: Add other useful fields. apiVersion, kind, uid?'
1048
type: string
1049
type: object
1050
x-kubernetes-map-type: atomic
1051
targetPortal:
1052
description: targetPortal is iSCSI Target Portal. The Portal
1053
is either an IP or ip_addr:port if the port is other than
1054
default (typically TCP ports 860 and 3260).
1055
type: string
1056
required:
1057
- iqn
1058
- lun
1059
- targetPortal
1060
type: object
1061
name:
1062
description: 'name of the volume. Must be a DNS_LABEL and unique
1063
within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1064
type: string
1065
nfs:
1066
description: 'nfs represents an NFS mount on the host that shares
1067
a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
1068
properties:
1069
path:
1070
description: 'path that is exported by the NFS server. More
1071
info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
1072
type: string
1073
readOnly:
1074
description: 'readOnly here will force the NFS export to
1075
be mounted with read-only permissions. Defaults to false.
1076
More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
1077
type: boolean
1078
server:
1079
description: 'server is the hostname or IP address of the
1080
NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
1081
type: string
1082
required:
1083
- path
1084
- server
1085
type: object
1086
persistentVolumeClaim:
1087
description: 'persistentVolumeClaimVolumeSource represents a
1088
reference to a PersistentVolumeClaim in the same namespace.
1089
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1090
properties:
1091
claimName:
1092
description: 'claimName is the name of a PersistentVolumeClaim
1093
in the same namespace as the pod using this volume. More
1094
info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1095
type: string
1096
readOnly:
1097
description: readOnly Will force the ReadOnly setting in
1098
VolumeMounts. Default false.
1099
type: boolean
1100
required:
1101
- claimName
1102
type: object
1103
photonPersistentDisk:
1104
description: photonPersistentDisk represents a PhotonController
1105
persistent disk attached and mounted on kubelets host machine
1106
properties:
1107
fsType:
1108
description: fsType is the filesystem type to mount. Must
1109
be a filesystem type supported by the host operating system.
1110
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
1111
if unspecified.
1112
type: string
1113
pdID:
1114
description: pdID is the ID that identifies Photon Controller
1115
persistent disk
1116
type: string
1117
required:
1118
- pdID
1119
type: object
1120
portworxVolume:
1121
description: portworxVolume represents a portworx volume attached
1122
and mounted on kubelets host machine
1123
properties:
1124
fsType:
1125
description: fSType represents the filesystem type to mount
1126
Must be a filesystem type supported by the host operating
1127
system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4"
1128
if unspecified.
1129
type: string
1130
readOnly:
1131
description: readOnly defaults to false (read/write). ReadOnly
1132
here will force the ReadOnly setting in VolumeMounts.
1133
type: boolean
1134
volumeID:
1135
description: volumeID uniquely identifies a Portworx volume
1136
type: string
1137
required:
1138
- volumeID
1139
type: object
1140
projected:
1141
description: projected items for all in one resources secrets,
1142
configmaps, and downward API
1143
properties:
1144
defaultMode:
1145
description: defaultMode are the mode bits used to set permissions
1146
on created files by default. Must be an octal value between
1147
0000 and 0777 or a decimal value between 0 and 511. YAML
1148
accepts both octal and decimal values, JSON requires decimal
1149
values for mode bits. Directories within the path are
1150
not affected by this setting. This might be in conflict
1151
with other options that affect the file mode, like fsGroup,
1152
and the result can be other mode bits set.
1153
format: int32
1154
type: integer
1155
sources:
1156
description: sources is the list of volume projections
1157
items:
1158
description: Projection that may be projected along with
1159
other supported volume types
1160
properties:
1161
configMap:
1162
description: configMap information about the configMap
1163
data to project
1164
properties:
1165
items:
1166
description: items if unspecified, each key-value
1167
pair in the Data field of the referenced ConfigMap
1168
will be projected into the volume as a file
1169
whose name is the key and content is the value.
1170
If specified, the listed keys will be projected
1171
into the specified paths, and unlisted keys
1172
will not be present. If a key is specified which
1173
is not present in the ConfigMap, the volume
1174
setup will error unless it is marked optional.
1175
Paths must be relative and may not contain the
1176
'..' path or start with '..'.
1177
items:
1178
description: Maps a string key to a path within
1179
a volume.
1180
properties:
1181
key:
1182
description: key is the key to project.
1183
type: string
1184
mode:
1185
description: 'mode is Optional: mode bits
1186
used to set permissions on this file.
1187
Must be an octal value between 0000 and
1188
0777 or a decimal value between 0 and
1189
511. YAML accepts both octal and decimal
1190
values, JSON requires decimal values for
1191
mode bits. If not specified, the volume
1192
defaultMode will be used. This might be
1193
in conflict with other options that affect
1194
the file mode, like fsGroup, and the result
1195
can be other mode bits set.'
1196
format: int32
1197
type: integer
1198
path:
1199
description: path is the relative path of
1200
the file to map the key to. May not be
1201
an absolute path. May not contain the
1202
path element '..'. May not start with
1203
the string '..'.
1204
type: string
1205
required:
1206
- key
1207
- path
1208
type: object
1209
type: array
1210
name:
1211
description: 'Name of the referent. More info:
1212
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1213
TODO: Add other useful fields. apiVersion, kind,
1214
uid?'
1215
type: string
1216
optional:
1217
description: optional specify whether the ConfigMap
1218
or its keys must be defined
1219
type: boolean
1220
type: object
1221
x-kubernetes-map-type: atomic
1222
downwardAPI:
1223
description: downwardAPI information about the downwardAPI
1224
data to project
1225
properties:
1226
items:
1227
description: Items is a list of DownwardAPIVolume
1228
file
1229
items:
1230
description: DownwardAPIVolumeFile represents
1231
information to create the file containing
1232
the pod field
1233
properties:
1234
fieldRef:
1235
description: 'Required: Selects a field
1236
of the pod: only annotations, labels,
1237
name and namespace are supported.'
1238
properties:
1239
apiVersion:
1240
description: Version of the schema the
1241
FieldPath is written in terms of,
1242
defaults to "v1".
1243
type: string
1244
fieldPath:
1245
description: Path of the field to select
1246
in the specified API version.
1247
type: string
1248
required:
1249
- fieldPath
1250
type: object
1251
x-kubernetes-map-type: atomic
1252
mode:
1253
description: 'Optional: mode bits used to
1254
set permissions on this file, must be
1255
an octal value between 0000 and 0777 or
1256
a decimal value between 0 and 511. YAML
1257
accepts both octal and decimal values,
1258
JSON requires decimal values for mode
1259
bits. If not specified, the volume defaultMode
1260
will be used. This might be in conflict
1261
with other options that affect the file
1262
mode, like fsGroup, and the result can
1263
be other mode bits set.'
1264
format: int32
1265
type: integer
1266
path:
1267
description: 'Required: Path is the relative
1268
path name of the file to be created. Must
1269
not be absolute or contain the ''..''
1270
path. Must be utf-8 encoded. The first
1271
item of the relative path must not start
1272
with ''..'''
1273
type: string
1274
resourceFieldRef:
1275
description: 'Selects a resource of the
1276
container: only resources limits and requests
1277
(limits.cpu, limits.memory, requests.cpu
1278
and requests.memory) are currently supported.'
1279
properties:
1280
containerName:
1281
description: 'Container name: required
1282
for volumes, optional for env vars'
1283
type: string
1284
divisor:
1285
anyOf:
1286
- type: integer
1287
- type: string
1288
description: Specifies the output format
1289
of the exposed resources, defaults
1290
to "1"
1291
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1292
x-kubernetes-int-or-string: true
1293
resource:
1294
description: 'Required: resource to
1295
select'
1296
type: string
1297
required:
1298
- resource
1299
type: object
1300
x-kubernetes-map-type: atomic
1301
required:
1302
- path
1303
type: object
1304
type: array
1305
type: object
1306
secret:
1307
description: secret information about the secret data
1308
to project
1309
properties:
1310
items:
1311
description: items if unspecified, each key-value
1312
pair in the Data field of the referenced Secret
1313
will be projected into the volume as a file
1314
whose name is the key and content is the value.
1315
If specified, the listed keys will be projected
1316
into the specified paths, and unlisted keys
1317
will not be present. If a key is specified which
1318
is not present in the Secret, the volume setup
1319
will error unless it is marked optional. Paths
1320
must be relative and may not contain the '..'
1321
path or start with '..'.
1322
items:
1323
description: Maps a string key to a path within
1324
a volume.
1325
properties:
1326
key:
1327
description: key is the key to project.
1328
type: string
1329
mode:
1330
description: 'mode is Optional: mode bits
1331
used to set permissions on this file.
1332
Must be an octal value between 0000 and
1333
0777 or a decimal value between 0 and
1334
511. YAML accepts both octal and decimal
1335
values, JSON requires decimal values for
1336
mode bits. If not specified, the volume
1337
defaultMode will be used. This might be
1338
in conflict with other options that affect
1339
the file mode, like fsGroup, and the result
1340
can be other mode bits set.'
1341
format: int32
1342
type: integer
1343
path:
1344
description: path is the relative path of
1345
the file to map the key to. May not be
1346
an absolute path. May not contain the
1347
path element '..'. May not start with
1348
the string '..'.
1349
type: string
1350
required:
1351
- key
1352
- path
1353
type: object
1354
type: array
1355
name:
1356
description: 'Name of the referent. More info:
1357
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1358
TODO: Add other useful fields. apiVersion, kind,
1359
uid?'
1360
type: string
1361
optional:
1362
description: optional field specify whether the
1363
Secret or its key must be defined
1364
type: boolean
1365
type: object
1366
x-kubernetes-map-type: atomic
1367
serviceAccountToken:
1368
description: serviceAccountToken is information about
1369
the serviceAccountToken data to project
1370
properties:
1371
audience:
1372
description: audience is the intended audience
1373
of the token. A recipient of a token must identify
1374
itself with an identifier specified in the audience
1375
of the token, and otherwise should reject the
1376
token. The audience defaults to the identifier
1377
of the apiserver.
1378
type: string
1379
expirationSeconds:
1380
description: expirationSeconds is the requested
1381
duration of validity of the service account
1382
token. As the token approaches expiration, the
1383
kubelet volume plugin will proactively rotate
1384
the service account token. The kubelet will
1385
start trying to rotate the token if the token
1386
is older than 80 percent of its time to live
1387
or if the token is older than 24 hours.Defaults
1388
to 1 hour and must be at least 10 minutes.
1389
format: int64
1390
type: integer
1391
path:
1392
description: path is the path relative to the
1393
mount point of the file to project the token
1394
into.
1395
type: string
1396
required:
1397
- path
1398
type: object
1399
type: object
1400
type: array
1401
type: object
1402
quobyte:
1403
description: quobyte represents a Quobyte mount on the host
1404
that shares a pod's lifetime
1405
properties:
1406
group:
1407
description: group to map volume access to Default is no
1408
group
1409
type: string
1410
readOnly:
1411
description: readOnly here will force the Quobyte volume
1412
to be mounted with read-only permissions. Defaults to
1413
false.
1414
type: boolean
1415
registry:
1416
description: registry represents a single or multiple Quobyte
1417
Registry services specified as a string as host:port pair
1418
(multiple entries are separated with commas) which acts
1419
as the central registry for volumes
1420
type: string
1421
tenant:
1422
description: tenant owning the given Quobyte volume in the
1423
Backend Used with dynamically provisioned Quobyte volumes,
1424
value is set by the plugin
1425
type: string
1426
user:
1427
description: user to map volume access to Defaults to serivceaccount
1428
user
1429
type: string
1430
volume:
1431
description: volume is a string that references an already
1432
created Quobyte volume by name.
1433
type: string
1434
required:
1435
- registry
1436
- volume
1437
type: object
1438
rbd:
1439
description: 'rbd represents a Rados Block Device mount on the
1440
host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
1441
properties:
1442
fsType:
1443
description: 'fsType is the filesystem type of the volume
1444
that you want to mount. Tip: Ensure that the filesystem
1445
type is supported by the host operating system. Examples:
1446
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
1447
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
1448
TODO: how do we prevent errors in the filesystem from
1449
compromising the machine'
1450
type: string
1451
image:
1452
description: 'image is the rados image name. More info:
1453
https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1454
type: string
1455
keyring:
1456
description: 'keyring is the path to key ring for RBDUser.
1457
Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1458
type: string
1459
monitors:
1460
description: 'monitors is a collection of Ceph monitors.
1461
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1462
items:
1463
type: string
1464
type: array
1465
pool:
1466
description: 'pool is the rados pool name. Default is rbd.
1467
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1468
type: string
1469
readOnly:
1470
description: 'readOnly here will force the ReadOnly setting
1471
in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1472
type: boolean
1473
secretRef:
1474
description: 'secretRef is name of the authentication secret
1475
for RBDUser. If provided overrides keyring. Default is
1476
nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1477
properties:
1478
name:
1479
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1480
TODO: Add other useful fields. apiVersion, kind, uid?'
1481
type: string
1482
type: object
1483
x-kubernetes-map-type: atomic
1484
user:
1485
description: 'user is the rados user name. Default is admin.
1486
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
1487
type: string
1488
required:
1489
- image
1490
- monitors
1491
type: object
1492
scaleIO:
1493
description: scaleIO represents a ScaleIO persistent volume
1494
attached and mounted on Kubernetes nodes.
1495
properties:
1496
fsType:
1497
description: fsType is the filesystem type to mount. Must
1498
be a filesystem type supported by the host operating system.
1499
Ex. "ext4", "xfs", "ntfs". Default is "xfs".
1500
type: string
1501
gateway:
1502
description: gateway is the host address of the ScaleIO
1503
API Gateway.
1504
type: string
1505
protectionDomain:
1506
description: protectionDomain is the name of the ScaleIO
1507
Protection Domain for the configured storage.
1508
type: string
1509
readOnly:
1510
description: readOnly Defaults to false (read/write). ReadOnly
1511
here will force the ReadOnly setting in VolumeMounts.
1512
type: boolean
1513
secretRef:
1514
description: secretRef references to the secret for ScaleIO
1515
user and other sensitive information. If this is not provided,
1516
Login operation will fail.
1517
properties:
1518
name:
1519
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1520
TODO: Add other useful fields. apiVersion, kind, uid?'
1521
type: string
1522
type: object
1523
x-kubernetes-map-type: atomic
1524
sslEnabled:
1525
description: sslEnabled Flag enable/disable SSL communication
1526
with Gateway, default false
1527
type: boolean
1528
storageMode:
1529
description: storageMode indicates whether the storage for
1530
a volume should be ThickProvisioned or ThinProvisioned.
1531
Default is ThinProvisioned.
1532
type: string
1533
storagePool:
1534
description: storagePool is the ScaleIO Storage Pool associated
1535
with the protection domain.
1536
type: string
1537
system:
1538
description: system is the name of the storage system as
1539
configured in ScaleIO.
1540
type: string
1541
volumeName:
1542
description: volumeName is the name of a volume already
1543
created in the ScaleIO system that is associated with
1544
this volume source.
1545
type: string
1546
required:
1547
- gateway
1548
- secretRef
1549
- system
1550
type: object
1551
secret:
1552
description: 'secret represents a secret that should populate
1553
this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
1554
properties:
1555
defaultMode:
1556
description: 'defaultMode is Optional: mode bits used to
1557
set permissions on created files by default. Must be an
1558
octal value between 0000 and 0777 or a decimal value between
1559
0 and 511. YAML accepts both octal and decimal values,
1560
JSON requires decimal values for mode bits. Defaults to
1561
0644. Directories within the path are not affected by
1562
this setting. This might be in conflict with other options
1563
that affect the file mode, like fsGroup, and the result
1564
can be other mode bits set.'
1565
format: int32
1566
type: integer
1567
items:
1568
description: items If unspecified, each key-value pair in
1569
the Data field of the referenced Secret will be projected
1570
into the volume as a file whose name is the key and content
1571
is the value. If specified, the listed keys will be projected
1572
into the specified paths, and unlisted keys will not be
1573
present. If a key is specified which is not present in
1574
the Secret, the volume setup will error unless it is marked
1575
optional. Paths must be relative and may not contain the
1576
'..' path or start with '..'.
1577
items:
1578
description: Maps a string key to a path within a volume.
1579
properties:
1580
key:
1581
description: key is the key to project.
1582
type: string
1583
mode:
1584
description: 'mode is Optional: mode bits used to
1585
set permissions on this file. Must be an octal value
1586
between 0000 and 0777 or a decimal value between
1587
0 and 511. YAML accepts both octal and decimal values,
1588
JSON requires decimal values for mode bits. If not
1589
specified, the volume defaultMode will be used.
1590
This might be in conflict with other options that
1591
affect the file mode, like fsGroup, and the result
1592
can be other mode bits set.'
1593
format: int32
1594
type: integer
1595
path:
1596
description: path is the relative path of the file
1597
to map the key to. May not be an absolute path.
1598
May not contain the path element '..'. May not start
1599
with the string '..'.
1600
type: string
1601
required:
1602
- key
1603
- path
1604
type: object
1605
type: array
1606
optional:
1607
description: optional field specify whether the Secret or
1608
its keys must be defined
1609
type: boolean
1610
secretName:
1611
description: 'secretName is the name of the secret in the
1612
pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
1613
type: string
1614
type: object
1615
storageos:
1616
description: storageOS represents a StorageOS volume attached
1617
and mounted on Kubernetes nodes.
1618
properties:
1619
fsType:
1620
description: fsType is the filesystem type to mount. Must
1621
be a filesystem type supported by the host operating system.
1622
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
1623
if unspecified.
1624
type: string
1625
readOnly:
1626
description: readOnly defaults to false (read/write). ReadOnly
1627
here will force the ReadOnly setting in VolumeMounts.
1628
type: boolean
1629
secretRef:
1630
description: secretRef specifies the secret to use for obtaining
1631
the StorageOS API credentials. If not specified, default
1632
values will be attempted.
1633
properties:
1634
name:
1635
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1636
TODO: Add other useful fields. apiVersion, kind, uid?'
1637
type: string
1638
type: object
1639
x-kubernetes-map-type: atomic
1640
volumeName:
1641
description: volumeName is the human-readable name of the
1642
StorageOS volume. Volume names are only unique within
1643
a namespace.
1644
type: string
1645
volumeNamespace:
1646
description: volumeNamespace specifies the scope of the
1647
volume within StorageOS. If no namespace is specified
1648
then the Pod's namespace will be used. This allows the
1649
Kubernetes name scoping to be mirrored within StorageOS
1650
for tighter integration. Set VolumeName to any name to
1651
override the default behaviour. Set to "default" if you
1652
are not using namespaces within StorageOS. Namespaces
1653
that do not pre-exist within StorageOS will be created.
1654
type: string
1655
type: object
1656
vsphereVolume:
1657
description: vsphereVolume represents a vSphere volume attached
1658
and mounted on kubelets host machine
1659
properties:
1660
fsType:
1661
description: fsType is filesystem type to mount. Must be
1662
a filesystem type supported by the host operating system.
1663
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
1664
if unspecified.
1665
type: string
1666
storagePolicyID:
1667
description: storagePolicyID is the storage Policy Based
1668
Management (SPBM) profile ID associated with the StoragePolicyName.
1669
type: string
1670
storagePolicyName:
1671
description: storagePolicyName is the storage Policy Based
1672
Management (SPBM) profile name.
1673
type: string
1674
volumePath:
1675
description: volumePath is the path that identifies vSphere
1676
volume vmdk
1677
type: string
1678
required:
1679
- volumePath
1680
type: object
1681
required:
1682
- name
1683
type: object
1684
type: array
1685
required:
1686
- config
1687
- name
1688
- type
1689
type: object
1690
type: object
1691
served: true
1692
storage: true
1693
1694