Skip to content

Commit 43e03b6

Browse files
committed
Clarify wording and naming of credentials in CSI
1 parent f36159a commit 43e03b6

File tree

3 files changed

+486
-452
lines changed

3 files changed

+486
-452
lines changed

csi.proto

Lines changed: 109 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -196,18 +196,27 @@ message CreateVolumeRequest {
196196
// validating these parameters. COs will treat these as opaque.
197197
map<string, string> parameters = 5;
198198

199-
// Credentials used by Controller plugin to authenticate/authorize
200-
// volume creation request.
201-
// This field contains credential data, for example username and
202-
// password. Each key must consist of alphanumeric characters, '-',
203-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
204-
// choose to accept binary (non-string) data by using a binary-to-text
205-
// encoding scheme, like base64. An SP SHALL advertise the
206-
// requirements for credentials in documentation. COs SHALL permit
207-
// passing through the required credentials. This information is
208-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
199+
// Secrets required by plugin to complete volume creation request.
200+
// A secret is a string to string map where the key identifies the
201+
// name of the secret (e.g. "username" or "password"), and the value
202+
// contains the secret data (e.g. "bob" or "abc123").
203+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
204+
// Each value MUST contain a valid string. An SP MAY choose to accept
205+
// binary (non-string) data by using a binary-to-text encoding scheme,
206+
// like base64.
207+
// An SP SHALL advertise the requirements for required secret keys and
208+
// values in documentation.
209+
// CO SHALL permit passing through the required secrets.
210+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
211+
// all unique secrets that an SP expects must be unique across all CSI
212+
// operations.
213+
// secrets as a one or more map to its end users, therefore the keys
214+
// for all unique secrets that a plugin expects, regardless of RPC,
215+
// must be unique.
216+
// This information is sensitive and MUST be treated as such (not
217+
// logged, etc.) by the CO.
209218
// This field is OPTIONAL.
210-
map<string, string> controller_create_credentials = 6;
219+
map<string, string> controller_create_secrets = 6;
211220
}
212221

