diff options
| author | Viktor Kuzmin <kvaster@gmail.com> | 2023-08-07 09:49:25 +0300 |
|---|---|---|
| committer | Chris Lu <chrislusf@users.noreply.github.com> | 2023-08-07 10:22:05 -0700 |
| commit | bd7c7b203f419251bb16b5f30d7306de3d280c7e (patch) | |
| tree | 460022fc091e6e44a23dc5b4ef02ae56678a3ebe /pkg/driver | |
| parent | a332490d221b5b1c59c6bfd530c559e38632ccf9 (diff) | |
| download | seaweedfs-csi-driver-bd7c7b203f419251bb16b5f30d7306de3d280c7e.tar.xz seaweedfs-csi-driver-bd7c7b203f419251bb16b5f30d7306de3d280c7e.zip | |
Implement ExpandVolume also for controller
https://kubernetes-csi.github.io/docs/volume-expansion.html
CSI Resizer should be always run even if not implemented. Also it should run only against controller.
Volume resize on node rpc call is handled by kubelet.
For now the only job for controller's volume resize is to make it two step and propagate changes to node.
Diffstat (limited to 'pkg/driver')
| -rw-r--r-- | pkg/driver/controllerserver.go | 12 | ||||
| -rw-r--r-- | pkg/driver/driver.go | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/pkg/driver/controllerserver.go b/pkg/driver/controllerserver.go index 3a5abdc..57b43d0 100644 --- a/pkg/driver/controllerserver.go +++ b/pkg/driver/controllerserver.go @@ -180,6 +180,18 @@ func (cs *ControllerServer) ControllerGetCapabilities(ctx context.Context, req * }, nil } +func (cs *ControllerServer) ControllerExpandVolume(ctx context.Context, req *csi.ControllerExpandVolumeRequest) (*csi.ControllerExpandVolumeResponse, error) { + capacity := req.GetCapacityRange().GetRequiredBytes() + + glog.Infof("expand volume req: %v, capacity: %v", req.GetVolumeId(), capacity) + + // We need to propagate resize requests to node servers + return &csi.ControllerExpandVolumeResponse{ + CapacityBytes: capacity, + NodeExpansionRequired: true, + }, nil +} + func sanitizeVolumeId(volumeId string) string { volumeId = strings.ToLower(volumeId) if len(volumeId) > 63 { diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go index 20a6fa5..23dbae3 100644 --- a/pkg/driver/driver.go +++ b/pkg/driver/driver.go @@ -77,6 +77,7 @@ func NewSeaweedFsDriver(filer, nodeID, endpoint string) *SeaweedFsDriver { csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME, csi.ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME, csi.ControllerServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER, + csi.ControllerServiceCapability_RPC_EXPAND_VOLUME, }) return n |
