github.com/operator-framework/operator-lifecycle-manager@v0.30.0/deploy/upstream/manifests/0.18.0/0000_50_olm_00-subscriptions.crd.yaml (about)

     1  ---
     2  # Source: olm/crds/0000_50_olm_00-subscriptions.crd.yaml
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.4.1
     8    creationTimestamp: null
     9    name: subscriptions.operators.coreos.com
    10  spec:
    11    group: operators.coreos.com
    12    names:
    13      categories:
    14        - olm
    15      kind: Subscription
    16      listKind: SubscriptionList
    17      plural: subscriptions
    18      shortNames:
    19        - sub
    20        - subs
    21      singular: subscription
    22    scope: Namespaced
    23    versions:
    24      - additionalPrinterColumns:
    25          - description: The package subscribed to
    26            jsonPath: .spec.name
    27            name: Package
    28            type: string
    29          - description: The catalog source for the specified package
    30            jsonPath: .spec.source
    31            name: Source
    32            type: string
    33          - description: The channel of updates to subscribe to
    34            jsonPath: .spec.channel
    35            name: Channel
    36            type: string
    37        name: v1alpha1
    38        schema:
    39          openAPIV3Schema:
    40            description: Subscription keeps operators up to date by tracking changes to Catalogs.
    41            type: object
    42            required:
    43              - metadata
    44              - spec
    45            properties:
    46              apiVersion:
    47                description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    48                type: string
    49              kind:
    50                description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    51                type: string
    52              metadata:
    53                type: object
    54              spec:
    55                description: SubscriptionSpec defines an Application that can be installed
    56                type: object
    57                required:
    58                  - name
    59                  - source
    60                  - sourceNamespace
    61                properties:
    62                  channel:
    63                    type: string
    64                  config:
    65                    description: SubscriptionConfig contains configuration specified for a subscription.
    66                    type: object
    67                    properties:
    68                      env:
    69                        description: Env is a list of environment variables to set in the container. Cannot be updated.
    70                        type: array
    71                        items:
    72                          description: EnvVar represents an environment variable present in a Container.
    73                          type: object
    74                          required:
    75                            - name
    76                          properties:
    77                            name:
    78                              description: Name of the environment variable. Must be a C_IDENTIFIER.
    79                              type: string
    80                            value:
    81                              description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".'
    82                              type: string
    83                            valueFrom:
    84                              description: Source for the environment variable's value. Cannot be used if value is not empty.
    85                              type: object
    86                              properties:
    87                                configMapKeyRef:
    88                                  description: Selects a key of a ConfigMap.
    89                                  type: object
    90                                  required:
    91                                    - key
    92                                  properties:
    93                                    key:
    94                                      description: The key to select.
    95                                      type: string
    96                                    name:
    97                                      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?'
    98                                      type: string
    99                                    optional:
   100                                      description: Specify whether the ConfigMap or its key must be defined
   101                                      type: boolean
   102                                fieldRef:
   103                                  description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
   104                                  type: object
   105                                  required:
   106                                    - fieldPath
   107                                  properties:
   108                                    apiVersion:
   109                                      description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
   110                                      type: string
   111                                    fieldPath:
   112                                      description: Path of the field to select in the specified API version.
   113                                      type: string
   114                                resourceFieldRef:
   115                                  description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
   116                                  type: object
   117                                  required:
   118                                    - resource
   119                                  properties:
   120                                    containerName:
   121                                      description: 'Container name: required for volumes, optional for env vars'
   122                                      type: string
   123                                    divisor:
   124                                      description: Specifies the output format of the exposed resources, defaults to "1"
   125                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   126                                      anyOf:
   127                                        - type: integer
   128                                        - type: string
   129                                      x-kubernetes-int-or-string: true
   130                                    resource:
   131                                      description: 'Required: resource to select'
   132                                      type: string
   133                                secretKeyRef:
   134                                  description: Selects a key of a secret in the pod's namespace
   135                                  type: object
   136                                  required:
   137                                    - key
   138                                  properties:
   139                                    key:
   140                                      description: The key of the secret to select from.  Must be a valid secret key.
   141                                      type: string
   142                                    name:
   143                                      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?'
   144                                      type: string
   145                                    optional:
   146                                      description: Specify whether the Secret or its key must be defined
   147                                      type: boolean
   148                      envFrom:
   149                        description: EnvFrom is a list of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Immutable.
   150                        type: array
   151                        items:
   152                          description: EnvFromSource represents the source of a set of ConfigMaps
   153                          type: object
   154                          properties:
   155                            configMapRef:
   156                              description: The ConfigMap to select from
   157                              type: object
   158                              properties:
   159                                name:
   160                                  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?'
   161                                  type: string
   162                                optional:
   163                                  description: Specify whether the ConfigMap must be defined
   164                                  type: boolean
   165                            prefix:
   166                              description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
   167                              type: string
   168                            secretRef:
   169                              description: The Secret to select from
   170                              type: object
   171                              properties:
   172                                name:
   173                                  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?'
   174                                  type: string
   175                                optional:
   176                                  description: Specify whether the Secret must be defined
   177                                  type: boolean
   178                      nodeSelector:
   179                        description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
   180                        type: object
   181                        additionalProperties:
   182                          type: string
   183                      resources:
   184                        description: 'Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   185                        type: object
   186                        properties:
   187                          limits:
   188                            description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   189                            type: object
   190                            additionalProperties:
   191                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   192                              anyOf:
   193                                - type: integer
   194                                - type: string
   195                              x-kubernetes-int-or-string: true
   196                          requests:
   197                            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-compute-resources-container/'
   198                            type: object
   199                            additionalProperties:
   200                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   201                              anyOf:
   202                                - type: integer
   203                                - type: string
   204                              x-kubernetes-int-or-string: true
   205                      selector:
   206                        description: Selector is the label selector for pods to be configured. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.
   207                        type: object
   208                        properties:
   209                          matchExpressions:
   210                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   211                            type: array
   212                            items:
   213                              description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   214                              type: object
   215                              required:
   216                                - key
   217                                - operator
   218                              properties:
   219                                key:
   220                                  description: key is the label key that the selector applies to.
   221                                  type: string
   222                                operator:
   223                                  description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   224                                  type: string
   225                                values:
   226                                  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.
   227                                  type: array
   228                                  items:
   229                                    type: string
   230                          matchLabels:
   231                            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.
   232                            type: object
   233                            additionalProperties:
   234                              type: string
   235                      tolerations:
   236                        description: Tolerations are the pod's tolerations.
   237                        type: array
   238                        items:
   239                          description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
   240                          type: object
   241                          properties:
   242                            effect:
   243                              description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
   244                              type: string
   245                            key:
   246                              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.
   247                              type: string
   248                            operator:
   249                              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.
   250                              type: string
   251                            tolerationSeconds:
   252                              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.
   253                              type: integer
   254                              format: int64
   255                            value:
   256                              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.
   257                              type: string
   258                      volumeMounts:
   259                        description: List of VolumeMounts to set in the container.
   260                        type: array
   261                        items:
   262                          description: VolumeMount describes a mounting of a Volume within a container.
   263                          type: object
   264                          required:
   265                            - mountPath
   266                            - name
   267                          properties:
   268                            mountPath:
   269                              description: Path within the container at which the volume should be mounted.  Must not contain ':'.
   270                              type: string
   271                            mountPropagation:
   272                              description: mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.
   273                              type: string
   274                            name:
   275                              description: This must match the Name of a Volume.
   276                              type: string
   277                            readOnly:
   278                              description: Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
   279                              type: boolean
   280                            subPath:
   281                              description: Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).
   282                              type: string
   283                            subPathExpr:
   284                              description: Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.
   285                              type: string
   286                      volumes:
   287                        description: List of Volumes to set in the podSpec.
   288                        type: array
   289                        items:
   290                          description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
   291                          type: object
   292                          required:
   293                            - name
   294                          properties:
   295                            awsElasticBlockStore:
   296                              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'
   297                              type: object
   298                              required:
   299                                - volumeID
   300                              properties:
   301                                fsType:
   302                                  description: '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'
   303                                  type: string
   304                                partition:
   305                                  description: '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).'
   306                                  type: integer
   307                                  format: int32
   308                                readOnly:
   309                                  description: 'Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
   310                                  type: boolean
   311                                volumeID:
   312                                  description: 'Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
   313                                  type: string
   314                            azureDisk:
   315                              description: AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
   316                              type: object
   317                              required:
   318                                - diskName
   319                                - diskURI
   320                              properties:
   321                                cachingMode:
   322                                  description: 'Host Caching mode: None, Read Only, Read Write.'
   323                                  type: string
   324                                diskName:
   325                                  description: The Name of the data disk in the blob storage
   326                                  type: string
   327                                diskURI:
   328                                  description: The URI the data disk in the blob storage
   329                                  type: string
   330                                fsType:
   331                                  description: 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.
   332                                  type: string
   333                                kind:
   334                                  description: 'Expected values 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'
   335                                  type: string
   336                                readOnly:
   337                                  description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
   338                                  type: boolean
   339                            azureFile:
   340                              description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
   341                              type: object
   342                              required:
   343                                - secretName
   344                                - shareName
   345                              properties:
   346                                readOnly:
   347                                  description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
   348                                  type: boolean
   349                                secretName:
   350                                  description: the name of secret that contains Azure Storage Account Name and Key
   351                                  type: string
   352                                shareName:
   353                                  description: Share Name
   354                                  type: string
   355                            cephfs:
   356                              description: CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
   357                              type: object
   358                              required:
   359                                - monitors
   360                              properties:
   361                                monitors:
   362                                  description: 'Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
   363                                  type: array
   364                                  items:
   365                                    type: string
   366                                path:
   367                                  description: 'Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
   368                                  type: string
   369                                readOnly:
   370                                  description: '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'
   371                                  type: boolean
   372                                secretFile:
   373                                  description: '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'
   374                                  type: string
   375                                secretRef:
   376                                  description: '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'
   377                                  type: object
   378                                  properties:
   379                                    name:
   380                                      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?'
   381                                      type: string
   382                                user:
   383                                  description: 'Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
   384                                  type: string
   385                            cinder:
   386                              description: 'Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
   387                              type: object
   388                              required:
   389                                - volumeID
   390                              properties:
   391                                fsType:
   392                                  description: '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'
   393                                  type: string
   394                                readOnly:
   395                                  description: 'Optional: 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'
   396                                  type: boolean
   397                                secretRef:
   398                                  description: 'Optional: points to a secret object containing parameters used to connect to OpenStack.'
   399                                  type: object
   400                                  properties:
   401                                    name:
   402                                      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?'
   403                                      type: string
   404                                volumeID:
   405                                  description: 'volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
   406                                  type: string
   407                            configMap:
   408                              description: ConfigMap represents a configMap that should populate this volume
   409                              type: object
   410                              properties:
   411                                defaultMode:
   412                                  description: '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.'
   413                                  type: integer
   414                                  format: int32
   415                                items:
   416                                  description: 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 '..'.
   417                                  type: array
   418                                  items:
   419                                    description: Maps a string key to a path within a volume.
   420                                    type: object
   421                                    required:
   422                                      - key
   423                                      - path
   424                                    properties:
   425                                      key:
   426                                        description: The key to project.
   427                                        type: string
   428                                      mode:
   429                                        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.'
   430                                        type: integer
   431                                        format: int32
   432                                      path:
   433                                        description: 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 '..'.
   434                                        type: string
   435                                name:
   436                                  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?'
   437                                  type: string
   438                                optional:
   439                                  description: Specify whether the ConfigMap or its keys must be defined
   440                                  type: boolean
   441                            csi:
   442                              description: CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
   443                              type: object
   444                              required:
   445                                - driver
   446                              properties:
   447                                driver:
   448                                  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.
   449                                  type: string
   450                                fsType:
   451                                  description: Filesystem type 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.
   452                                  type: string
   453                                nodePublishSecretRef:
   454                                  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.
   455                                  type: object
   456                                  properties:
   457                                    name:
   458                                      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?'
   459                                      type: string
   460                                readOnly:
   461                                  description: Specifies a read-only configuration for the volume. Defaults to false (read/write).
   462                                  type: boolean
   463                                volumeAttributes:
   464                                  description: VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
   465                                  type: object
   466                                  additionalProperties:
   467                                    type: string
   468                            downwardAPI:
   469                              description: DownwardAPI represents downward API about the pod that should populate this volume
   470                              type: object
   471                              properties:
   472                                defaultMode:
   473                                  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.'
   474                                  type: integer
   475                                  format: int32
   476                                items:
   477                                  description: Items is a list of downward API volume file
   478                                  type: array
   479                                  items:
   480                                    description: DownwardAPIVolumeFile represents information to create the file containing the pod field
   481                                    type: object
   482                                    required:
   483                                      - path
   484                                    properties:
   485                                      fieldRef:
   486                                        description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
   487                                        type: object
   488                                        required:
   489                                          - fieldPath
   490                                        properties:
   491                                          apiVersion:
   492                                            description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
   493                                            type: string
   494                                          fieldPath:
   495                                            description: Path of the field to select in the specified API version.
   496                                            type: string
   497                                      mode:
   498                                        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.'
   499                                        type: integer
   500                                        format: int32
   501                                      path:
   502                                        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 ''..'''
   503                                        type: string
   504                                      resourceFieldRef:
   505                                        description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
   506                                        type: object
   507                                        required:
   508                                          - resource
   509                                        properties:
   510                                          containerName:
   511                                            description: 'Container name: required for volumes, optional for env vars'
   512                                            type: string
   513                                          divisor:
   514                                            description: Specifies the output format of the exposed resources, defaults to "1"
   515                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   516                                            anyOf:
   517                                              - type: integer
   518                                              - type: string
   519                                            x-kubernetes-int-or-string: true
   520                                          resource:
   521                                            description: 'Required: resource to select'
   522                                            type: string
   523                            emptyDir:
   524                              description: 'EmptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
   525                              type: object
   526                              properties:
   527                                medium:
   528                                  description: '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'
   529                                  type: string
   530                                sizeLimit:
   531                                  description: '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'
   532                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   533                                  anyOf:
   534                                    - type: integer
   535                                    - type: string
   536                                  x-kubernetes-int-or-string: true
   537                            ephemeral:
   538                              description: "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). 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."
   539                              type: object
   540                              properties:
   541                                readOnly:
   542                                  description: Specifies a read-only configuration for the volume. Defaults to false (read/write).
   543                                  type: boolean
   544                                volumeClaimTemplate:
   545                                  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."
   546                                  type: object
   547                                  required:
   548                                    - spec
   549                                  properties:
   550                                    metadata:
   551                                      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.
   552                                      type: object
   553                                    spec:
   554                                      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.
   555                                      type: object
   556                                      properties:
   557                                        accessModes:
   558                                          description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
   559                                          type: array
   560                                          items:
   561                                            type: string
   562                                        dataSource:
   563                                          description: 'This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. 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.'
   564                                          type: object
   565                                          required:
   566                                            - kind
   567                                            - name
   568                                          properties:
   569                                            apiGroup:
   570                                              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.
   571                                              type: string
   572                                            kind:
   573                                              description: Kind is the type of resource being referenced
   574                                              type: string
   575                                            name:
   576                                              description: Name is the name of resource being referenced
   577                                              type: string
   578                                        resources:
   579                                          description: 'Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
   580                                          type: object
   581                                          properties:
   582                                            limits:
   583                                              description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   584                                              type: object
   585                                              additionalProperties:
   586                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   587                                                anyOf:
   588                                                  - type: integer
   589                                                  - type: string
   590                                                x-kubernetes-int-or-string: true
   591                                            requests:
   592                                              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-compute-resources-container/'
   593                                              type: object
   594                                              additionalProperties:
   595                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   596                                                anyOf:
   597                                                  - type: integer
   598                                                  - type: string
   599                                                x-kubernetes-int-or-string: true
   600                                        selector:
   601                                          description: A label query over volumes to consider for binding.
   602                                          type: object
   603                                          properties:
   604                                            matchExpressions:
   605                                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   606                                              type: array
   607                                              items:
   608                                                description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   609                                                type: object
   610                                                required:
   611                                                  - key
   612                                                  - operator
   613                                                properties:
   614                                                  key:
   615                                                    description: key is the label key that the selector applies to.
   616                                                    type: string
   617                                                  operator:
   618                                                    description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   619                                                    type: string
   620                                                  values:
   621                                                    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.
   622                                                    type: array
   623                                                    items:
   624                                                      type: string
   625                                            matchLabels:
   626                                              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.
   627                                              type: object
   628                                              additionalProperties:
   629                                                type: string
   630                                        storageClassName:
   631                                          description: 'Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
   632                                          type: string
   633                                        volumeMode:
   634                                          description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
   635                                          type: string
   636                                        volumeName:
   637                                          description: VolumeName is the binding reference to the PersistentVolume backing this claim.
   638                                          type: string
   639                            fc:
   640                              description: FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
   641                              type: object
   642                              properties:
   643                                fsType:
   644                                  description: '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'
   645                                  type: string
   646                                lun:
   647                                  description: 'Optional: FC target lun number'
   648                                  type: integer
   649                                  format: int32
   650                                readOnly:
   651                                  description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
   652                                  type: boolean
   653                                targetWWNs:
   654                                  description: 'Optional: FC target worldwide names (WWNs)'
   655                                  type: array
   656                                  items:
   657                                    type: string
   658                                wwids:
   659                                  description: 'Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
   660                                  type: array
   661                                  items:
   662                                    type: string
   663                            flexVolume:
   664                              description: FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
   665                              type: object
   666                              required:
   667                                - driver
   668                              properties:
   669                                driver:
   670                                  description: Driver is the name of the driver to use for this volume.
   671                                  type: string
   672                                fsType:
   673                                  description: 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.
   674                                  type: string
   675                                options:
   676                                  description: 'Optional: Extra command options if any.'
   677                                  type: object
   678                                  additionalProperties:
   679                                    type: string
   680                                readOnly:
   681                                  description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
   682                                  type: boolean
   683                                secretRef:
   684                                  description: '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.'
   685                                  type: object
   686                                  properties:
   687                                    name:
   688                                      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?'
   689                                      type: string
   690                            flocker:
   691                              description: Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
   692                              type: object
   693                              properties:
   694                                datasetName:
   695                                  description: Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
   696                                  type: string
   697                                datasetUUID:
   698                                  description: UUID of the dataset. This is unique identifier of a Flocker dataset
   699                                  type: string
   700                            gcePersistentDisk:
   701                              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'
   702                              type: object
   703                              required:
   704                                - pdName
   705                              properties:
   706                                fsType:
   707                                  description: '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'
   708                                  type: string
   709                                partition:
   710                                  description: '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'
   711                                  type: integer
   712                                  format: int32
   713                                pdName:
   714                                  description: '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'
   715                                  type: string
   716                                readOnly:
   717                                  description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
   718                                  type: boolean
   719                            gitRepo:
   720                              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.'
   721                              type: object
   722                              required:
   723                                - repository
   724                              properties:
   725                                directory:
   726                                  description: 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.
   727                                  type: string
   728                                repository:
   729                                  description: Repository URL
   730                                  type: string
   731                                revision:
   732                                  description: Commit hash for the specified revision.
   733                                  type: string
   734                            glusterfs:
   735                              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'
   736                              type: object
   737                              required:
   738                                - endpoints
   739                                - path
   740                              properties:
   741                                endpoints:
   742                                  description: 'EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
   743                                  type: string
   744                                path:
   745                                  description: 'Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
   746                                  type: string
   747                                readOnly:
   748                                  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'
   749                                  type: boolean
   750                            hostPath:
   751                              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.'
   752                              type: object
   753                              required:
   754                                - path
   755                              properties:
   756                                path:
   757                                  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'
   758                                  type: string
   759                                type:
   760                                  description: 'Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
   761                                  type: string
   762                            iscsi:
   763                              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'
   764                              type: object
   765                              required:
   766                                - iqn
   767                                - lun
   768                                - targetPortal
   769                              properties:
   770                                chapAuthDiscovery:
   771                                  description: whether support iSCSI Discovery CHAP authentication
   772                                  type: boolean
   773                                chapAuthSession:
   774                                  description: whether support iSCSI Session CHAP authentication
   775                                  type: boolean
   776                                fsType:
   777                                  description: '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'
   778                                  type: string
   779                                initiatorName:
   780                                  description: Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
   781                                  type: string
   782                                iqn:
   783                                  description: Target iSCSI Qualified Name.
   784                                  type: string
   785                                iscsiInterface:
   786                                  description: iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
   787                                  type: string
   788                                lun:
   789                                  description: iSCSI Target Lun number.
   790                                  type: integer
   791                                  format: int32
   792                                portals:
   793                                  description: 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).
   794                                  type: array
   795                                  items:
   796                                    type: string
   797                                readOnly:
   798                                  description: ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
   799                                  type: boolean
   800                                secretRef:
   801                                  description: CHAP Secret for iSCSI target and initiator authentication
   802                                  type: object
   803                                  properties:
   804                                    name:
   805                                      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?'
   806                                      type: string
   807                                targetPortal:
   808                                  description: 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).
   809                                  type: string
   810                            name:
   811                              description: 'Volume''s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   812                              type: string
   813                            nfs:
   814                              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'
   815                              type: object
   816                              required:
   817                                - path
   818                                - server
   819                              properties:
   820                                path:
   821                                  description: 'Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
   822                                  type: string
   823                                readOnly:
   824                                  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'
   825                                  type: boolean
   826                                server:
   827                                  description: 'Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
   828                                  type: string
   829                            persistentVolumeClaim:
   830                              description: 'PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
   831                              type: object
   832                              required:
   833                                - claimName
   834                              properties:
   835                                claimName:
   836                                  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'
   837                                  type: string
   838                                readOnly:
   839                                  description: Will force the ReadOnly setting in VolumeMounts. Default false.
   840                                  type: boolean
   841                            photonPersistentDisk:
   842                              description: PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
   843                              type: object
   844                              required:
   845                                - pdID
   846                              properties:
   847                                fsType:
   848                                  description: 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.
   849                                  type: string
   850                                pdID:
   851                                  description: ID that identifies Photon Controller persistent disk
   852                                  type: string
   853                            portworxVolume:
   854                              description: PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
   855                              type: object
   856                              required:
   857                                - volumeID
   858                              properties:
   859                                fsType:
   860                                  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.
   861                                  type: string
   862                                readOnly:
   863                                  description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
   864                                  type: boolean
   865                                volumeID:
   866                                  description: VolumeID uniquely identifies a Portworx volume
   867                                  type: string
   868                            projected:
   869                              description: Items for all in one resources secrets, configmaps, and downward API
   870                              type: object
   871                              properties:
   872                                defaultMode:
   873                                  description: 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.
   874                                  type: integer
   875                                  format: int32
   876                                sources:
   877                                  description: list of volume projections
   878                                  type: array
   879                                  items:
   880                                    description: Projection that may be projected along with other supported volume types
   881                                    type: object
   882                                    properties:
   883                                      configMap:
   884                                        description: information about the configMap data to project
   885                                        type: object
   886                                        properties:
   887                                          items:
   888                                            description: 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 '..'.
   889                                            type: array
   890                                            items:
   891                                              description: Maps a string key to a path within a volume.
   892                                              type: object
   893                                              required:
   894                                                - key
   895                                                - path
   896                                              properties:
   897                                                key:
   898                                                  description: The key to project.
   899                                                  type: string
   900                                                mode:
   901                                                  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.'
   902                                                  type: integer
   903                                                  format: int32
   904                                                path:
   905                                                  description: 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 '..'.
   906                                                  type: string
   907                                          name:
   908                                            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?'
   909                                            type: string
   910                                          optional:
   911                                            description: Specify whether the ConfigMap or its keys must be defined
   912                                            type: boolean
   913                                      downwardAPI:
   914                                        description: information about the downwardAPI data to project
   915                                        type: object
   916                                        properties:
   917                                          items:
   918                                            description: Items is a list of DownwardAPIVolume file
   919                                            type: array
   920                                            items:
   921                                              description: DownwardAPIVolumeFile represents information to create the file containing the pod field
   922                                              type: object
   923                                              required:
   924                                                - path
   925                                              properties:
   926                                                fieldRef:
   927                                                  description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
   928                                                  type: object
   929                                                  required:
   930                                                    - fieldPath
   931                                                  properties:
   932                                                    apiVersion:
   933                                                      description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
   934                                                      type: string
   935                                                    fieldPath:
   936                                                      description: Path of the field to select in the specified API version.
   937                                                      type: string
   938                                                mode:
   939                                                  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.'
   940                                                  type: integer
   941                                                  format: int32
   942                                                path:
   943                                                  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 ''..'''
   944                                                  type: string
   945                                                resourceFieldRef:
   946                                                  description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
   947                                                  type: object
   948                                                  required:
   949                                                    - resource
   950                                                  properties:
   951                                                    containerName:
   952                                                      description: 'Container name: required for volumes, optional for env vars'
   953                                                      type: string
   954                                                    divisor:
   955                                                      description: Specifies the output format of the exposed resources, defaults to "1"
   956                                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   957                                                      anyOf:
   958                                                        - type: integer
   959                                                        - type: string
   960                                                      x-kubernetes-int-or-string: true
   961                                                    resource:
   962                                                      description: 'Required: resource to select'
   963                                                      type: string
   964                                      secret:
   965                                        description: information about the secret data to project
   966                                        type: object
   967                                        properties:
   968                                          items:
   969                                            description: 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 '..'.
   970                                            type: array
   971                                            items:
   972                                              description: Maps a string key to a path within a volume.
   973                                              type: object
   974                                              required:
   975                                                - key
   976                                                - path
   977                                              properties:
   978                                                key:
   979                                                  description: The key to project.
   980                                                  type: string
   981                                                mode:
   982                                                  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.'
   983                                                  type: integer
   984                                                  format: int32
   985                                                path:
   986                                                  description: 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 '..'.
   987                                                  type: string
   988                                          name:
   989                                            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?'
   990                                            type: string
   991                                          optional:
   992                                            description: Specify whether the Secret or its key must be defined
   993                                            type: boolean
   994                                      serviceAccountToken:
   995                                        description: information about the serviceAccountToken data to project
   996                                        type: object
   997                                        required:
   998                                          - path
   999                                        properties:
  1000                                          audience:
  1001                                            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.
  1002                                            type: string
  1003                                          expirationSeconds:
  1004                                            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.
  1005                                            type: integer
  1006                                            format: int64
  1007                                          path:
  1008                                            description: Path is the path relative to the mount point of the file to project the token into.
  1009                                            type: string
  1010                            quobyte:
  1011                              description: Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
  1012                              type: object
  1013                              required:
  1014                                - registry
  1015                                - volume
  1016                              properties:
  1017                                group:
  1018                                  description: Group to map volume access to Default is no group
  1019                                  type: string
  1020                                readOnly:
  1021                                  description: ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
  1022                                  type: boolean
  1023                                registry:
  1024                                  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
  1025                                  type: string
  1026                                tenant:
  1027                                  description: Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  1028                                  type: string
  1029                                user:
  1030                                  description: User to map volume access to Defaults to serivceaccount user
  1031                                  type: string
  1032                                volume:
  1033                                  description: Volume is a string that references an already created Quobyte volume by name.
  1034                                  type: string
  1035                            rbd:
  1036                              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'
  1037                              type: object
  1038                              required:
  1039                                - image
  1040                                - monitors
  1041                              properties:
  1042                                fsType:
  1043                                  description: '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'
  1044                                  type: string
  1045                                image:
  1046                                  description: 'The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
  1047                                  type: string
  1048                                keyring:
  1049                                  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'
  1050                                  type: string
  1051                                monitors:
  1052                                  description: 'A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
  1053                                  type: array
  1054                                  items:
  1055                                    type: string
  1056                                pool:
  1057                                  description: 'The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
  1058                                  type: string
  1059                                readOnly:
  1060                                  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'
  1061                                  type: boolean
  1062                                secretRef:
  1063                                  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'
  1064                                  type: object
  1065                                  properties:
  1066                                    name:
  1067                                      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?'
  1068                                      type: string
  1069                                user:
  1070                                  description: 'The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
  1071                                  type: string
  1072                            scaleIO:
  1073                              description: ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  1074                              type: object
  1075                              required:
  1076                                - gateway
  1077                                - secretRef
  1078                                - system
  1079                              properties:
  1080                                fsType:
  1081                                  description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
  1082                                  type: string
  1083                                gateway:
  1084                                  description: The host address of the ScaleIO API Gateway.
  1085                                  type: string
  1086                                protectionDomain:
  1087                                  description: The name of the ScaleIO Protection Domain for the configured storage.
  1088                                  type: string
  1089                                readOnly:
  1090                                  description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  1091                                  type: boolean
  1092                                secretRef:
  1093                                  description: SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
  1094                                  type: object
  1095                                  properties:
  1096                                    name:
  1097                                      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?'
  1098                                      type: string
  1099                                sslEnabled:
  1100                                  description: Flag to enable/disable SSL communication with Gateway, default false
  1101                                  type: boolean
  1102                                storageMode:
  1103                                  description: Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
  1104                                  type: string
  1105                                storagePool:
  1106                                  description: The ScaleIO Storage Pool associated with the protection domain.
  1107                                  type: string
  1108                                system:
  1109                                  description: The name of the storage system as configured in ScaleIO.
  1110                                  type: string
  1111                                volumeName:
  1112                                  description: The name of a volume already created in the ScaleIO system that is associated with this volume source.
  1113                                  type: string
  1114                            secret:
  1115                              description: 'Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  1116                              type: object
  1117                              properties:
  1118                                defaultMode:
  1119                                  description: '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.'
  1120                                  type: integer
  1121                                  format: int32
  1122                                items:
  1123                                  description: 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 '..'.
  1124                                  type: array
  1125                                  items:
  1126                                    description: Maps a string key to a path within a volume.
  1127                                    type: object
  1128                                    required:
  1129                                      - key
  1130                                      - path
  1131                                    properties:
  1132                                      key:
  1133                                        description: The key to project.
  1134                                        type: string
  1135                                      mode:
  1136                                        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.'
  1137                                        type: integer
  1138                                        format: int32
  1139                                      path:
  1140                                        description: 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 '..'.
  1141                                        type: string
  1142                                optional:
  1143                                  description: Specify whether the Secret or its keys must be defined
  1144                                  type: boolean
  1145                                secretName:
  1146                                  description: 'Name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  1147                                  type: string
  1148                            storageos:
  1149                              description: StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  1150                              type: object
  1151                              properties:
  1152                                fsType:
  1153                                  description: 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.
  1154                                  type: string
  1155                                readOnly:
  1156                                  description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  1157                                  type: boolean
  1158                                secretRef:
  1159                                  description: SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.
  1160                                  type: object
  1161                                  properties:
  1162                                    name:
  1163                                      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?'
  1164                                      type: string
  1165                                volumeName:
  1166                                  description: VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.
  1167                                  type: string
  1168                                volumeNamespace:
  1169                                  description: VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
  1170                                  type: string
  1171                            vsphereVolume:
  1172                              description: VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
  1173                              type: object
  1174                              required:
  1175                                - volumePath
  1176                              properties:
  1177                                fsType:
  1178                                  description: 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.
  1179                                  type: string
  1180                                storagePolicyID:
  1181                                  description: Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
  1182                                  type: string
  1183                                storagePolicyName:
  1184                                  description: Storage Policy Based Management (SPBM) profile name.
  1185                                  type: string
  1186                                volumePath:
  1187                                  description: Path that identifies vSphere volume vmdk
  1188                                  type: string
  1189                  installPlanApproval:
  1190                    description: Approval is the user approval policy for an InstallPlan. It must be one of "Automatic" or "Manual".
  1191                    type: string
  1192                  name:
  1193                    type: string
  1194                  source:
  1195                    type: string
  1196                  sourceNamespace:
  1197                    type: string
  1198                  startingCSV:
  1199                    type: string
  1200              status:
  1201                type: object
  1202                required:
  1203                  - lastUpdated
  1204                properties:
  1205                  catalogHealth:
  1206                    description: CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. It is used to determine SubscriptionStatusConditions related to CatalogSources.
  1207                    type: array
  1208                    items:
  1209                      description: SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.
  1210                      type: object
  1211                      required:
  1212                        - catalogSourceRef
  1213                        - healthy
  1214                        - lastUpdated
  1215                      properties:
  1216                        catalogSourceRef:
  1217                          description: CatalogSourceRef is a reference to a CatalogSource.
  1218                          type: object
  1219                          properties:
  1220                            apiVersion:
  1221                              description: API version of the referent.
  1222                              type: string
  1223                            fieldPath:
  1224                              description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
  1225                              type: string
  1226                            kind:
  1227                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1228                              type: string
  1229                            name:
  1230                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1231                              type: string
  1232                            namespace:
  1233                              description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  1234                              type: string
  1235                            resourceVersion:
  1236                              description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  1237                              type: string
  1238                            uid:
  1239                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  1240                              type: string
  1241                        healthy:
  1242                          description: Healthy is true if the CatalogSource is healthy; false otherwise.
  1243                          type: boolean
  1244                        lastUpdated:
  1245                          description: LastUpdated represents the last time that the CatalogSourceHealth changed
  1246                          type: string
  1247                          format: date-time
  1248                  conditions:
  1249                    description: Conditions is a list of the latest available observations about a Subscription's current state.
  1250                    type: array
  1251                    items:
  1252                      description: SubscriptionCondition represents the latest available observations of a Subscription's state.
  1253                      type: object
  1254                      required:
  1255                        - status
  1256                        - type
  1257                      properties:
  1258                        lastHeartbeatTime:
  1259                          description: LastHeartbeatTime is the last time we got an update on a given condition
  1260                          type: string
  1261                          format: date-time
  1262                        lastTransitionTime:
  1263                          description: LastTransitionTime is the last time the condition transit from one status to another
  1264                          type: string
  1265                          format: date-time
  1266                        message:
  1267                          description: Message is a human-readable message indicating details about last transition.
  1268                          type: string
  1269                        reason:
  1270                          description: Reason is a one-word CamelCase reason for the condition's last transition.
  1271                          type: string
  1272                        status:
  1273                          description: Status is the status of the condition, one of True, False, Unknown.
  1274                          type: string
  1275                        type:
  1276                          description: Type is the type of Subscription condition.
  1277                          type: string
  1278                  currentCSV:
  1279                    description: CurrentCSV is the CSV the Subscription is progressing to.
  1280                    type: string
  1281                  installPlanGeneration:
  1282                    description: InstallPlanGeneration is the current generation of the installplan
  1283                    type: integer
  1284                  installPlanRef:
  1285                    description: InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.
  1286                    type: object
  1287                    properties:
  1288                      apiVersion:
  1289                        description: API version of the referent.
  1290                        type: string
  1291                      fieldPath:
  1292                        description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
  1293                        type: string
  1294                      kind:
  1295                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1296                        type: string
  1297                      name:
  1298                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1299                        type: string
  1300                      namespace:
  1301                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  1302                        type: string
  1303                      resourceVersion:
  1304                        description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  1305                        type: string
  1306                      uid:
  1307                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  1308                        type: string
  1309                  installedCSV:
  1310                    description: InstalledCSV is the CSV currently installed by the Subscription.
  1311                    type: string
  1312                  installplan:
  1313                    description: 'Install is a reference to the latest InstallPlan generated for the Subscription. DEPRECATED: InstallPlanRef'
  1314                    type: object
  1315                    required:
  1316                      - apiVersion
  1317                      - kind
  1318                      - name
  1319                      - uuid
  1320                    properties:
  1321                      apiVersion:
  1322                        type: string
  1323                      kind:
  1324                        type: string
  1325                      name:
  1326                        type: string
  1327                      uuid:
  1328                        description: UID is a type that holds unique ID values, including UUIDs.  Because we don't ONLY use UUIDs, this is an alias to string.  Being a type captures intent and helps make sure that UIDs and names do not get conflated.
  1329                        type: string
  1330                  lastUpdated:
  1331                    description: LastUpdated represents the last time that the Subscription status was updated.
  1332                    type: string
  1333                    format: date-time
  1334                  reason:
  1335                    description: Reason is the reason the Subscription was transitioned to its current state.
  1336                    type: string
  1337                  state:
  1338                    description: State represents the current state of the Subscription
  1339                    type: string
  1340        served: true
  1341        storage: true
  1342        subresources:
  1343          status: {}
  1344