Skip to content
Snippets Groups Projects
0thanosrulerCustomResourceDefinition.yaml 331 KiB
Newer Older
paulfantom's avatar
paulfantom committed
                      status:
                        description: 'Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                        properties:
                          accessModes:
                            description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
paulfantom's avatar
paulfantom committed
                            items:
                              type: string
paulfantom's avatar
paulfantom committed
                            type: array
                          allocatedResources:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
paulfantom's avatar
paulfantom committed
                          capacity:
                            additionalProperties:
Lili Cosic's avatar
Lili Cosic committed
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: capacity represents the actual resources of the underlying volume.
paulfantom's avatar
paulfantom committed
                            type: object
                          conditions:
                            description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
paulfantom's avatar
paulfantom committed
                            items:
                              description: PersistentVolumeClaimCondition contails details about state of pvc
                              properties:
paulfantom's avatar
paulfantom committed
                                lastProbeTime:
                                  description: lastProbeTime is the time we probed the condition.
paulfantom's avatar
paulfantom committed
                                  format: date-time
                                  type: string
paulfantom's avatar
paulfantom committed
                                lastTransitionTime:
                                  description: lastTransitionTime is the time the condition transitioned from one status to another.
paulfantom's avatar
paulfantom committed
                                  format: date-time
                                  type: string
paulfantom's avatar
paulfantom committed
                                message:
                                  description: message is the human-readable message indicating details about last transition.
paulfantom's avatar
paulfantom committed
                                  type: string
                                reason:
                                  description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
                                  type: string
paulfantom's avatar
paulfantom committed
                                status:
                                  type: string
paulfantom's avatar
paulfantom committed
                                type:
                                  description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
                                  type: string
                              required:
paulfantom's avatar
paulfantom committed
                              - status
                              - type
                              type: object
paulfantom's avatar
paulfantom committed
                            type: array
                          phase:
                            description: phase represents the current phase of PersistentVolumeClaim.
paulfantom's avatar
paulfantom committed
                            type: string
                            description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
paulfantom's avatar
paulfantom committed
                        type: object
                    type: object
paulfantom's avatar
paulfantom committed
                type: object
              tolerations:
                description: If specified, the pod's tolerations.
                items:
                  description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
paulfantom's avatar
paulfantom committed
                  properties:
                    effect:
                      description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
paulfantom's avatar
paulfantom committed
                      type: string
                    key:
                      description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
paulfantom's avatar
paulfantom committed
                      type: string
                    operator:
                      description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
paulfantom's avatar
paulfantom committed
                      type: string
                    tolerationSeconds:
                      description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
paulfantom's avatar
paulfantom committed
                      format: int64
                      type: integer
                    value:
                      description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
paulfantom's avatar
paulfantom committed
                      type: string
                  type: object
                type: array
              topologySpreadConstraints:
                description: If specified, the pod's topology spread constraints.
                items:
                  description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
                  properties:
                    labelSelector:
                      description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                            description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                description: key is the label key that the selector applies to.
                                type: string
                              operator:
                                description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                type: string
                              values:
                                description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            type: string
                          description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                      description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: atomic
                      description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
                      format: int32
                      type: integer
                      description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
                      format: int32
                      type: integer
                      description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
                      type: string
                    nodeTaintsPolicy:
                      description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
                      description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
                      type: string
                    whenUnsatisfiable:
                      description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
                      type: string
                  required:
                  - maxSkew
                  - topologyKey
                  - whenUnsatisfiable
                  type: object
                type: array
paulfantom's avatar
paulfantom committed
              tracingConfig:
                description: TracingConfig configures tracing in Thanos. This is an experimental feature, it may change in any upcoming release in a breaking way.
paulfantom's avatar
paulfantom committed
                properties:
                  key:
                    description: The key of the secret to select from.  Must be a valid secret key.
paulfantom's avatar
paulfantom committed
                    type: string
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                    type: string
                  optional:
                    description: Specify whether the Secret or its key must be defined
                    type: boolean
                required:
                - key
                type: object
                x-kubernetes-map-type: atomic
                description: TracingConfig specifies the path of the tracing configuration file. When used alongside with TracingConfig, TracingConfigFile takes precedence.
              version:
                description: Version of Thanos to be deployed.
                type: string
