Interface V1beta1Storage.CSIDriverSpecOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
V1beta1Storage.CSIDriverSpec, V1beta1Storage.CSIDriverSpec.Builder
Enclosing class:
V1beta1Storage

public static interface V1beta1Storage.CSIDriverSpecOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting.
    Defines if the underlying volume supports changing ownership and permission of the volume before being mounted.
    com.google.protobuf.ByteString
    Defines if the underlying volume supports changing ownership and permission of the volume before being mounted.
    boolean
    If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations.
    boolean
    RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume.
    boolean
    If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.
    getTokenRequests(int index)
    TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication.
    int
    TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication.
    TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication.
    TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication.
    TokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication.
    VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
    com.google.protobuf.ByteString
    VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
    int
    VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
    VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
    boolean
    attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting.
    boolean
    Defines if the underlying volume supports changing ownership and permission of the volume before being mounted.
    boolean
    If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations.
    boolean
    RequiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume.
    boolean
    If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • hasAttachRequired

      boolean hasAttachRequired()
       attachRequired indicates this CSI volume driver requires an attach
       operation (because it implements the CSI ControllerPublishVolume()
       method), and that the Kubernetes attach detach controller should call
       the attach volume interface which checks the volumeattachment status
       and waits until the volume is attached before proceeding to mounting.
       The CSI external-attacher coordinates with CSI volume driver and updates
       the volumeattachment status when the attach operation is complete.
       If the CSIDriverRegistry feature gate is enabled and the value is
       specified to false, the attach operation will be skipped.
       Otherwise the attach operation will be called.
       This field is immutable.
       +optional
       
      optional bool attachRequired = 1;
    • getAttachRequired

      boolean getAttachRequired()
       attachRequired indicates this CSI volume driver requires an attach
       operation (because it implements the CSI ControllerPublishVolume()
       method), and that the Kubernetes attach detach controller should call
       the attach volume interface which checks the volumeattachment status
       and waits until the volume is attached before proceeding to mounting.
       The CSI external-attacher coordinates with CSI volume driver and updates
       the volumeattachment status when the attach operation is complete.
       If the CSIDriverRegistry feature gate is enabled and the value is
       specified to false, the attach operation will be skipped.
       Otherwise the attach operation will be called.
       This field is immutable.
       +optional
       
      optional bool attachRequired = 1;
    • hasPodInfoOnMount

      boolean hasPodInfoOnMount()
       If set to true, podInfoOnMount indicates this CSI volume driver
       requires additional pod information (like podName, podUID, etc.) during
       mount operations.
       If set to false, pod information will not be passed on mount.
       Default is false.
       The CSI driver specifies podInfoOnMount as part of driver deployment.
       If true, Kubelet will pass pod information as VolumeContext in the CSI
       NodePublishVolume() calls.
       The CSI driver is responsible for parsing and validating the information
       passed in as VolumeContext.
       The following VolumeConext will be passed if podInfoOnMount is set to true.
       This list might grow, but the prefix will be used.
       "csi.storage.k8s.io/pod.name": pod.Name
       "csi.storage.k8s.io/pod.namespace": pod.Namespace
       "csi.storage.k8s.io/pod.uid": string(pod.UID)
       "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume
                                       defined by a CSIVolumeSource, otherwise "false"
       "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only
       required for drivers which support both the "Persistent" and "Ephemeral" VolumeLifecycleMode.
       Other drivers can leave pod info disabled and/or ignore this field.
       As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when
       deployed on such a cluster and the deployment determines which mode that is, for example
       via a command line parameter of the driver.
       This field is immutable.
       +optional
       
      optional bool podInfoOnMount = 2;
    • getPodInfoOnMount

      boolean getPodInfoOnMount()
       If set to true, podInfoOnMount indicates this CSI volume driver
       requires additional pod information (like podName, podUID, etc.) during
       mount operations.
       If set to false, pod information will not be passed on mount.
       Default is false.
       The CSI driver specifies podInfoOnMount as part of driver deployment.
       If true, Kubelet will pass pod information as VolumeContext in the CSI
       NodePublishVolume() calls.
       The CSI driver is responsible for parsing and validating the information
       passed in as VolumeContext.
       The following VolumeConext will be passed if podInfoOnMount is set to true.
       This list might grow, but the prefix will be used.
       "csi.storage.k8s.io/pod.name": pod.Name
       "csi.storage.k8s.io/pod.namespace": pod.Namespace
       "csi.storage.k8s.io/pod.uid": string(pod.UID)
       "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume
                                       defined by a CSIVolumeSource, otherwise "false"
       "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only
       required for drivers which support both the "Persistent" and "Ephemeral" VolumeLifecycleMode.
       Other drivers can leave pod info disabled and/or ignore this field.
       As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when
       deployed on such a cluster and the deployment determines which mode that is, for example
       via a command line parameter of the driver.
       This field is immutable.
       +optional
       
      optional bool podInfoOnMount = 2;
    • getVolumeLifecycleModesList

      List<String> getVolumeLifecycleModesList()
       VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
       The default if the list is empty is "Persistent", which is the usage
       defined by the CSI specification and implemented in Kubernetes via the usual
       PV/PVC mechanism.
       The other mode is "Ephemeral". In this mode, volumes are defined inline
       inside the pod spec with CSIVolumeSource and their lifecycle is tied to
       the lifecycle of that pod. A driver has to be aware of this
       because it is only going to get a NodePublishVolume call for such a volume.
       For more information about implementing this mode, see
       https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html
       A driver can support one or more of these modes and
       more modes may be added in the future.
       This field is immutable.
       +optional
       
      repeated string volumeLifecycleModes = 3;
    • getVolumeLifecycleModesCount

      int getVolumeLifecycleModesCount()
       VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
       The default if the list is empty is "Persistent", which is the usage
       defined by the CSI specification and implemented in Kubernetes via the usual
       PV/PVC mechanism.
       The other mode is "Ephemeral". In this mode, volumes are defined inline
       inside the pod spec with CSIVolumeSource and their lifecycle is tied to
       the lifecycle of that pod. A driver has to be aware of this
       because it is only going to get a NodePublishVolume call for such a volume.
       For more information about implementing this mode, see
       https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html
       A driver can support one or more of these modes and
       more modes may be added in the future.
       This field is immutable.
       +optional
       
      repeated string volumeLifecycleModes = 3;
    • getVolumeLifecycleModes

      String getVolumeLifecycleModes(int index)
       VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
       The default if the list is empty is "Persistent", which is the usage
       defined by the CSI specification and implemented in Kubernetes via the usual
       PV/PVC mechanism.
       The other mode is "Ephemeral". In this mode, volumes are defined inline
       inside the pod spec with CSIVolumeSource and their lifecycle is tied to
       the lifecycle of that pod. A driver has to be aware of this
       because it is only going to get a NodePublishVolume call for such a volume.
       For more information about implementing this mode, see
       https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html
       A driver can support one or more of these modes and
       more modes may be added in the future.
       This field is immutable.
       +optional
       
      repeated string volumeLifecycleModes = 3;
    • getVolumeLifecycleModesBytes

      com.google.protobuf.ByteString getVolumeLifecycleModesBytes(int index)
       VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports.
       The default if the list is empty is "Persistent", which is the usage
       defined by the CSI specification and implemented in Kubernetes via the usual
       PV/PVC mechanism.
       The other mode is "Ephemeral". In this mode, volumes are defined inline
       inside the pod spec with CSIVolumeSource and their lifecycle is tied to
       the lifecycle of that pod. A driver has to be aware of this
       because it is only going to get a NodePublishVolume call for such a volume.
       For more information about implementing this mode, see
       https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html
       A driver can support one or more of these modes and
       more modes may be added in the future.
       This field is immutable.
       +optional
       
      repeated string volumeLifecycleModes = 3;
    • hasStorageCapacity

      boolean hasStorageCapacity()
       If set to true, storageCapacity indicates that the CSI
       volume driver wants pod scheduling to consider the storage
       capacity that the driver deployment will report by creating
       CSIStorageCapacity objects with capacity information.
       The check can be enabled immediately when deploying a driver.
       In that case, provisioning new volumes with late binding
       will pause until the driver deployment has published
       some suitable CSIStorageCapacity object.
       Alternatively, the driver can be deployed with the field
       unset or false and it can be flipped later when storage
       capacity information has been published.
       This field was immutable in Kubernetes <= 1.22 and now is mutable.
       This is a beta field and only available when the CSIStorageCapacity
       feature is enabled. The default is false.
       +optional
       +featureGate=CSIStorageCapacity
       
      optional bool storageCapacity = 4;
    • getStorageCapacity

      boolean getStorageCapacity()
       If set to true, storageCapacity indicates that the CSI
       volume driver wants pod scheduling to consider the storage
       capacity that the driver deployment will report by creating
       CSIStorageCapacity objects with capacity information.
       The check can be enabled immediately when deploying a driver.
       In that case, provisioning new volumes with late binding
       will pause until the driver deployment has published
       some suitable CSIStorageCapacity object.
       Alternatively, the driver can be deployed with the field
       unset or false and it can be flipped later when storage
       capacity information has been published.
       This field was immutable in Kubernetes <= 1.22 and now is mutable.
       This is a beta field and only available when the CSIStorageCapacity
       feature is enabled. The default is false.
       +optional
       +featureGate=CSIStorageCapacity
       
      optional bool storageCapacity = 4;
    • hasFsGroupPolicy

      boolean hasFsGroupPolicy()
       Defines if the underlying volume supports changing ownership and
       permission of the volume before being mounted.
       Refer to the specific FSGroupPolicy values for additional details.
       This field is immutable.
       Defaults to ReadWriteOnceWithFSType, which will examine each volume
       to determine if Kubernetes should modify ownership and permissions of the volume.
       With the default policy the defined fsGroup will only be applied
       if a fstype is defined and the volume's access mode contains ReadWriteOnce.
       +optional
       
      optional string fsGroupPolicy = 5;
    • getFsGroupPolicy

      String getFsGroupPolicy()
       Defines if the underlying volume supports changing ownership and
       permission of the volume before being mounted.
       Refer to the specific FSGroupPolicy values for additional details.
       This field is immutable.
       Defaults to ReadWriteOnceWithFSType, which will examine each volume
       to determine if Kubernetes should modify ownership and permissions of the volume.
       With the default policy the defined fsGroup will only be applied
       if a fstype is defined and the volume's access mode contains ReadWriteOnce.
       +optional
       
      optional string fsGroupPolicy = 5;
    • getFsGroupPolicyBytes

      com.google.protobuf.ByteString getFsGroupPolicyBytes()
       Defines if the underlying volume supports changing ownership and
       permission of the volume before being mounted.
       Refer to the specific FSGroupPolicy values for additional details.
       This field is immutable.
       Defaults to ReadWriteOnceWithFSType, which will examine each volume
       to determine if Kubernetes should modify ownership and permissions of the volume.
       With the default policy the defined fsGroup will only be applied
       if a fstype is defined and the volume's access mode contains ReadWriteOnce.
       +optional
       
      optional string fsGroupPolicy = 5;
    • getTokenRequestsList

      List<V1beta1Storage.TokenRequest> getTokenRequestsList()
       TokenRequests indicates the CSI driver needs pods' service account
       tokens it is mounting volume for to do necessary authentication. Kubelet
       will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.
       The CSI driver should parse and validate the following VolumeContext:
       "csi.storage.k8s.io/serviceAccount.tokens": {
         "<audience>": {
           "token": <token>,
           "expirationTimestamp": <expiration timestamp in RFC3339>,
         },
         ...
       }
       Note: Audience in each TokenRequest should be different and at
       most one token is empty string. To receive a new token after expiry,
       RequiresRepublish can be used to trigger NodePublishVolume periodically.
       +optional
       +listType=atomic
       
      repeated .k8s.io.api.storage.v1beta1.TokenRequest tokenRequests = 6;
    • getTokenRequests

      V1beta1Storage.TokenRequest getTokenRequests(int index)
       TokenRequests indicates the CSI driver needs pods' service account
       tokens it is mounting volume for to do necessary authentication. Kubelet
       will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.
       The CSI driver should parse and validate the following VolumeContext:
       "csi.storage.k8s.io/serviceAccount.tokens": {
         "<audience>": {
           "token": <token>,
           "expirationTimestamp": <expiration timestamp in RFC3339>,
         },
         ...
       }
       Note: Audience in each TokenRequest should be different and at
       most one token is empty string. To receive a new token after expiry,
       RequiresRepublish can be used to trigger NodePublishVolume periodically.
       +optional
       +listType=atomic
       
      repeated .k8s.io.api.storage.v1beta1.TokenRequest tokenRequests = 6;
    • getTokenRequestsCount

      int getTokenRequestsCount()
       TokenRequests indicates the CSI driver needs pods' service account
       tokens it is mounting volume for to do necessary authentication. Kubelet
       will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.
       The CSI driver should parse and validate the following VolumeContext:
       "csi.storage.k8s.io/serviceAccount.tokens": {
         "<audience>": {
           "token": <token>,
           "expirationTimestamp": <expiration timestamp in RFC3339>,
         },
         ...
       }
       Note: Audience in each TokenRequest should be different and at
       most one token is empty string. To receive a new token after expiry,
       RequiresRepublish can be used to trigger NodePublishVolume periodically.
       +optional
       +listType=atomic
       
      repeated .k8s.io.api.storage.v1beta1.TokenRequest tokenRequests = 6;
    • getTokenRequestsOrBuilderList

      List<? extends V1beta1Storage.TokenRequestOrBuilder> getTokenRequestsOrBuilderList()
       TokenRequests indicates the CSI driver needs pods' service account
       tokens it is mounting volume for to do necessary authentication. Kubelet
       will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.
       The CSI driver should parse and validate the following VolumeContext:
       "csi.storage.k8s.io/serviceAccount.tokens": {
         "<audience>": {
           "token": <token>,
           "expirationTimestamp": <expiration timestamp in RFC3339>,
         },
         ...
       }
       Note: Audience in each TokenRequest should be different and at
       most one token is empty string. To receive a new token after expiry,
       RequiresRepublish can be used to trigger NodePublishVolume periodically.
       +optional
       +listType=atomic
       
      repeated .k8s.io.api.storage.v1beta1.TokenRequest tokenRequests = 6;
    • getTokenRequestsOrBuilder

      V1beta1Storage.TokenRequestOrBuilder getTokenRequestsOrBuilder(int index)
       TokenRequests indicates the CSI driver needs pods' service account
       tokens it is mounting volume for to do necessary authentication. Kubelet
       will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.
       The CSI driver should parse and validate the following VolumeContext:
       "csi.storage.k8s.io/serviceAccount.tokens": {
         "<audience>": {
           "token": <token>,
           "expirationTimestamp": <expiration timestamp in RFC3339>,
         },
         ...
       }
       Note: Audience in each TokenRequest should be different and at
       most one token is empty string. To receive a new token after expiry,
       RequiresRepublish can be used to trigger NodePublishVolume periodically.
       +optional
       +listType=atomic
       
      repeated .k8s.io.api.storage.v1beta1.TokenRequest tokenRequests = 6;
    • hasRequiresRepublish

      boolean hasRequiresRepublish()
       RequiresRepublish indicates the CSI driver wants `NodePublishVolume`
       being periodically called to reflect any possible change in the mounted
       volume. This field defaults to false.
       Note: After a successful initial NodePublishVolume call, subsequent calls
       to NodePublishVolume should only update the contents of the volume. New
       mount points will not be seen by a running container.
       +optional
       
      optional bool requiresRepublish = 7;
    • getRequiresRepublish

      boolean getRequiresRepublish()
       RequiresRepublish indicates the CSI driver wants `NodePublishVolume`
       being periodically called to reflect any possible change in the mounted
       volume. This field defaults to false.
       Note: After a successful initial NodePublishVolume call, subsequent calls
       to NodePublishVolume should only update the contents of the volume. New
       mount points will not be seen by a running container.
       +optional
       
      optional bool requiresRepublish = 7;