github.com/operator-framework/operator-lifecycle-manager@v0.30.0/deploy/upstream/manifests/0.13.0/0000_50_olm_05-subscription.crd.yaml (about) 1 --- 2 # Source: olm/templates/0000_50_olm_05-subscription.crd.yaml 3 apiVersion: apiextensions.k8s.io/v1beta1 4 kind: CustomResourceDefinition 5 metadata: 6 name: subscriptions.operators.coreos.com 7 annotations: 8 displayName: Subscription 9 description: Subscribes service catalog to a source and channel to recieve updates for packages. 10 spec: 11 group: operators.coreos.com 12 version: v1alpha1 13 versions: 14 - name: v1alpha1 15 served: true 16 storage: true 17 scope: Namespaced 18 names: 19 plural: subscriptions 20 singular: subscription 21 kind: Subscription 22 listKind: SubscriptionList 23 shortNames: 24 - sub 25 - subs 26 categories: 27 - olm 28 additionalPrinterColumns: 29 - name: Package 30 type: string 31 description: The package subscribed to 32 JSONPath: .spec.name 33 - name: Source 34 type: string 35 description: The catalog source for the specified package 36 JSONPath: .spec.source 37 - name: Channel 38 type: string 39 description: The channel of updates to subscribe to 40 JSONPath: .spec.channel 41 subresources: 42 # status enables the status subresource. 43 status: {} 44 validation: 45 openAPIV3Schema: 46 description: Subscribes service catalog to a source and channel to recieve updates for packages. 47 properties: 48 spec: 49 type: object 50 description: Spec for a Subscription 51 required: 52 - source 53 - name 54 properties: 55 source: 56 type: string 57 description: Name of a CatalogSource that defines where and how to find the channel 58 sourceNamespace: 59 type: string 60 description: The Kubernetes namespace where the CatalogSource used is located 61 name: 62 type: string 63 description: Name of the package that defines the application 64 channel: 65 type: string 66 description: Name of the channel to track 67 startingCSV: 68 type: string 69 description: Name of the AppType that this subscription tracks 70 installPlanApproval: 71 type: string 72 description: Approval mode for emitted InstallPlans 73 enum: 74 - Manual 75 - Automatic 76 config: 77 type: object 78 description: Operator Pod configuration, it is applied to the operator during install. It has higher precedence than the same configuration specified in a ClusterServiveVersion. 79 properties: 80 env: 81 type: array 82 description: List of environment variables to set in the container 83 items: 84 type: object 85 description: EnvVar represents an environment variable present in a Container 86 required: 87 - name 88 properties: 89 name: 90 type: string 91 description: EnvVar represents an environment variable present in a Container 92 value: 93 type: string 94 description: Value of the environment variable specified 95 valueFrom: 96 type: object 97 description: Source for the environment variable's value. Cannot be used if value is not empty 98 properties: 99 configMapKeyRef: 100 type: object 101 description: Selects a key of a ConfigMap 102 required: 103 - key 104 properties: 105 key: 106 type: string 107 description: The key to select 108 name: 109 type: string 110 description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" 111 optional: 112 type: boolean 113 description: Specify whether the ConfigMap or its key must be defined 114 fieldRef: 115 type: object 116 description: "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP" 117 required: 118 - fieldPath 119 properties: 120 apiVersion: 121 type: string 122 description: Version of the schema the FieldPath is written in terms of, defaults to v1 123 fieldPath: 124 type: string 125 description: Path of the field to select in the specified API version 126 resourceFieldRef: 127 type: object 128 description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." 129 required: 130 - resource 131 properties: 132 containerName: 133 type: string 134 description: "Container name: required for volumes, optional for env vars" 135 divisor: 136 type: string 137 description: Specifies the output format of the exposed resources, defaults to 1 138 resource: 139 type: string 140 description: "Required: resource to select" 141 secretKeyRef: 142 type: object 143 description: Selects a key of a secret in the pod's namespace 144 required: 145 - key 146 properties: 147 key: 148 type: string 149 description: The key of the secret to select from. Must be a valid secret key 150 name: 151 type: string 152 description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" 153 optional: 154 type: boolean 155 description: Specify whether the Secret or its key must be defined 156 envFrom: 157 type: array 158 description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated" 159 items: 160 type: object 161 description: EnvFromSource represents the source of a set of ConfigMaps 162 properties: 163 configMapRef: 164 type: object 165 description: "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables" 166 properties: 167 name: 168 type: string 169 description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" 170 optional: 171 type: boolean 172 description: Specify whether the ConfigMap must be defined 173 prefix: 174 type: string 175 description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER 176 secretRef: 177 type: object 178 description: "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables" 179 properties: 180 name: 181 type: string 182 description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" 183 optional: 184 type: boolean 185 description: Specify whether the Secret must be defined 186 187 volumeMounts: 188 description: List of VolumeMounts to set in the container. 189 items: 190 description: VolumeMount describes a mounting of a Volume within 191 a container. 192 properties: 193 mountPath: 194 description: Path within the container at which the volume 195 should be mounted. Must not contain ':'. 196 type: string 197 mountPropagation: 198 description: mountPropagation determines how mounts are 199 propagated from the host to container and the other way 200 around. When not set, MountPropagationNone is used. This 201 field is beta in 1.10. 202 type: string 203 name: 204 description: This must match the Name of a Volume. 205 type: string 206 readOnly: 207 description: Mounted read-only if true, read-write otherwise 208 (false or unspecified). Defaults to false. 209 type: boolean 210 subPath: 211 description: Path within the volume from which the container's 212 volume should be mounted. Defaults to "" (volume's root). 213 type: string 214 subPathExpr: 215 description: Expanded path within the volume from which 216 the container's volume should be mounted. Behaves similarly 217 to SubPath but environment variable references $(VAR_NAME) 218 are expanded using the container's environment. Defaults 219 to "" (volume's root). SubPathExpr and SubPath are mutually 220 exclusive. This field is beta in 1.15. 221 type: string 222 required: 223 - mountPath 224 - name 225 type: object 226 type: array 227 volumes: 228 description: List of Volumes to set in the podSpec. 229 items: 230 description: Volume represents a named volume in a pod that 231 may be accessed by any container in the pod. 232 properties: 233 awsElasticBlockStore: 234 description: 'AWSElasticBlockStore represents an AWS Disk 235 resource that is attached to a kubelet''s host machine 236 and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 237 properties: 238 fsType: 239 description: 'Filesystem type of the volume that you 240 want to mount. Tip: Ensure that the filesystem type 241 is supported by the host operating system. Examples: 242 "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" 243 if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore 244 TODO: how do we prevent errors in the filesystem from 245 compromising the machine' 246 type: string 247 partition: 248 description: 'The partition in the volume that you want 249 to mount. If omitted, the default is to mount by volume 250 name. Examples: For volume /dev/sda1, you specify 251 the partition as "1". Similarly, the volume partition 252 for /dev/sda is "0" (or you can leave the property 253 empty).' 254 format: int32 255 type: integer 256 readOnly: 257 description: 'Specify "true" to force and set the ReadOnly 258 property in VolumeMounts to "true". If omitted, the 259 default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 260 type: boolean 261 volumeID: 262 description: 'Unique ID of the persistent disk resource 263 in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 264 type: string 265 required: 266 - volumeID 267 type: object 268 azureDisk: 269 description: AzureDisk represents an Azure Data Disk mount 270 on the host and bind mount to the pod. 271 properties: 272 cachingMode: 273 description: 'Host Caching mode: None, Read Only, Read 274 Write.' 275 type: string 276 diskName: 277 description: The Name of the data disk in the blob storage 278 type: string 279 diskURI: 280 description: The URI the data disk in the blob storage 281 type: string 282 fsType: 283 description: Filesystem type to mount. Must be a filesystem 284 type supported by the host operating system. Ex. "ext4", 285 "xfs", "ntfs". Implicitly inferred to be "ext4" if 286 unspecified. 287 type: string 288 kind: 289 description: 'Expected values Shared: multiple blob 290 disks per storage account Dedicated: single blob 291 disk per storage account Managed: azure managed data 292 disk (only in managed availability set). defaults 293 to shared' 294 type: string 295 readOnly: 296 description: Defaults to false (read/write). ReadOnly 297 here will force the ReadOnly setting in VolumeMounts. 298 type: boolean 299 required: 300 - diskName 301 - diskURI 302 type: object 303 azureFile: 304 description: AzureFile represents an Azure File Service 305 mount on the host and bind mount to the pod. 306 properties: 307 readOnly: 308 description: Defaults to false (read/write). ReadOnly 309 here will force the ReadOnly setting in VolumeMounts. 310 type: boolean 311 secretName: 312 description: the name of secret that contains Azure 313 Storage Account Name and Key 314 type: string 315 shareName: 316 description: Share Name 317 type: string 318 required: 319 - secretName 320 - shareName 321 type: object 322 cephfs: 323 description: CephFS represents a Ceph FS mount on the host 324 that shares a pod's lifetime 325 properties: 326 monitors: 327 description: 'Required: Monitors is a collection of 328 Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 329 items: 330 type: string 331 type: array 332 path: 333 description: 'Optional: Used as the mounted root, rather 334 than the full Ceph tree, default is /' 335 type: string 336 readOnly: 337 description: 'Optional: Defaults to false (read/write). 338 ReadOnly here will force the ReadOnly setting in VolumeMounts. 339 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 340 type: boolean 341 secretFile: 342 description: 'Optional: SecretFile is the path to key 343 ring for User, default is /etc/ceph/user.secret More 344 info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 345 type: string 346 secretRef: 347 description: 'Optional: SecretRef is reference to the 348 authentication secret for User, default is empty. 349 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 350 properties: 351 name: 352 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 353 TODO: Add other useful fields. apiVersion, kind, 354 uid?' 355 type: string 356 type: object 357 user: 358 description: 'Optional: User is the rados user name, 359 default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 360 type: string 361 required: 362 - monitors 363 type: object 364 cinder: 365 description: 'Cinder represents a cinder volume attached 366 and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 367 properties: 368 fsType: 369 description: 'Filesystem type to mount. Must be a filesystem 370 type supported by the host operating system. Examples: 371 "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" 372 if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 373 type: string 374 readOnly: 375 description: 'Optional: Defaults to false (read/write). 376 ReadOnly here will force the ReadOnly setting in VolumeMounts. 377 More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 378 type: boolean 379 secretRef: 380 description: 'Optional: points to a secret object containing 381 parameters used to connect to OpenStack.' 382 properties: 383 name: 384 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 385 TODO: Add other useful fields. apiVersion, kind, 386 uid?' 387 type: string 388 type: object 389 volumeID: 390 description: 'volume id used to identify the volume 391 in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 392 type: string 393 required: 394 - volumeID 395 type: object 396 configMap: 397 description: ConfigMap represents a configMap that should 398 populate this volume 399 properties: 400 defaultMode: 401 description: 'Optional: mode bits to use on created 402 files by default. Must be a value between 0 and 0777. 403 Defaults to 0644. Directories within the path are 404 not affected by this setting. This might be in conflict 405 with other options that affect the file mode, like 406 fsGroup, and the result can be other mode bits set.' 407 format: int32 408 type: integer 409 items: 410 description: If unspecified, each key-value pair in 411 the Data field of the referenced ConfigMap will be 412 projected into the volume as a file whose name is 413 the key and content is the value. If specified, the 414 listed keys will be projected into the specified paths, 415 and unlisted keys will not be present. If a key is 416 specified which is not present in the ConfigMap, the 417 volume setup will error unless it is marked optional. 418 Paths must be relative and may not contain the '..' 419 path or start with '..'. 420 items: 421 description: Maps a string key to a path within a 422 volume. 423 properties: 424 key: 425 description: The key to project. 426 type: string 427 mode: 428 description: 'Optional: mode bits to use on this 429 file, must be a value between 0 and 0777. If 430 not specified, the volume defaultMode will be 431 used. This might be in conflict with other options 432 that affect the file mode, like fsGroup, and 433 the result can be other mode bits set.' 434 format: int32 435 type: integer 436 path: 437 description: The relative path of the file to 438 map the key to. May not be an absolute path. 439 May not contain the path element '..'. May not 440 start with the string '..'. 441 type: string 442 required: 443 - key 444 - path 445 type: object 446 type: array 447 name: 448 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 449 TODO: Add other useful fields. apiVersion, kind, uid?' 450 type: string 451 optional: 452 description: Specify whether the ConfigMap or its keys 453 must be defined 454 type: boolean 455 type: object 456 csi: 457 description: CSI (Container Storage Interface) represents 458 storage that is handled by an external CSI driver (Alpha 459 feature). 460 properties: 461 driver: 462 description: Driver is the name of the CSI driver that 463 handles this volume. Consult with your admin for the 464 correct name as registered in the cluster. 465 type: string 466 fsType: 467 description: Filesystem type to mount. Ex. "ext4", "xfs", 468 "ntfs". If not provided, the empty value is passed 469 to the associated CSI driver which will determine 470 the default filesystem to apply. 471 type: string 472 nodePublishSecretRef: 473 description: NodePublishSecretRef is a reference to 474 the secret object containing sensitive information 475 to pass to the CSI driver to complete the CSI NodePublishVolume 476 and NodeUnpublishVolume calls. This field is optional, 477 and may be empty if no secret is required. If the 478 secret object contains more than one secret, all secret 479 references are passed. 480 properties: 481 name: 482 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 483 TODO: Add other useful fields. apiVersion, kind, 484 uid?' 485 type: string 486 type: object 487 readOnly: 488 description: Specifies a read-only configuration for 489 the volume. Defaults to false (read/write). 490 type: boolean 491 volumeAttributes: 492 additionalProperties: 493 type: string 494 description: VolumeAttributes stores driver-specific 495 properties that are passed to the CSI driver. Consult 496 your driver's documentation for supported values. 497 type: object 498 required: 499 - driver 500 type: object 501 downwardAPI: 502 description: DownwardAPI represents downward API about the 503 pod that should populate this volume 504 properties: 505 defaultMode: 506 description: 'Optional: mode bits to use on created 507 files by default. Must be a value between 0 and 0777. 508 Defaults to 0644. Directories within the path are 509 not affected by this setting. This might be in conflict 510 with other options that affect the file mode, like 511 fsGroup, and the result can be other mode bits set.' 512 format: int32 513 type: integer 514 items: 515 description: Items is a list of downward API volume 516 file 517 items: 518 description: DownwardAPIVolumeFile represents information 519 to create the file containing the pod field 520 properties: 521 fieldRef: 522 description: 'Required: Selects a field of the 523 pod: only annotations, labels, name and namespace 524 are supported.' 525 properties: 526 apiVersion: 527 description: Version of the schema the FieldPath 528 is written in terms of, defaults to "v1". 529 type: string 530 fieldPath: 531 description: Path of the field to select in 532 the specified API version. 533 type: string 534 required: 535 - fieldPath 536 type: object 537 mode: 538 description: 'Optional: mode bits to use on this 539 file, must be a value between 0 and 0777. If 540 not specified, the volume defaultMode will be 541 used. This might be in conflict with other options 542 that affect the file mode, like fsGroup, and 543 the result can be other mode bits set.' 544 format: int32 545 type: integer 546 path: 547 description: 'Required: Path is the relative 548 path name of the file to be created. Must not 549 be absolute or contain the ''..'' path. Must 550 be utf-8 encoded. The first item of the relative 551 path must not start with ''..''' 552 type: string 553 resourceFieldRef: 554 description: 'Selects a resource of the container: 555 only resources limits and requests (limits.cpu, 556 limits.memory, requests.cpu and requests.memory) 557 are currently supported.' 558 properties: 559 containerName: 560 description: 'Container name: required for 561 volumes, optional for env vars' 562 type: string 563 divisor: 564 description: Specifies the output format of 565 the exposed resources, defaults to "1" 566 type: string 567 resource: 568 description: 'Required: resource to select' 569 type: string 570 required: 571 - resource 572 type: object 573 required: 574 - path 575 type: object 576 type: array 577 type: object 578 emptyDir: 579 description: 'EmptyDir represents a temporary directory 580 that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' 581 properties: 582 medium: 583 description: 'What type of storage medium should back 584 this directory. The default is "" which means to use 585 the node''s default medium. Must be an empty string 586 (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' 587 type: string 588 sizeLimit: 589 description: 'Total amount of local storage required 590 for this EmptyDir volume. The size limit is also applicable 591 for memory medium. The maximum usage on memory medium 592 EmptyDir would be the minimum value between the SizeLimit 593 specified here and the sum of memory limits of all 594 containers in a pod. The default is nil which means 595 that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir' 596 type: string 597 type: object 598 fc: 599 description: FC represents a Fibre Channel resource that 600 is attached to a kubelet's host machine and then exposed 601 to the pod. 602 properties: 603 fsType: 604 description: 'Filesystem type to mount. Must be a filesystem 605 type supported by the host operating system. Ex. "ext4", 606 "xfs", "ntfs". Implicitly inferred to be "ext4" if 607 unspecified. TODO: how do we prevent errors in the 608 filesystem from compromising the machine' 609 type: string 610 lun: 611 description: 'Optional: FC target lun number' 612 format: int32 613 type: integer 614 readOnly: 615 description: 'Optional: Defaults to false (read/write). 616 ReadOnly here will force the ReadOnly setting in VolumeMounts.' 617 type: boolean 618 targetWWNs: 619 description: 'Optional: FC target worldwide names (WWNs)' 620 items: 621 type: string 622 type: array 623 wwids: 624 description: 'Optional: FC volume world wide identifiers 625 (wwids) Either wwids or combination of targetWWNs 626 and lun must be set, but not both simultaneously.' 627 items: 628 type: string 629 type: array 630 type: object 631 flexVolume: 632 description: FlexVolume represents a generic volume resource 633 that is provisioned/attached using an exec based plugin. 634 properties: 635 driver: 636 description: Driver is the name of the driver to use 637 for this volume. 638 type: string 639 fsType: 640 description: Filesystem type to mount. Must be a filesystem 641 type supported by the host operating system. Ex. "ext4", 642 "xfs", "ntfs". The default filesystem depends on FlexVolume 643 script. 644 type: string 645 options: 646 additionalProperties: 647 type: string 648 description: 'Optional: Extra command options if any.' 649 type: object 650 readOnly: 651 description: 'Optional: Defaults to false (read/write). 652 ReadOnly here will force the ReadOnly setting in VolumeMounts.' 653 type: boolean 654 secretRef: 655 description: 'Optional: SecretRef is reference to the 656 secret object containing sensitive information to 657 pass to the plugin scripts. This may be empty if no 658 secret object is specified. If the secret object contains 659 more than one secret, all secrets are passed to the 660 plugin scripts.' 661 properties: 662 name: 663 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 664 TODO: Add other useful fields. apiVersion, kind, 665 uid?' 666 type: string 667 type: object 668 required: 669 - driver 670 type: object 671 flocker: 672 description: Flocker represents a Flocker volume attached 673 to a kubelet's host machine. This depends on the Flocker 674 control service being running 675 properties: 676 datasetName: 677 description: Name of the dataset stored as metadata 678 -> name on the dataset for Flocker should be considered 679 as deprecated 680 type: string 681 datasetUUID: 682 description: UUID of the dataset. This is unique identifier 683 of a Flocker dataset 684 type: string 685 type: object 686 gcePersistentDisk: 687 description: 'GCEPersistentDisk represents a GCE Disk resource 688 that is attached to a kubelet''s host machine and then 689 exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 690 properties: 691 fsType: 692 description: 'Filesystem type of the volume that you 693 want to mount. Tip: Ensure that the filesystem type 694 is supported by the host operating system. Examples: 695 "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" 696 if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 697 TODO: how do we prevent errors in the filesystem from 698 compromising the machine' 699 type: string 700 partition: 701 description: 'The partition in the volume that you want 702 to mount. If omitted, the default is to mount by volume 703 name. Examples: For volume /dev/sda1, you specify 704 the partition as "1". Similarly, the volume partition 705 for /dev/sda is "0" (or you can leave the property 706 empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 707 format: int32 708 type: integer 709 pdName: 710 description: 'Unique name of the PD resource in GCE. 711 Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 712 type: string 713 readOnly: 714 description: 'ReadOnly here will force the ReadOnly 715 setting in VolumeMounts. Defaults to false. More info: 716 https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 717 type: boolean 718 required: 719 - pdName 720 type: object 721 gitRepo: 722 description: 'GitRepo represents a git repository at a particular 723 revision. DEPRECATED: GitRepo is deprecated. To provision 724 a container with a git repo, mount an EmptyDir into an 725 InitContainer that clones the repo using git, then mount 726 the EmptyDir into the Pod''s container.' 727 properties: 728 directory: 729 description: Target directory name. Must not contain 730 or start with '..'. If '.' is supplied, the volume 731 directory will be the git repository. Otherwise, 732 if specified, the volume will contain the git repository 733 in the subdirectory with the given name. 734 type: string 735 repository: 736 description: Repository URL 737 type: string 738 revision: 739 description: Commit hash for the specified revision. 740 type: string 741 required: 742 - repository 743 type: object 744 glusterfs: 745 description: 'Glusterfs represents a Glusterfs mount on 746 the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' 747 properties: 748 endpoints: 749 description: 'EndpointsName is the endpoint name that 750 details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 751 type: string 752 path: 753 description: 'Path is the Glusterfs volume path. More 754 info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 755 type: string 756 readOnly: 757 description: 'ReadOnly here will force the Glusterfs 758 volume to be mounted with read-only permissions. Defaults 759 to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 760 type: boolean 761 required: 762 - endpoints 763 - path 764 type: object 765 hostPath: 766 description: 'HostPath represents a pre-existing file or 767 directory on the host machine that is directly exposed 768 to the container. This is generally used for system agents 769 or other privileged things that are allowed to see the 770 host machine. Most containers will NOT need this. More 771 info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath 772 --- TODO(jonesdl) We need to restrict who can use host 773 directory mounts and who can/can not mount host directories 774 as read/write.' 775 properties: 776 path: 777 description: 'Path of the directory on the host. If 778 the path is a symlink, it will follow the link to 779 the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' 780 type: string 781 type: 782 description: 'Type for HostPath Volume Defaults to "" 783 More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' 784 type: string 785 required: 786 - path 787 type: object 788 iscsi: 789 description: 'ISCSI represents an ISCSI Disk resource that 790 is attached to a kubelet''s host machine and then exposed 791 to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' 792 properties: 793 chapAuthDiscovery: 794 description: whether support iSCSI Discovery CHAP authentication 795 type: boolean 796 chapAuthSession: 797 description: whether support iSCSI Session CHAP authentication 798 type: boolean 799 fsType: 800 description: 'Filesystem type of the volume that you 801 want to mount. Tip: Ensure that the filesystem type 802 is supported by the host operating system. Examples: 803 "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" 804 if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi 805 TODO: how do we prevent errors in the filesystem from 806 compromising the machine' 807 type: string 808 initiatorName: 809 description: Custom iSCSI Initiator Name. If initiatorName 810 is specified with iscsiInterface simultaneously, new 811 iSCSI interface <target portal>:<volume name> will 812 be created for the connection. 813 type: string 814 iqn: 815 description: Target iSCSI Qualified Name. 816 type: string 817 iscsiInterface: 818 description: iSCSI Interface Name that uses an iSCSI 819 transport. Defaults to 'default' (tcp). 820 type: string 821 lun: 822 description: iSCSI Target Lun number. 823 format: int32 824 type: integer 825 portals: 826 description: iSCSI Target Portal List. The portal is 827 either an IP or ip_addr:port if the port is other 828 than default (typically TCP ports 860 and 3260). 829 items: 830 type: string 831 type: array 832 readOnly: 833 description: ReadOnly here will force the ReadOnly setting 834 in VolumeMounts. Defaults to false. 835 type: boolean 836 secretRef: 837 description: CHAP Secret for iSCSI target and initiator 838 authentication 839 properties: 840 name: 841 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 842 TODO: Add other useful fields. apiVersion, kind, 843 uid?' 844 type: string 845 type: object 846 targetPortal: 847 description: iSCSI Target Portal. The Portal is either 848 an IP or ip_addr:port if the port is other than default 849 (typically TCP ports 860 and 3260). 850 type: string 851 required: 852 - iqn 853 - lun 854 - targetPortal 855 type: object 856 name: 857 description: 'Volume''s name. Must be a DNS_LABEL and unique 858 within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 859 type: string 860 nfs: 861 description: 'NFS represents an NFS mount on the host that 862 shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 863 properties: 864 path: 865 description: 'Path that is exported by the NFS server. 866 More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 867 type: string 868 readOnly: 869 description: 'ReadOnly here will force the NFS export 870 to be mounted with read-only permissions. Defaults 871 to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 872 type: boolean 873 server: 874 description: 'Server is the hostname or IP address of 875 the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 876 type: string 877 required: 878 - path 879 - server 880 type: object 881 persistentVolumeClaim: 882 description: 'PersistentVolumeClaimVolumeSource represents 883 a reference to a PersistentVolumeClaim in the same namespace. 884 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' 885 properties: 886 claimName: 887 description: 'ClaimName is the name of a PersistentVolumeClaim 888 in the same namespace as the pod using this volume. 889 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' 890 type: string 891 readOnly: 892 description: Will force the ReadOnly setting in VolumeMounts. 893 Default false. 894 type: boolean 895 required: 896 - claimName 897 type: object 898 photonPersistentDisk: 899 description: PhotonPersistentDisk represents a PhotonController 900 persistent disk attached and mounted on kubelets host 901 machine 902 properties: 903 fsType: 904 description: Filesystem type to mount. Must be a filesystem 905 type supported by the host operating system. Ex. "ext4", 906 "xfs", "ntfs". Implicitly inferred to be "ext4" if 907 unspecified. 908 type: string 909 pdID: 910 description: ID that identifies Photon Controller persistent 911 disk 912 type: string 913 required: 914 - pdID 915 type: object 916 portworxVolume: 917 description: PortworxVolume represents a portworx volume 918 attached and mounted on kubelets host machine 919 properties: 920 fsType: 921 description: FSType represents the filesystem type to 922 mount Must be a filesystem type supported by the host 923 operating system. Ex. "ext4", "xfs". Implicitly inferred 924 to be "ext4" if unspecified. 925 type: string 926 readOnly: 927 description: Defaults to false (read/write). ReadOnly 928 here will force the ReadOnly setting in VolumeMounts. 929 type: boolean 930 volumeID: 931 description: VolumeID uniquely identifies a Portworx 932 volume 933 type: string 934 required: 935 - volumeID 936 type: object 937 projected: 938 description: Items for all in one resources secrets, configmaps, 939 and downward API 940 properties: 941 defaultMode: 942 description: Mode bits to use on created files by default. 943 Must be a value between 0 and 0777. Directories within 944 the path are not affected by this setting. This might 945 be in conflict with other options that affect the 946 file mode, like fsGroup, and the result can be other 947 mode bits set. 948 format: int32 949 type: integer 950 sources: 951 description: list of volume projections 952 items: 953 description: Projection that may be projected along 954 with other supported volume types 955 properties: 956 configMap: 957 description: information about the configMap data 958 to project 959 properties: 960 items: 961 description: If unspecified, each key-value 962 pair in the Data field of the referenced 963 ConfigMap will be projected into the volume 964 as a file whose name is the key and content 965 is the value. If specified, the listed keys 966 will be projected into the specified paths, 967 and unlisted keys will not be present. If 968 a key is specified which is not present 969 in the ConfigMap, the volume setup will 970 error unless it is marked optional. Paths 971 must be relative and may not contain the 972 '..' path or start with '..'. 973 items: 974 description: Maps a string key to a path 975 within a volume. 976 properties: 977 key: 978 description: The key to project. 979 type: string 980 mode: 981 description: 'Optional: mode bits to 982 use on this file, must be a value 983 between 0 and 0777. If not specified, 984 the volume defaultMode will be used. 985 This might be in conflict with other 986 options that affect the file mode, 987 like fsGroup, and the result can be 988 other mode bits set.' 989 format: int32 990 type: integer 991 path: 992 description: The relative path of the 993 file to map the key to. May not be 994 an absolute path. May not contain 995 the path element '..'. May not start 996 with the string '..'. 997 type: string 998 required: 999 - key 1000 - path 1001 type: object 1002 type: array 1003 name: 1004 description: 'Name of the referent. More info: 1005 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1006 TODO: Add other useful fields. apiVersion, 1007 kind, uid?' 1008 type: string 1009 optional: 1010 description: Specify whether the ConfigMap 1011 or its keys must be defined 1012 type: boolean 1013 type: object 1014 downwardAPI: 1015 description: information about the downwardAPI 1016 data to project 1017 properties: 1018 items: 1019 description: Items is a list of DownwardAPIVolume 1020 file 1021 items: 1022 description: DownwardAPIVolumeFile represents 1023 information to create the file containing 1024 the pod field 1025 properties: 1026 fieldRef: 1027 description: 'Required: Selects a field 1028 of the pod: only annotations, labels, 1029 name and namespace are supported.' 1030 properties: 1031 apiVersion: 1032 description: Version of the schema 1033 the FieldPath is written in terms 1034 of, defaults to "v1". 1035 type: string 1036 fieldPath: 1037 description: Path of the field to 1038 select in the specified API version. 1039 type: string 1040 required: 1041 - fieldPath 1042 type: object 1043 mode: 1044 description: 'Optional: mode bits to 1045 use on this file, must be a value 1046 between 0 and 0777. If not specified, 1047 the volume defaultMode will be used. 1048 This might be in conflict with other 1049 options that affect the file mode, 1050 like fsGroup, and the result can be 1051 other mode bits set.' 1052 format: int32 1053 type: integer 1054 path: 1055 description: 'Required: Path is the 1056 relative path name of the file to 1057 be created. Must not be absolute or 1058 contain the ''..'' path. Must be utf-8 1059 encoded. The first item of the relative 1060 path must not start with ''..''' 1061 type: string 1062 resourceFieldRef: 1063 description: 'Selects a resource of 1064 the container: only resources limits 1065 and requests (limits.cpu, limits.memory, 1066 requests.cpu and requests.memory) 1067 are currently supported.' 1068 properties: 1069 containerName: 1070 description: 'Container name: required 1071 for volumes, optional for env 1072 vars' 1073 type: string 1074 divisor: 1075 description: Specifies the output 1076 format of the exposed resources, 1077 defaults to "1" 1078 type: string 1079 resource: 1080 description: 'Required: resource 1081 to select' 1082 type: string 1083 required: 1084 - resource 1085 type: object 1086 required: 1087 - path 1088 type: object 1089 type: array 1090 type: object 1091 secret: 1092 description: information about the secret data 1093 to project 1094 properties: 1095 items: 1096 description: If unspecified, each key-value 1097 pair in the Data field of the referenced 1098 Secret will be projected into the volume 1099 as a file whose name is the key and content 1100 is the value. If specified, the listed keys 1101 will be projected into the specified paths, 1102 and unlisted keys will not be present. If 1103 a key is specified which is not present 1104 in the Secret, the volume setup will error 1105 unless it is marked optional. Paths must 1106 be relative and may not contain the '..' 1107 path or start with '..'. 1108 items: 1109 description: Maps a string key to a path 1110 within a volume. 1111 properties: 1112 key: 1113 description: The key to project. 1114 type: string 1115 mode: 1116 description: 'Optional: mode bits to 1117 use on this file, must be a value 1118 between 0 and 0777. If not specified, 1119 the volume defaultMode will be used. 1120 This might be in conflict with other 1121 options that affect the file mode, 1122 like fsGroup, and the result can be 1123 other mode bits set.' 1124 format: int32 1125 type: integer 1126 path: 1127 description: The relative path of the 1128 file to map the key to. May not be 1129 an absolute path. May not contain 1130 the path element '..'. May not start 1131 with the string '..'. 1132 type: string 1133 required: 1134 - key 1135 - path 1136 type: object 1137 type: array 1138 name: 1139 description: 'Name of the referent. More info: 1140 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1141 TODO: Add other useful fields. apiVersion, 1142 kind, uid?' 1143 type: string 1144 optional: 1145 description: Specify whether the Secret or 1146 its key must be defined 1147 type: boolean 1148 type: object 1149 serviceAccountToken: 1150 description: information about the serviceAccountToken 1151 data to project 1152 properties: 1153 audience: 1154 description: Audience is the intended audience 1155 of the token. A recipient of a token must 1156 identify itself with an identifier specified 1157 in the audience of the token, and otherwise 1158 should reject the token. The audience defaults 1159 to the identifier of the apiserver. 1160 type: string 1161 expirationSeconds: 1162 description: ExpirationSeconds is the requested 1163 duration of validity of the service account 1164 token. As the token approaches expiration, 1165 the kubelet volume plugin will proactively 1166 rotate the service account token. The kubelet 1167 will start trying to rotate the token if 1168 the token is older than 80 percent of its 1169 time to live or if the token is older than 1170 24 hours.Defaults to 1 hour and must be 1171 at least 10 minutes. 1172 format: int64 1173 type: integer 1174 path: 1175 description: Path is the path relative to 1176 the mount point of the file to project the 1177 token into. 1178 type: string 1179 required: 1180 - path 1181 type: object 1182 type: object 1183 type: array 1184 required: 1185 - sources 1186 type: object 1187 quobyte: 1188 description: Quobyte represents a Quobyte mount on the host 1189 that shares a pod's lifetime 1190 properties: 1191 group: 1192 description: Group to map volume access to Default is 1193 no group 1194 type: string 1195 readOnly: 1196 description: ReadOnly here will force the Quobyte volume 1197 to be mounted with read-only permissions. Defaults 1198 to false. 1199 type: boolean 1200 registry: 1201 description: Registry represents a single or multiple 1202 Quobyte Registry services specified as a string as 1203 host:port pair (multiple entries are separated with 1204 commas) which acts as the central registry for volumes 1205 type: string 1206 tenant: 1207 description: Tenant owning the given Quobyte volume 1208 in the Backend Used with dynamically provisioned Quobyte 1209 volumes, value is set by the plugin 1210 type: string 1211 user: 1212 description: User to map volume access to Defaults to 1213 serivceaccount user 1214 type: string 1215 volume: 1216 description: Volume is a string that references an already 1217 created Quobyte volume by name. 1218 type: string 1219 required: 1220 - registry 1221 - volume 1222 type: object 1223 rbd: 1224 description: 'RBD represents a Rados Block Device mount 1225 on the host that shares a pod''s lifetime. More info: 1226 https://examples.k8s.io/volumes/rbd/README.md' 1227 properties: 1228 fsType: 1229 description: 'Filesystem type of the volume that you 1230 want to mount. Tip: Ensure that the filesystem type 1231 is supported by the host operating system. Examples: 1232 "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" 1233 if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd 1234 TODO: how do we prevent errors in the filesystem from 1235 compromising the machine' 1236 type: string 1237 image: 1238 description: 'The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1239 type: string 1240 keyring: 1241 description: 'Keyring is the path to key ring for RBDUser. 1242 Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1243 type: string 1244 monitors: 1245 description: 'A collection of Ceph monitors. More info: 1246 https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1247 items: 1248 type: string 1249 type: array 1250 pool: 1251 description: 'The rados pool name. Default is rbd. More 1252 info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1253 type: string 1254 readOnly: 1255 description: 'ReadOnly here will force the ReadOnly 1256 setting in VolumeMounts. Defaults to false. More info: 1257 https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1258 type: boolean 1259 secretRef: 1260 description: 'SecretRef is name of the authentication 1261 secret for RBDUser. If provided overrides keyring. 1262 Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1263 properties: 1264 name: 1265 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1266 TODO: Add other useful fields. apiVersion, kind, 1267 uid?' 1268 type: string 1269 type: object 1270 user: 1271 description: 'The rados user name. Default is admin. 1272 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1273 type: string 1274 required: 1275 - image 1276 - monitors 1277 type: object 1278 scaleIO: 1279 description: ScaleIO represents a ScaleIO persistent volume 1280 attached and mounted on Kubernetes nodes. 1281 properties: 1282 fsType: 1283 description: Filesystem type to mount. Must be a filesystem 1284 type supported by the host operating system. Ex. "ext4", 1285 "xfs", "ntfs". Default is "xfs". 1286 type: string 1287 gateway: 1288 description: The host address of the ScaleIO API Gateway. 1289 type: string 1290 protectionDomain: 1291 description: The name of the ScaleIO Protection Domain 1292 for the configured storage. 1293 type: string 1294 readOnly: 1295 description: Defaults to false (read/write). ReadOnly 1296 here will force the ReadOnly setting in VolumeMounts. 1297 type: boolean 1298 secretRef: 1299 description: SecretRef references to the secret for 1300 ScaleIO user and other sensitive information. If this 1301 is not provided, Login operation will fail. 1302 properties: 1303 name: 1304 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1305 TODO: Add other useful fields. apiVersion, kind, 1306 uid?' 1307 type: string 1308 type: object 1309 sslEnabled: 1310 description: Flag to enable/disable SSL communication 1311 with Gateway, default false 1312 type: boolean 1313 storageMode: 1314 description: Indicates whether the storage for a volume 1315 should be ThickProvisioned or ThinProvisioned. Default 1316 is ThinProvisioned. 1317 type: string 1318 storagePool: 1319 description: The ScaleIO Storage Pool associated with 1320 the protection domain. 1321 type: string 1322 system: 1323 description: The name of the storage system as configured 1324 in ScaleIO. 1325 type: string 1326 volumeName: 1327 description: The name of a volume already created in 1328 the ScaleIO system that is associated with this volume 1329 source. 1330 type: string 1331 required: 1332 - gateway 1333 - secretRef 1334 - system 1335 type: object 1336 secret: 1337 description: 'Secret represents a secret that should populate 1338 this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' 1339 properties: 1340 defaultMode: 1341 description: 'Optional: mode bits to use on created 1342 files by default. Must be a value between 0 and 0777. 1343 Defaults to 0644. Directories within the path are 1344 not affected by this setting. This might be in conflict 1345 with other options that affect the file mode, like 1346 fsGroup, and the result can be other mode bits set.' 1347 format: int32 1348 type: integer 1349 items: 1350 description: If unspecified, each key-value pair in 1351 the Data field of the referenced Secret will be projected 1352 into the volume as a file whose name is the key and 1353 content is the value. If specified, the listed keys 1354 will be projected into the specified paths, and unlisted 1355 keys will not be present. If a key is specified which 1356 is not present in the Secret, the volume setup will 1357 error unless it is marked optional. Paths must be 1358 relative and may not contain the '..' path or start 1359 with '..'. 1360 items: 1361 description: Maps a string key to a path within a 1362 volume. 1363 properties: 1364 key: 1365 description: The key to project. 1366 type: string 1367 mode: 1368 description: 'Optional: mode bits to use on this 1369 file, must be a value between 0 and 0777. If 1370 not specified, the volume defaultMode will be 1371 used. This might be in conflict with other options 1372 that affect the file mode, like fsGroup, and 1373 the result can be other mode bits set.' 1374 format: int32 1375 type: integer 1376 path: 1377 description: The relative path of the file to 1378 map the key to. May not be an absolute path. 1379 May not contain the path element '..'. May not 1380 start with the string '..'. 1381 type: string 1382 required: 1383 - key 1384 - path 1385 type: object 1386 type: array 1387 optional: 1388 description: Specify whether the Secret or its keys 1389 must be defined 1390 type: boolean 1391 secretName: 1392 description: 'Name of the secret in the pod''s namespace 1393 to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' 1394 type: string 1395 type: object 1396 storageos: 1397 description: StorageOS represents a StorageOS volume attached 1398 and mounted on Kubernetes nodes. 1399 properties: 1400 fsType: 1401 description: Filesystem type to mount. Must be a filesystem 1402 type supported by the host operating system. Ex. "ext4", 1403 "xfs", "ntfs". Implicitly inferred to be "ext4" if 1404 unspecified. 1405 type: string 1406 readOnly: 1407 description: Defaults to false (read/write). ReadOnly 1408 here will force the ReadOnly setting in VolumeMounts. 1409 type: boolean 1410 secretRef: 1411 description: SecretRef specifies the secret to use for 1412 obtaining the StorageOS API credentials. If not specified, 1413 default values will be attempted. 1414 properties: 1415 name: 1416 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1417 TODO: Add other useful fields. apiVersion, kind, 1418 uid?' 1419 type: string 1420 type: object 1421 volumeName: 1422 description: VolumeName is the human-readable name of 1423 the StorageOS volume. Volume names are only unique 1424 within a namespace. 1425 type: string 1426 volumeNamespace: 1427 description: VolumeNamespace specifies the scope of 1428 the volume within StorageOS. If no namespace is specified 1429 then the Pod's namespace will be used. This allows 1430 the Kubernetes name scoping to be mirrored within 1431 StorageOS for tighter integration. Set VolumeName 1432 to any name to override the default behaviour. Set 1433 to "default" if you are not using namespaces within 1434 StorageOS. Namespaces that do not pre-exist within 1435 StorageOS will be created. 1436 type: string 1437 type: object 1438 vsphereVolume: 1439 description: VsphereVolume represents a vSphere volume attached 1440 and mounted on kubelets host machine 1441 properties: 1442 fsType: 1443 description: Filesystem type to mount. Must be a filesystem 1444 type supported by the host operating system. Ex. "ext4", 1445 "xfs", "ntfs". Implicitly inferred to be "ext4" if 1446 unspecified. 1447 type: string 1448 storagePolicyID: 1449 description: Storage Policy Based Management (SPBM) 1450 profile ID associated with the StoragePolicyName. 1451 type: string 1452 storagePolicyName: 1453 description: Storage Policy Based Management (SPBM) 1454 profile name. 1455 type: string 1456 volumePath: 1457 description: Path that identifies vSphere volume vmdk 1458 type: string 1459 required: 1460 - volumePath 1461 type: object 1462 required: 1463 - name 1464 type: object 1465 type: array