paulfantom's avatar
paulfantom committed
              volumes:
                description: Volumes allows configuration of additional volumes on the output StatefulSet definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects.
paulfantom's avatar
paulfantom committed
                items:
                  description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
paulfantom's avatar
paulfantom committed
                  properties:
                    awsElasticBlockStore:
                      description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine'
                          type: string
paulfantom's avatar
paulfantom committed
                        partition:
                          description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeID:
                          description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
paulfantom's avatar
paulfantom committed
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        cachingMode:
                          description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                          type: string
paulfantom's avatar
paulfantom committed
                        diskName:
                          description: diskName is the Name of the data disk in the blob storage
paulfantom's avatar
paulfantom committed
                          type: string
                        diskURI:
                          description: diskURI is the URI of data disk in the blob storage
paulfantom's avatar
paulfantom committed
                          type: string
                        fsType:
                          description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
paulfantom's avatar
paulfantom committed
                          type: string
                        kind:
                          description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        readOnly:
                          description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretName:
                          description: secretName is the  name of secret that contains Azure Storage Account Name and Key
paulfantom's avatar
paulfantom committed
                          type: string
                        shareName:
                          description: shareName is the azure share Name
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
paulfantom's avatar
paulfantom committed
                      properties:
                        monitors:
                          description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
paulfantom's avatar
paulfantom committed
                          type: array
                        path:
                          description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretFile:
                          description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                        secretRef:
                          description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        user:
                          description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
                          description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.'
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        volumeID:
                          description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      description: configMap represents a configMap that should populate this volume
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
                          description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        items:
                          description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
paulfantom's avatar
paulfantom committed
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
paulfantom's avatar
paulfantom committed
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                                format: int32
                                type: integer
                              path:
                                description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
paulfantom's avatar
paulfantom committed
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                        name:
                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                          type: string
                        optional:
                          description: optional specify whether the ConfigMap or its keys must be defined
paulfantom's avatar
paulfantom committed
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                    csi:
                      description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
paulfantom's avatar
paulfantom committed
                      properties:
                        driver:
                          description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
paulfantom's avatar
paulfantom committed
                          type: string
                        fsType:
                          description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
paulfantom's avatar
paulfantom committed
                          type: string
                        nodePublishSecretRef:
                          description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        readOnly:
                          description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
paulfantom's avatar
paulfantom committed
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      description: downwardAPI represents downward API about the pod that should populate this volume
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
                          description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
paulfantom's avatar
paulfantom committed
                          description: Items is a list of downward API volume file
                          items:
                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
paulfantom's avatar
paulfantom committed
                            properties:
                              fieldRef:
                                description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
paulfantom's avatar
paulfantom committed
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
paulfantom's avatar
paulfantom committed
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the specified API version.
paulfantom's avatar
paulfantom committed
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                              mode:
                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                                format: int32
                                type: integer
                              path:
                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
paulfantom's avatar
paulfantom committed
                                type: string
                              resourceFieldRef:
                                description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
paulfantom's avatar
paulfantom committed
                                properties:
                                  containerName:
                                    description: 'Container name: required for volumes, optional for env vars'
paulfantom's avatar
paulfantom committed
                                    type: string
                                  divisor:
Lili Cosic's avatar
Lili Cosic committed
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Specifies the output format of the exposed resources, defaults to "1"
Lili Cosic's avatar
Lili Cosic committed
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
paulfantom's avatar
paulfantom committed
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                            required:
                            - path
                            type: object
                          type: array
                      type: object
                    emptyDir:
                      description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
paulfantom's avatar
paulfantom committed
                      properties:
                        medium:
                          description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
paulfantom's avatar
paulfantom committed
                          type: string
                        sizeLimit:
Lili Cosic's avatar
Lili Cosic committed
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
Lili Cosic's avatar
Lili Cosic committed
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
paulfantom's avatar
paulfantom committed
                      type: object
                      description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time."
                      properties:
                        volumeClaimTemplate:
                          description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil."
                              description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
                              description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
                                  description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                  items:
                                    type: string
                                  type: array
                                dataSource:
                                  description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                      description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
                                      description: Kind is the type of resource being referenced
                                      description: Name is the name of resource being referenced
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                  x-kubernetes-map-type: atomic
                                  description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                      description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
                                      description: Kind is the type of resource being referenced
                                      description: Name is the name of resource being referenced
                                      description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
                                  required:
                                  - kind
                                  - name
                                  type: object
                                resources:
                                  description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                      description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable."
                                        description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                            description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
                                            type: string
                                        required:
                                        - name
                                        type: object
                                      type: array
                                      x-kubernetes-list-map-keys:
                                      - name
                                      x-kubernetes-list-type: map
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                  type: object
                                selector:
                                  description: selector is a label query over volumes to consider for binding.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                                            description: key is the label key that the selector applies to.
                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                  description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                  description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
                                  description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
