You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: spec.md
+30-13Lines changed: 30 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -295,6 +295,18 @@ However, in some circumstances, the CO may lose state (for example when the CO c
295
295
The plugin should handle this as gracefully as possible.
296
296
The error code `OPERATION_PENDING_FOR_VOLUME` may be returned by the plugin in this case (see general error code section for details).
297
297
298
+
#### Field Size Limits
299
+
300
+
CSI defines general size limits for fields of various types (see table below).
301
+
The general size limit for a particular field may be overridden by specifying a different size limit in said field's description.
302
+
The general size limits apply for messages generated by both COs and plugins.
303
+
304
+
| Size | Field Type |
305
+
|------------|---------------------|
306
+
| 128 bytes | string |
307
+
| 4 KiB | map<string, string> |
308
+
| 4 KiB | repeated string |
309
+
298
310
### Identity Service RPC
299
311
300
312
Identity service RPCs allow a CO to negotiate an API protocol version that MAY be used for subsequent RPCs across all CSI services with respect to a particular CSI plugin.
@@ -476,6 +488,7 @@ message VolumeCapability {
476
488
// Indicate that the volume will be accessed via the filesystem API.
477
489
message MountVolume {
478
490
// The filesystem type. This field is OPTIONAL.
491
+
// An empty string is equal to an unspecified field value.
479
492
string fs_type = 1;
480
493
481
494
// The mount options that can be used for the volume. This field is
@@ -527,24 +540,25 @@ message VolumeCapability {
527
540
// `required_bytes` and `limit_bytes` can be set to the same value. At
528
541
// least one of the these fields MUST be specified.
529
542
message CapacityRange {
530
-
// Volume must be at least this big.
543
+
// Volume must be at least this big. This field is OPTIONAL.
544
+
// A value of 0 is equal to an unspecified field value.
531
545
uint64 required_bytes = 1;
532
546
533
-
// Volume must not be bigger than this.
547
+
// Volume must not be bigger than this. This field is OPTIONAL.
548
+
// A value of 0 is equal to an unspecified field value.
534
549
uint64 limit_bytes = 2;
535
550
}
536
551
537
552
// The information about a provisioned volume.
538
553
message VolumeInfo {
539
554
// The capacity of the volume in bytes. This field is OPTIONAL. If not
540
-
// set, it indicates that the capacity of the volume is unknown (e.g.,
541
-
// NFS share). If set, it MUST be non-zero.
555
+
// set (value of 0), it indicates that the capacity of the volume is
556
+
// unknown (e.g., NFS share).
542
557
uint64 capacity_bytes = 1;
543
558
544
559
// Contains identity information for the created volume. This field is
545
560
// REQUIRED. The identity information will be used by the CO in
546
-
// subsequent calls to refer to the provisioned volume. This field
547
-
// should not exceed 1MiB.
561
+
// subsequent calls to refer to the provisioned volume.
548
562
string id = 2;
549
563
550
564
// Attributes reflect static properties of a volume and MUST be passed
0 commit comments