@@ -100,6 +100,11 @@ service Controller {
100
100
returns (ControllerGetVolumeResponse ) {
101
101
option (alpha_method) = true ;
102
102
}
103
+
104
+ rpc ControllerModifyVolume (ControllerModifyVolumeRequest )
105
+ returns (ControllerModifyVolumeResponse ) {
106
+ option (alpha_method) = true ;
107
+ }
103
108
}
104
109
105
110
service GroupController {
@@ -350,9 +355,10 @@ message CreateVolumeRequest {
350
355
// This field is REQUIRED.
351
356
repeated VolumeCapability volume_capabilities = 3 ;
352
357
353
- // Plugin specific parameters passed in as opaque key-value pairs.
354
- // This field is OPTIONAL. The Plugin is responsible for parsing and
355
- // validating these parameters. COs will treat these as opaque.
358
+ // Plugin specific creation-time parameters passed in as opaque
359
+ // key-value pairs. This field is OPTIONAL. The Plugin is responsible
360
+ // for parsing and validating these parameters. COs will treat
361
+ // these as opaque.
356
362
map <string , string > parameters = 4 ;
357
363
358
364
// Secrets required by plugin to complete volume creation request.
@@ -376,6 +382,13 @@ message CreateVolumeRequest {
376
382
// VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY
377
383
// choose where the provisioned volume is accessible from.
378
384
TopologyRequirement accessibility_requirements = 7 ;
385
+
386
+ // Plugin specific mutable parameters passed in as opaque key-value
387
+ // pairs. This field is OPTIONAL. The Plugin is responsible for
388
+ // parsing and validating these parameters. COs will treat these
389
+ // as opaque. Plugins SHOULD treat these as if they take precedence
390
+ // over the parameters field.
391
+ map <string , string > mutable_parameters = 8 [(alpha_field) = true ];
379
392
}
380
393
381
394
// Specifies what source the volume will be created from. One of the
@@ -849,6 +862,10 @@ message ValidateVolumeCapabilitiesRequest {
849
862
// This field is OPTIONAL. Refer to the `Secrets Requirements`
850
863
// section on how to use this field.
851
864
map <string , string > secrets = 5 [(csi_secret) = true ];
865
+
866
+ // See CreateVolumeRequest.mutable_parameters.
867
+ // This field is OPTIONAL.
868
+ map <string , string > mutable_parameters = 6 ;
852
869
}
853
870
854
871
message ValidateVolumeCapabilitiesResponse {
@@ -864,6 +881,10 @@ message ValidateVolumeCapabilitiesResponse {
864
881
// The volume creation parameters validated by the plugin.
865
882
// This field is OPTIONAL.
866
883
map <string , string > parameters = 3 ;
884
+
885
+ // The volume creation mutable_parameters validated by the plugin.
886
+ // This field is OPTIONAL.
887
+ map <string , string > mutable_parameters = 4 ;
867
888
}
868
889
869
890
// Confirmed indicates to the CO the set of capabilities that the
@@ -974,6 +995,32 @@ message ControllerGetVolumeResponse {
974
995
// This field is REQUIRED.
975
996
VolumeStatus status = 2 ;
976
997
}
998
+ message ControllerModifyVolumeRequest {
999
+ option (alpha_message) = true ;
1000
+
1001
+ // Contains identity information for the existing volume.
1002
+ // This field is REQUIRED.
1003
+ string volume_id = 1 ;
1004
+
1005
+ // Secrets required by plugin to complete modify volume request.
1006
+ // This field is OPTIONAL. Refer to the `Secrets Requirements`
1007
+ // section on how to use this field.
1008
+ map <string , string > secrets = 2 [(csi_secret) = true ];
1009
+
1010
+ // Plugin specific parameters to apply, passed in as opaque key-value
1011
+ // pairs. This field is OPTIONAL. The Plugin is responsible for
1012
+ // parsing and validating these parameters. COs will treat these
1013
+ // as opaque. COs MUST specify the intended value of every mutable
1014
+ // parameter. Absent keys that were previously assigned a value MUST
1015
+ // be interpreted as a deletion of the key from the set of mutable
1016
+ // parameters.
1017
+ map <string , string > mutable_parameters = 3 ;
1018
+ }
1019
+
1020
+ message ControllerModifyVolumeResponse {
1021
+ option (alpha_message) = true ;
1022
+ }
1023
+
977
1024
message GetCapacityRequest {
978
1025
// If specified, the Plugin SHALL report the capacity of the storage
979
1026
// that can be used to provision volumes that satisfy ALL of the
@@ -1113,6 +1160,10 @@ message ControllerServiceCapability {
1113
1160
// SINGLE_NODE_SINGLE_WRITER and/or SINGLE_NODE_MULTI_WRITER are
1114
1161
// supported, in order to permit older COs to continue working.
1115
1162
SINGLE_NODE_MULTI_WRITER = 13 [(alpha_enum_value) = true ];
1163
+
1164
+ // Indicates the SP supports modifying volume with mutable
1165
+ // parameters. See ControllerModifyVolume for details.
1166
+ MODIFY_VOLUME = 14 [(alpha_enum_value) = true ];
1116
1167
}
1117
1168
1118
1169
Type type = 1 ;
0 commit comments