paulfantom's avatar
paulfantom committed
                    fc:
                      description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        lun:
                          description: 'lun is Optional: FC target lun number'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        targetWWNs:
                          description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
                          type: array
                        wwids:
                          description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
                          type: array
                      type: object
                    flexVolume:
                      description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
paulfantom's avatar
paulfantom committed
                      properties:
                        driver:
                          description: driver is the name of the driver to use for this volume.
paulfantom's avatar
paulfantom committed
                          type: string
                        fsType:
                          description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
paulfantom's avatar
paulfantom committed
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          description: 'options is Optional: this field holds extra command options if any.'
paulfantom's avatar
paulfantom committed
                          type: object
                        readOnly:
                          description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
                          description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                      required:
                      - driver
                      type: object
                    flocker:
                      description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
paulfantom's avatar
paulfantom committed
                      properties:
                        datasetName:
                          description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
paulfantom's avatar
paulfantom committed
                          type: string
                        datasetUUID:
                          description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
paulfantom's avatar
paulfantom committed
                          type: string
                      type: object
                    gcePersistentDisk:
                      description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        pdName:
                          description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
paulfantom's avatar
paulfantom committed
                      properties:
                        directory:
                          description: directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
paulfantom's avatar
paulfantom committed
                          type: string
                        repository:
                          description: repository is the URL
paulfantom's avatar
paulfantom committed
                          type: string
                        revision:
                          description: revision is the commit hash for the specified revision.
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        endpoints:
                          description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: string
                        path:
                          description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
paulfantom's avatar
paulfantom committed
                      properties:
                        path:
                          description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
paulfantom's avatar
paulfantom committed
                          type: string
                        type:
                          description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - path
                      type: object
                    iscsi:
                      description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        chapAuthDiscovery:
                          description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
paulfantom's avatar
paulfantom committed
                          type: boolean
                        chapAuthSession:
                          description: chapAuthSession defines whether support iSCSI Session CHAP authentication
paulfantom's avatar
paulfantom committed
                          type: boolean
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        initiatorName:
                          description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
paulfantom's avatar
paulfantom committed
                          type: string
                        iqn:
                          description: iqn is the target iSCSI Qualified Name.
paulfantom's avatar
paulfantom committed
                          type: string
                        iscsiInterface:
                          description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
paulfantom's avatar
paulfantom committed
                          type: string
                        lun:
                          description: lun represents iSCSI Target Lun number.
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        portals:
                          description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
                          type: array
                        readOnly:
                          description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
                          description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
paulfantom's avatar
paulfantom committed
                          properties:
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        targetPortal:
                          description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      description: 'name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
paulfantom's avatar
paulfantom committed
                      type: string
                    nfs:
                      description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                      properties:
                        path:
                          description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        server:
                          description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                      properties:
                        claimName:
                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
paulfantom's avatar
paulfantom committed
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
paulfantom's avatar
paulfantom committed
                          type: string
                        pdID:
                          description: pdID is the ID that identifies Photon Controller persistent disk
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        volumeID:
                          description: volumeID uniquely identifies a Portworx volume
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      description: projected items for all in one resources secrets, configmaps, and downward API
paulfantom's avatar
paulfantom committed
                      properties:
                        defaultMode:
                          description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
paulfantom's avatar
paulfantom committed
                          format: int32
                          type: integer
                        sources:
                          description: sources is the list of volume projections
paulfantom's avatar
paulfantom committed
                          items:
                            description: Projection that may be projected along with other supported volume types
paulfantom's avatar
paulfantom committed
                            properties:
                              configMap:
                                description: configMap information about the configMap data to project
paulfantom's avatar
paulfantom committed
                                properties:
                                  items:
                                    description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
