diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 00d21dd76f..82cf246a59 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,6 +7,7 @@ # order is alphabetical for easier maintenance. # # Bharath Sreekanth (bharathsreekanth) +# Chiman Jain (chimanjain) # Deepak Ghivari (Deepak-Ghivari) # Matt Schmaelzle (mjsdell) # Mukesh Gandharva (mgandharva) @@ -17,4 +18,4 @@ # Sean Gallacher (gallacher) # Yamunadevi Shanmugam (shanmydell) -* @bharathsreekanth @Deepak-Ghivari @gallacher @mgandharva @mjsdell @prablr79 @rajendraindukuri @rajkumar-palani @rsedlock1958 @shanmydell +* @bharathsreekanth @chimanjain @Deepak-Ghivari @gallacher @mgandharva @mjsdell @prablr79 @rajendraindukuri @rajkumar-palani @rsedlock1958 @shanmydell diff --git a/content/docs/csidriver/_index.md b/content/docs/csidriver/_index.md index dc4dc726aa..eaa275f6b9 100644 --- a/content/docs/csidriver/_index.md +++ b/content/docs/csidriver/_index.md @@ -47,7 +47,7 @@ The CSI Drivers by Dell implement an interface between [CSI](https://kubernetes- | Topology | yes | yes | yes | yes | yes | | Multi-array | yes | yes | yes | yes | yes | | Volume Health Monitoring | yes | yes | yes | yes | yes | -| Storage Capacity Tracking | no | no | no | no | yes | +| Storage Capacity Tracking | no | no | no | yes | yes | {{}} ### Supported Storage Platforms {{}} diff --git a/content/docs/csidriver/features/powerscale.md b/content/docs/csidriver/features/powerscale.md index 085ee57ffd..687cc093c4 100644 --- a/content/docs/csidriver/features/powerscale.md +++ b/content/docs/csidriver/features/powerscale.md @@ -568,3 +568,17 @@ When this feature is enabled, the existing `ReadWriteOnce(RWO)` access mode rest To migrate existing PersistentVolumes to use `ReadWriteOncePod`, please follow the instruction from [here](https://kubernetes.io/blog/2021/09/13/read-write-once-pod-access-mode-alpha/#migrating-existing-persistentvolumes). +## Storage Capacity Tracking + +CSI PowerScale driver version 2.7.0 and above supports Storage Capacity Tracking. + +This feature helps the scheduler to make more informed choices about where to start pods which depends on unbound volumes with late binding (aka "WaitForFirstConsumer"). Pods will be scheduled on a node (satisfying the topology constraints) only if the requested capacity is available on the storage array. +If such a node is not available, the pods stay Pending. This means they are not scheduled. + +Without storage capacity tracking, pods get scheduled on a node satisfying the topology constraints. If the required capacity is not available, volume attachment to the pods fails, and pods remain in ContainerCreating state. Storage capacity tracking eliminates unnecessary scheduling of pods when there is insufficient capacity. + +The attribute `storageCapacity.enabled` in `my-powerscale-settings.yaml` can be used to enable/disable the feature during driver installation. +To configure how often driver checks for changed capacity set `storageCapacity.pollInterval` attribute. + +**Note:** +>This feature requires Kubernetes v1.24 and above and will be automatically disabled in lower versions of Kubernetes. diff --git a/content/docs/csidriver/installation/helm/isilon.md b/content/docs/csidriver/installation/helm/isilon.md index df100e0bb4..ef1c806b41 100644 --- a/content/docs/csidriver/installation/helm/isilon.md +++ b/content/docs/csidriver/installation/helm/isilon.md @@ -145,6 +145,8 @@ CRDs should be configured during replication prepare stage with repctl as descri | kubeletConfigDir | Specify kubelet config dir path | Yes | "/var/lib/kubelet" | | enableCustomTopology | Indicates PowerScale FQDN/IP which will be fetched from node label and the same will be used by controller and node pod to establish a connection to Array. This requires enableCustomTopology to be enabled. | No | false | | fsGroupPolicy | Defines which FS Group policy mode to be used, Supported modes `None, File and ReadWriteOnceWithFSType` | No | "ReadWriteOnceWithFSType" | + | storageCapacity.enabled | Enable/Disable storage capacity tracking | No | true | + | storageCapacity.pollInterval | Configure how often the driver checks for changed capacity | No | 5m | | podmonAPIPort | Defines the port which csi-driver will use within the cluster to support podmon | No | 8083 | | maxPathLen | Defines the maximum length of path for a volume | No | 192 | | ***controller*** | Configure controller pod specific parameters | | | @@ -314,4 +316,3 @@ level=error clusterName=powerscale runid=10 msg="mount failed: exit status 32 mounting arguments: -t nfs -o rw XX.XX.XX.XX:/ifs/data/csi/k8s-ac7b91962d /var/lib/kubelet/pods/9f72096a-a7dc-4517-906c-20697f9d7375/volumes/kubernetes.io~csi/k8s-ac7b91962d/mount output: mount.nfs: access denied by server while mounting XX.XX.XX.XX:/ifs/data/csi/k8s-ac7b91962d ``` -