213222
message CreateVolumeResponse {
@@ -326,18 +335,24 @@ message DeleteVolumeRequest {
326335
// This field is REQUIRED.
327336
string volume_id = 2;
328337

329-
// Credentials used by Controller plugin to authenticate/authorize
330-
// volume deletion request.
331-
// This field contains credential data, for example username and
332-
// password. Each key must consist of alphanumeric characters, '-',
333-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
334-
// choose to accept binary (non-string) data by using a binary-to-text
335-
// encoding scheme, like base64. An SP SHALL advertise the
336-
// requirements for credentials in documentation. COs SHALL permit
337-
// passing through the required credentials. This information is
338-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
338+
// Secrets required by plugin to complete volume deletion request.
339+
// A secret is a string to string map where the key identifies the
340+
// name of the secret (e.g. "username" or "password"), and the value
341+
// contains the secret data (e.g. "bob" or "abc123").
342+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
343+
// Each value MUST contain a valid string. An SP MAY choose to accept
344+
// binary (non-string) data by using a binary-to-text encoding scheme,
345+
// like base64.
346+
// An SP SHALL advertise the requirements for required secret keys and
347+
// values in documentation.
348+
// CO SHALL permit passing through the required secrets.
349+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
350+
// all unique secrets that an SP expects must be unique across all CSI
351+
// operations.
352+
// This information is sensitive and MUST be treated as such (not
353+
// logged, etc.) by the CO.
339354
// This field is OPTIONAL.
340-
map<string, string> controller_delete_credentials = 3;
355+
map<string, string> controller_delete_secrets = 3;
341356
}
342357

343358
message DeleteVolumeResponse {}
@@ -363,18 +378,25 @@ message ControllerPublishVolumeRequest {
363378
// REQUIRED.
364379
bool readonly = 5;
365380

366-
// Credentials used by Controller plugin to authenticate/authorize
367-
// controller publish request.
368-
// This field contains credential data, for example username and
369-
// password. Each key must consist of alphanumeric characters, '-',
370-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
371-
// choose to accept binary (non-string) data by using a binary-to-text
372-
// encoding scheme, like base64. An SP SHALL advertise the
373-
// requirements for credentials in documentation. COs SHALL permit
374-
// passing through the required credentials. This information is
375-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
381+
// Secrets required by plugin to complete controller publish volume
382+
// request.
383+
// A secret is a string to string map where the key identifies the
384+
// name of the secret (e.g. "username" or "password"), and the value
385+
// contains the secret data (e.g. "bob" or "abc123").
386+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
387+
// Each value MUST contain a valid string. An SP MAY choose to accept
388+
// binary (non-string) data by using a binary-to-text encoding scheme,
389+
// like base64.
390+
// An SP SHALL advertise the requirements for required secret keys and
391+
// values in documentation.
392+
// CO SHALL permit passing through the required secrets.
393+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
394+
// all unique secrets that an SP expects must be unique across all CSI
395+
// operations.
396+
// This information is sensitive and MUST be treated as such (not
397+
// logged, etc.) by the CO.
376398
// This field is OPTIONAL.
377-
map<string, string> controller_publish_credentials = 6;
399+
map<string, string> controller_publish_secrets = 6;
378400

379401
// Attributes of the volume to be used on a node. This field is
380402
// OPTIONAL and MUST match the attributes of the Volume identified
@@ -405,18 +427,27 @@ message ControllerUnpublishVolumeRequest {
405427
// the volume from all nodes it is published to.
406428
string node_id = 3;
407429

408-
// Credentials used by Controller plugin to authenticate/authorize
409-
// controller unpublish request.
410-
// This field contains credential data, for example username and
411-
// password. Each key must consist of alphanumeric characters, '-',
412-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
413-
// choose to accept binary (non-string) data by using a binary-to-text
414-
// encoding scheme, like base64. An SP SHALL advertise the
415-
// requirements for credentials in documentation. COs SHALL permit
416-
// passing through the required credentials. This information is
417-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
430+
// Secrets required by plugin to complete controller unpublish volume
431+
// request. This SHOULD be the same secrets passed to the
432+
// ControllerPublishVolume.
433+
// call for the specified volume.
434+
// A secret is a string to string map where the key identifies the
435+
// name of the secret (e.g. "username" or "password"), and the value
436+
// contains the secret data (e.g. "bob" or "abc123").
437+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
438+
// Each value MUST contain a valid string. An SP MAY choose to accept
439+
// binary (non-string) data by using a binary-to-text encoding scheme,
440+
// like base64.
441+
// An SP SHALL advertise the requirements for required secret keys and
442+
// values in documentation.
443+
// CO SHALL permit passing through the required secrets.
444+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
445+
// all unique secrets that an SP expects must be unique across all CSI
446+
// operations.
447+
// This information is sensitive and MUST be treated as such (not
448+
// logged, etc.) by the CO.
418449
// This field is OPTIONAL.
419-
map<string, string> controller_unpublish_credentials = 4;
450+
map<string, string> controller_unpublish_secrets = 4;
420451
}
421452

422453
message ControllerUnpublishVolumeResponse {}
@@ -575,18 +606,24 @@ message NodeStageVolumeRequest {
575606
// This is a REQUIRED field.
576607
VolumeCapability volume_capability = 5;
577608

578-
// Credentials used by Node plugin to authenticate/authorize node
579-
// stage request.
580-
// This field contains credential data, for example username and
581-
// password. Each key must consist of alphanumeric characters, '-',
582-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
583-
// choose to accept binary (non-string) data by using a binary-to-text
584-
// encoding scheme, like base64. An SP SHALL advertise the
585-
// requirements for credentials in documentation. COs SHALL permit
586-
// passing through the required credentials. This information is
587-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
609+
// Secrets required by plugin to complete node stage volume request.
610+
// A secret is a string to string map where the key identifies the
611+
// name of the secret (e.g. "username" or "password"), and the value
612+
// contains the secret data (e.g. "bob" or "abc123").
613+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
614+
// Each value MUST contain a valid string. An SP MAY choose to accept
615+
// binary (non-string) data by using a binary-to-text encoding scheme,
616+
// like base64.
617+
// An SP SHALL advertise the requirements for required secret keys and
618+
// values in documentation.
619+
// CO SHALL permit passing through the required secrets.
620+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
621+
// all unique secrets that an SP expects must be unique across all CSI
622+
// operations.
623+
// This information is sensitive and MUST be treated as such (not
624+
// logged, etc.) by the CO.
588625
// This field is OPTIONAL.
589-
map<string, string> node_stage_credentials = 6;
626+
map<string, string> node_stage_secrets = 6;
590627

591628
// Attributes of the volume to publish. This field is OPTIONAL and
592629
// MUST match the attributes of the VolumeInfo identified by
@@ -608,19 +645,6 @@ message NodeUnstageVolumeRequest {
608645
// path in the root filesystem of the process serving this request.
609646
// This is a REQUIRED field.
610647
string staging_target_path = 3;
611-
612-
// Credentials used by Node plugin to authenticate/authorize node
613-
// unstage request.
614-
// This field contains credential data, for example username and
615-
// password. Each key must consist of alphanumeric characters, '-',
616-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
617-
// choose to accept binary (non-string) data by using a binary-to-text
618-
// encoding scheme, like base64. An SP SHALL advertise the
619-
// requirements for credentials in documentation. COs SHALL permit
620-
// passing through the required credentials. This information is
621-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
622-
// This field is OPTIONAL.
623-
map<string, string> node_unstage_credentials = 4;
624648
}
625649

626650
message NodeUnstageVolumeResponse {}
@@ -664,19 +688,24 @@ message NodePublishVolumeRequest {
664688
// REQUIRED.
665689
bool readonly = 7;
666690

667-
// Credentials used by Node plugin to authenticate/authorize node
668-
// publish request.
669-
// This field contains credential data, for example username and
670-
// password. Each key must consist of alphanumeric characters, '-',
671-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
672-
// choose to accept binary (non-string) data by using a binary-to-text
673-
// encoding scheme, like base64. An SP SHALL advertise the
674-
// requirements for credentials in documentation. COs SHALL permit
675-
// passing through the required credentials. This information is
676-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
691+
// Secrets required by plugin to complete node publish volume request.
692+
// A secret is a string to string map where the key identifies the
693+
// name of the secret (e.g. "username" or "password"), and the value
694+
// contains the secret data (e.g. "bob" or "abc123").
695+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
696+
// Each value MUST contain a valid string. An SP MAY choose to accept
697+
// binary (non-string) data by using a binary-to-text encoding scheme,
698+
// like base64.
699+
// An SP SHALL advertise the requirements for required secret keys and
700+
// values in documentation.
701+
// CO SHALL permit passing through the required secrets.
702+
// A CO MAY pass the same secrets to all RPCs, therefore the keys for
703+
// all unique secrets that an SP expects must be unique across all CSI
704+
// operations.
705+
// This information is sensitive and MUST be treated as such (not
706+
// logged, etc.) by the CO.
677707
// This field is OPTIONAL.
678-
map<string, string> node_publish_credentials = 8;
679-
708+
map<string, string> node_publish_secrets = 8;
680709

681710
// Attributes of the volume to publish. This field is OPTIONAL and
682711
// MUST match the attributes of the Volume identified by
@@ -698,19 +727,6 @@ message NodeUnpublishVolumeRequest {
698727
// path in the root filesystem of the process serving this request.
699728
// This is a REQUIRED field.
700729
string target_path = 3;
701-
702-
// Credentials used by Node plugin to authenticate/authorize node
703-
// unpublish request.
704-
// This field contains credential data, for example username and
705-
// password. Each key must consist of alphanumeric characters, '-',
706-
// '_' or '.'. Each value MUST contain a valid string. An SP MAY
707-
// choose to accept binary (non-string) data by using a binary-to-text
708-
// encoding scheme, like base64. An SP SHALL advertise the
709-
// requirements for credentials in documentation. COs SHALL permit
710-
// passing through the required credentials. This information is
711-
// sensitive and MUST be treated as such (not logged, etc.) by the CO.
712-
// This field is OPTIONAL.
713-
map<string, string> node_unpublish_credentials = 4;
714730
}
715731

716732
message NodeUnpublishVolumeResponse {}

0 commit comments

Comments
 (0)