Is your feature request related to a problem?/Why is this needed
Describe the solution you'd like in detail
For NFS-protocol volumes, NodeStageVolume applies fsGroup ownership by calling util.SetVolumeOwnership, which performs a recursive chown/chmod walk over the entire mount (pkg/blob/nodeserver.go:438-443). On large NFS exports this can run for hours.
While it runs, the blob-csi node driver pod emits essentially no progress output: no file counts, no periodic heartbeat, no per-volume completion log, and no incremental metric. Operators cannot tell whether the operation is progressing, stuck, or how far along it is - the node pod just appears to hang inside NodeStageVolume.
It would be helpful to have some periodic logging for this long operation to convey that progress is being done during log operation. kubelet does this already via NewVolumeOwnership but it is gated on AddProgressNotifier and requires a pod which we don't have access to in NodeStageVolume. We could add a non-nil pod and fake event recorded (mildly hacky) or wrap the operation in our own periodic logging method.
Is your feature request related to a problem?/Why is this needed
Describe the solution you'd like in detail
For NFS-protocol volumes, NodeStageVolume applies fsGroup ownership by calling util.SetVolumeOwnership, which performs a recursive chown/chmod walk over the entire mount (pkg/blob/nodeserver.go:438-443). On large NFS exports this can run for hours.
While it runs, the blob-csi node driver pod emits essentially no progress output: no file counts, no periodic heartbeat, no per-volume completion log, and no incremental metric. Operators cannot tell whether the operation is progressing, stuck, or how far along it is - the node pod just appears to hang inside NodeStageVolume.
It would be helpful to have some periodic logging for this long operation to convey that progress is being done during log operation. kubelet does this already via
NewVolumeOwnershipbut it is gated onAddProgressNotifierand requires a pod which we don't have access to in NodeStageVolume. We could add a non-nil pod and fake event recorded (mildly hacky) or wrap the operation in our own periodic logging method.