Description of problem: Block volume expansion no need to expansion filesystem on the node Version-Release number of selected component (if applicable): 4.10.0-0.nightly-2022-01-11-065245 How reproducible: Always Steps to Reproduce: 1.Create storageclass allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: "2022-01-14T03:09:17Z" name: demo-storageclass resourceVersion: "459819" uid: defa1b7b-dd0f-405e-900d-ef4154b84687 parameters: csi.storage.k8s.io/fstype: xfs profile: 10iops-tier provisioner: vpc.block.csi.ibm.io reclaimPolicy: Retain volumeBindingMode: Immediate 2.Create pvc/pod 3.Expand the volume 4.oc describe pvc Name: my-pvc Namespace: resizeblock StorageClass: demo-storageclass Status: Bound Volume: pvc-aa58593f-fffb-4619-83e9-ece86a5364ba Labels: <none> Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 14Gi Access Modes: RWO VolumeMode: Block Used By: pod-with-block Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Provisioning 170m vpc.block.csi.ibm.io_ibm-vpc-block-csi-controller-5dc949cf6-qchpq_b20a7a28-15a6-46ba-87b4-8d9aca9e19f0 External provisioner is provisioning volume for claim "resizeblock/my-pvc" Normal ExternalProvisioning 170m (x3 over 170m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator Normal ProvisioningSucceeded 170m vpc.block.csi.ibm.io_ibm-vpc-block-csi-controller-5dc949cf6-qchpq_b20a7a28-15a6-46ba-87b4-8d9aca9e19f0 Successfully provisioned volume pvc-aa58593f-fffb-4619-83e9-ece86a5364ba Normal Resizing 167m external-resizer vpc.block.csi.ibm.io External resizer is resizing volume pvc-aa58593f-fffb-4619-83e9-ece86a5364ba Warning ExternalExpanding 167m volume_expand Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC. Normal FileSystemResizeRequired 166m external-resizer vpc.block.csi.ibm.io Require file system resize of volume on node Normal FileSystemResizeSuccessful 165m kubelet MountVolume.NodeExpandVolume succeeded for volume "pvc-aa58593f-fffb-4619-83e9-ece86a5364ba" Actual results: Normal FileSystemResizeRequired 166m external-resizer vpc.block.csi.ibm.io Require file system resize of volume on node Expected results: Filesystem resize is not required on block type pvc. aws-ebs-csi-driver fixed: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/pull/916/files nodeExpansionRequired := true // if this is a raw block device, no expansion should be necessary on the node cap := req.GetVolumeCapability() if cap != nil && cap.GetBlock() != nil { nodeExpansionRequired = false } Master Log: Node Log (of failed PODs): PV Dump: PVC Dump: StorageClass Dump (if StorageClass used by PV/PVC): Additional info:
Derek filed a PR upstream, but CI is failing for some reason. This needs some follow-up. https://github.com/kubernetes-sigs/ibm-vpc-block-csi-driver/pull/69
I am going to reassign it to IBM. First question, does your CSI driver to do anything on a node to resize a block volume? Usually, such volumes are resized by ControllerExpandVolume call and there is nothing to do on a node, but maybe your driver needs to rescan iSCSI to get the updated size of the device or something like that. Secondly, can you help us with the PR? CI is not telling us what's wrong with it.
@jsafrane VPC does not support offline expansion it means that POD need to use pvc to expand pvc after using it once POD/application use PVC then its formatted hence resize fs is required from node server. It looks to be similar to offline expansion which is not supported, duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=2059593