Skip to content

Commit fe410c4

Browse files
committed
Clarify ID (volume, snapshot, & node) requirements.
1 parent 05ff00f commit fe410c4

File tree

3 files changed

+152
-107
lines changed

3 files changed

+152
-107
lines changed

csi.proto

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -350,17 +350,22 @@ message CapacityRange {
350350
int64 limit_bytes = 2;
351351
}
352352

353-
// The information about a provisioned volume.
353+
// Information about a specific volume.
354354
message Volume {
355355
// The capacity of the volume in bytes. This field is OPTIONAL. If not
356356
// set (value of 0), it indicates that the capacity of the volume is
357357
// unknown (e.g., NFS share).
358358
// The value of this field MUST NOT be negative.
359359
int64 capacity_bytes = 1;
360360

361-
// Contains identity information for the created volume. This field is
362-
// REQUIRED. The identity information will be used by the CO in
363-
// subsequent calls to refer to the provisioned volume.
361+
// The identifier for this volume, generated by the plugin.
362+
// This field is REQUIRED.
363+
// This field MUST contain enough information to uniquely identify
364+
// this specific volume vs all other volumes supported by this plugin.
365+
// This field SHALL be used by the CO in subsequent calls to refer to
366+
// this volume.
367+
// The SP is NOT responsible for global uniqueness of volume_id across
368+
// multiple SPs.
364369
string volume_id = 2;
365370

366371
// Opaque static properties of the volume. SP MAY use this field to
@@ -860,7 +865,7 @@ message CreateSnapshotResponse {
860865
Snapshot snapshot = 1;
861866
}
862867

863-
// The information about a provisioned snapshot.
868+
// Information about a specific snapshot.
864869
message Snapshot {
865870
// This is the complete size of the snapshot in bytes. The purpose of
866871
// this field is to give CO guidance on how much space is needed to
@@ -871,10 +876,15 @@ message Snapshot {
871876
// zero means it is unspecified.
872877
int64 size_bytes = 1;
873878

874-
// Uniquely identifies a snapshot and is generated by the plugin. It
875-
// will not change over time. This field is REQUIRED. The identity
876-
// information will be used by the CO in subsequent calls to refer to
877-
// the provisioned snapshot.
879+
// The identifier for this snapshot, generated by the plugin.
880+
// This field is REQUIRED.
881+
// This field MUST contain enough information to uniquely identify
882+
// this specific snapshot vs all other snapshots supported by this
883+
// plugin.
884+
// This field SHALL be used by the CO in subsequent calls to refer to
885+
// this snapshot.
886+
// The SP is NOT responsible for global uniqueness of snapshot_id
887+
// across multiple SPs.
878888
string snapshot_id = 2;
879889

880890
// Identity information for the source volume. Note that creating a
@@ -1143,9 +1153,14 @@ message NodeGetInfoRequest {
11431153
}
11441154

11451155
message NodeGetInfoResponse {
1146-
// The ID of the node as understood by the SP which SHALL be used by
1147-
// CO in subsequent calls to `ControllerPublishVolume`.
1148-
// This is a REQUIRED field.
1156+
// The identifier of the node as understood by the SP.
1157+
// This field is REQUIRED.
1158+
// This field MUST contain enough information to uniquely identify
1159+
// this specific node vs all other nodes supported by this plugin.
1160+
// This field SHALL be used by the CO in subsequent calls, including
1161+
// `ControllerPublishVolume`, to refer to this node.
1162+
// The SP is NOT responsible for global uniqueness of node_id across
1163+
// multiple SPs.
11491164
string node_id = 1;
11501165

11511166
// Maximum number of volumes that controller can publish to the node.

0 commit comments

Comments
 (0)