github.com/operator-framework/operator-lifecycle-manager@v0.30.0/deploy/upstream/manifests/0.13.0/0000_50_olm_05-subscription.crd.yaml (about)

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