Skip to content

Commit 8c8f553

Browse files
Spec ModifyVolume for QoS kep-3751
1 parent b01039c commit 8c8f553

File tree

3 files changed

+566
-320
lines changed

3 files changed

+566
-320
lines changed

csi.proto

+36-1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ service Controller {
100100
returns (ControllerGetVolumeResponse) {
101101
option (alpha_method) = true;
102102
}
103+
104+
rpc ControllerModifyVolume (ModifyVolumeRequest)
105+
returns (ModifyVolumeResponse) {
106+
option (alpha_method) = true;
107+
}
103108
}
104109

105110
service GroupController {
@@ -350,7 +355,8 @@ message CreateVolumeRequest {
350355
// This field is REQUIRED.
351356
repeated VolumeCapability volume_capabilities = 3;
352357

353-
// Plugin specific parameters passed in as opaque key-value pairs.
358+
// Plugin specific parameters passed in as opaque key-value pairs
359+
// for provision time.
354360
// This field is OPTIONAL. The Plugin is responsible for parsing and
355361
// validating these parameters. COs will treat these as opaque.
356362
map<string, string> parameters = 4;
@@ -376,6 +382,10 @@ message CreateVolumeRequest {
376382
// VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY
377383
// choose where the provisioned volume is accessible from.
378384
TopologyRequirement accessibility_requirements = 7;
385+
386+
// This field is OPTIONAL. This allows the CO to specify the
387+
// mutable volume parameters to apply.
388+
map<string, string> mutable_parameters = 8 [(alpha_field) = true];
379389
}
380390

381391
// Specifies what source the volume will be created from. One of the
@@ -974,6 +984,27 @@ message ControllerGetVolumeResponse {
974984
// This field is REQUIRED.
975985
VolumeStatus status = 2;
976986
}
987+
message ModifyVolumeRequest {
988+
option (alpha_message) = true;
989+
990+
// Contains identity information for the existing volume.
991+
// This field is REQUIRED.
992+
string volume_id = 1;
993+
994+
// Secrets required by plugin to complete modify volume request.
995+
// This field is OPTIONAL. Refer to the `Secrets Requirements`
996+
// section on how to use this field.
997+
map<string, string> secrets = 2 [(csi_secret) = true];
998+
999+
// This field is OPTIONAL.This allows the CO to specify the
1000+
// mutable parameters to apply.
1001+
map<string, string> mutable_parameters = 3;
1002+
}
1003+
1004+
message ModifyVolumeResponse {
1005+
option (alpha_message) = true;
1006+
}
1007+
9771008
message GetCapacityRequest {
9781009
// If specified, the Plugin SHALL report the capacity of the storage
9791010
// that can be used to provision volumes that satisfy ALL of the
@@ -1113,6 +1144,10 @@ message ControllerServiceCapability {
11131144
// SINGLE_NODE_SINGLE_WRITER and/or SINGLE_NODE_MULTI_WRITER are
11141145
// supported, in order to permit older COs to continue working.
11151146
SINGLE_NODE_MULTI_WRITER = 13 [(alpha_enum_value) = true];
1147+
1148+
// Indicates the SP supports modifying volume with mutable
1149+
// parameters. See ModifyVolume for details.
1150+
MODIFY_VOLUME = 14 [(alpha_enum_value) = true];
11161151
}
11171152

11181153
Type type = 1;

0 commit comments

Comments
 (0)