paulfantom's avatar
paulfantom committed
                                    items:
                                      description: Maps a string key to a path within a volume.
paulfantom's avatar
paulfantom committed
                                      properties:
                                        key:
                                          description: key is the key to project.
paulfantom's avatar
paulfantom committed
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                                          format: int32
                                          type: integer
                                        path:
                                          description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
paulfantom's avatar
paulfantom committed
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                                    type: string
                                  optional:
                                    description: optional specify whether the ConfigMap or its keys must be defined
paulfantom's avatar
paulfantom committed
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                              downwardAPI:
                                description: downwardAPI information about the downwardAPI data to project
paulfantom's avatar
paulfantom committed
                                properties:
                                  items:
                                    description: Items is a list of DownwardAPIVolume file
paulfantom's avatar
paulfantom committed
                                    items:
                                      description: DownwardAPIVolumeFile represents information to create the file containing the pod field
paulfantom's avatar
paulfantom committed
                                      properties:
                                        fieldRef:
                                          description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
paulfantom's avatar
paulfantom committed
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
paulfantom's avatar
paulfantom committed
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
paulfantom's avatar
paulfantom committed
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                                        mode:
                                          description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
paulfantom's avatar
paulfantom committed
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
paulfantom's avatar
paulfantom committed
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
paulfantom's avatar
paulfantom committed
                                              type: string
                                            divisor:
Lili Cosic's avatar
Lili Cosic committed
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
Lili Cosic's avatar
Lili Cosic committed
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
paulfantom's avatar
paulfantom committed
                                            resource:
                                              description: 'Required: resource to select'
paulfantom's avatar
paulfantom committed
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                                      required:
                                      - path
                                      type: object
                                    type: array
                                type: object
                              secret:
                                description: secret information about the secret data to project
paulfantom's avatar
paulfantom committed
                                properties:
                                  items:
                                    description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
paulfantom's avatar
paulfantom committed
                                    items:
                                      description: Maps a string key to a path within a volume.
paulfantom's avatar
paulfantom committed
                                      properties:
                                        key:
                                          description: key is the key to project.
paulfantom's avatar
paulfantom committed
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
paulfantom's avatar
paulfantom committed
                                          format: int32
                                          type: integer
                                        path:
                                          description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
paulfantom's avatar
paulfantom committed
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                  name:
                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                                    type: string
                                  optional:
                                    description: optional field specify whether the Secret or its key must be defined
paulfantom's avatar
paulfantom committed
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                              serviceAccountToken:
                                description: serviceAccountToken is information about the serviceAccountToken data to project
paulfantom's avatar
paulfantom committed
                                properties:
                                  audience:
                                    description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
paulfantom's avatar
paulfantom committed
                                    type: string
                                  expirationSeconds:
                                    description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
paulfantom's avatar
paulfantom committed
                                    format: int64
                                    type: integer
                                  path:
                                    description: path is the path relative to the mount point of the file to project the token into.
paulfantom's avatar
paulfantom committed
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                      type: object
                    quobyte:
                      description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
paulfantom's avatar
paulfantom committed
                      properties:
                        group:
                          description: group to map volume access to Default is no group
                          type: string
paulfantom's avatar
paulfantom committed
                        readOnly:
                          description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
paulfantom's avatar
paulfantom committed
                          type: boolean
                        registry:
                          description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
paulfantom's avatar
paulfantom committed
                          type: string
                        tenant:
                          description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
paulfantom's avatar
paulfantom committed
                          type: string
                        user:
                          description: user to map volume access to Defaults to serivceaccount user
paulfantom's avatar
paulfantom committed
                          type: string
                        volume:
                          description: volume is a string that references an already created Quobyte volume by name.
paulfantom's avatar
paulfantom committed
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
paulfantom's avatar
paulfantom committed
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine'
paulfantom's avatar
paulfantom committed
                          type: string
                        image:
                          description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                        keyring:
                          description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                        monitors:
                          description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          items:
                            type: string
paulfantom's avatar
paulfantom committed
                          type: array
                        pool:
                          description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
paulfantom's avatar
paulfantom committed
                          type: boolean
                        secretRef:
                          description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          properties:
paulfantom's avatar
paulfantom committed
                            name:
                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
paulfantom's avatar
paulfantom committed
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
paulfantom's avatar
paulfantom committed
                        user:
                          description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'