Skip to content

Commit daf30c4

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

File tree

3 files changed

+480
-452
lines changed

3 files changed

+480
-452
lines changed

csi.proto

Lines changed: 106 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -196,18 +196,24 @@ 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. CO MAY expose
210+
// secrets as a one or more map to its end users, therefore the keys
211+
// for all unique secrets that a plugin expects, regardless of RPC,
212+
// must be unique.
213+
// This information is sensitive and MUST be treated as such (not
214+
// logged, etc.) by the CO.
209215
// This field is OPTIONAL.
210-
map<string, string> controller_create_credentials = 6;
216+
map<string, string> controller_create_secrets = 6;
211217
}
212218

213219
message CreateVolumeResponse {
@@ -326,18 +332,24 @@ message DeleteVolumeRequest {
326332
// This field is REQUIRED.
327333
string volume_id = 2;
328334

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.
335+
// Secrets required by plugin to complete volume deletion request.
336+
// A secret is a string to string map where the key identifies the
337+
// name of the secret (e.g. "username" or "password"), and the value
338+
// contains the secret data (e.g. "bob" or "abc123").
339+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
340+
// Each value MUST contain a valid string. An SP MAY choose to accept
341+
// binary (non-string) data by using a binary-to-text encoding scheme,
342+
// like base64.
343+
// An SP SHALL advertise the requirements for required secret keys and
344+
// values in documentation.
345+
// CO SHALL permit passing through the required secrets. CO MAY expose
346+
// secrets as a one or more map to its end users, therefore the keys
347+
// for all unique secrets that a plugin expects, regardless of RPC,
348+
// must be unique.
349+
// This information is sensitive and MUST be treated as such (not
350+
// logged, etc.) by the CO.
339351
// This field is OPTIONAL.
340-
map<string, string> controller_delete_credentials = 3;
352+
map<string, string> controller_delete_secrets = 3;
341353
}
342354

343355
message DeleteVolumeResponse {}
@@ -363,18 +375,25 @@ message ControllerPublishVolumeRequest {
363375
// REQUIRED.
364376
bool readonly = 5;
365377

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.
378+
// Secrets required by plugin to complete controller publish volume
379+
// request.
380+
// A secret is a string to string map where the key identifies the
381+
// name of the secret (e.g. "username" or "password"), and the value
382+
// contains the secret data (e.g. "bob" or "abc123").
383+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
384+
// Each value MUST contain a valid string. An SP MAY choose to accept
385+
// binary (non-string) data by using a binary-to-text encoding scheme,
386+
// like base64.
387+
// An SP SHALL advertise the requirements for required secret keys and
388+
// values in documentation.
389+
// CO SHALL permit passing through the required secrets. CO MAY expose
390+
// secrets as a one or more map to its end users, therefore the keys
391+
// for all unique secrets that a plugin expects, regardless of RPC,
392+
// must be unique.
393+
// This information is sensitive and MUST be treated as such (not
394+
// logged, etc.) by the CO.
376395
// This field is OPTIONAL.
377-
map<string, string> controller_publish_credentials = 6;
396+
map<string, string> controller_publish_secrets = 6;
378397

379398
// Attributes of the volume to be used on a node. This field is
380399
// OPTIONAL and MUST match the attributes of the Volume identified
@@ -405,18 +424,27 @@ message ControllerUnpublishVolumeRequest {
405424
// the volume from all nodes it is published to.
406425
string node_id = 3;
407426

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.
427+
// Secrets required by plugin to complete controller unpublish volume
428+
// request. This SHOULD be the same secrets passed to the
429+
// ControllerPublishVolume.
430+
// call for the specified volume.
431+
// A secret is a string to string map where the key identifies the
432+
// name of the secret (e.g. "username" or "password"), and the value
433+
// contains the secret data (e.g. "bob" or "abc123").
434+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
435+
// Each value MUST contain a valid string. An SP MAY choose to accept
436+
// binary (non-string) data by using a binary-to-text encoding scheme,
437+
// like base64.
438+
// An SP SHALL advertise the requirements for required secret keys and
439+
// values in documentation.
440+
// CO SHALL permit passing through the required secrets. CO MAY expose
441+
// secrets as a one or more map to its end users, therefore the keys
442+
// for all unique secrets that a plugin expects, regardless of RPC,
443+
// must be unique.
444+
// This information is sensitive and MUST be treated as such (not
445+
// logged, etc.) by the CO.
418446
// This field is OPTIONAL.
419-
map<string, string> controller_unpublish_credentials = 4;
447+
map<string, string> controller_unpublish_secrets = 4;
420448
}
421449

422450
message ControllerUnpublishVolumeResponse {}
@@ -575,18 +603,24 @@ message NodeStageVolumeRequest {
575603
// This is a REQUIRED field.
576604
VolumeCapability volume_capability = 5;
577605

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.
606+
// Secrets required by plugin to complete node stage volume request.
607+
// A secret is a string to string map where the key identifies the
608+
// name of the secret (e.g. "username" or "password"), and the value
609+
// contains the secret data (e.g. "bob" or "abc123").
610+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
611+
// Each value MUST contain a valid string. An SP MAY choose to accept
612+
// binary (non-string) data by using a binary-to-text encoding scheme,
613+
// like base64.
614+
// An SP SHALL advertise the requirements for required secret keys and
615+
// values in documentation.
616+
// CO SHALL permit passing through the required secrets. CO MAY expose
617+
// secrets as a one or more map to its end users, therefore the keys
618+
// for all unique secrets that a plugin expects, regardless of RPC,
619+
// must be unique.
620+
// This information is sensitive and MUST be treated as such (not
621+
// logged, etc.) by the CO.
588622
// This field is OPTIONAL.
589-
map<string, string> node_stage_credentials = 6;
623+
map<string, string> node_stage_secrets = 6;
590624

591625
// Attributes of the volume to publish. This field is OPTIONAL and
592626
// MUST match the attributes of the VolumeInfo identified by
@@ -608,19 +642,6 @@ message NodeUnstageVolumeRequest {
608642
// path in the root filesystem of the process serving this request.
609643
// This is a REQUIRED field.
610644
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;
624645
}
625646

626647
message NodeUnstageVolumeResponse {}
@@ -664,19 +685,24 @@ message NodePublishVolumeRequest {
664685
// REQUIRED.
665686
bool readonly = 7;
666687

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.
688+
// Secrets required by plugin to complete node publish volume request.
689+
// A secret is a string to string map where the key identifies the
690+
// name of the secret (e.g. "username" or "password"), and the value
691+
// contains the secret data (e.g. "bob" or "abc123").
692+
// Each key MUST consist of alphanumeric characters, '-', '_' or '.'.
693+
// Each value MUST contain a valid string. An SP MAY choose to accept
694+
// binary (non-string) data by using a binary-to-text encoding scheme,
695+
// like base64.
696+
// An SP SHALL advertise the requirements for required secret keys and
697+
// values in documentation.
698+
// CO SHALL permit passing through the required secrets. CO MAY expose
699+
// secrets as a one or more map to its end users, therefore the keys
700+
// for all unique secrets that a plugin expects, regardless of RPC,
701+
// must be unique.
702+
// This information is sensitive and MUST be treated as such (not
703+
// logged, etc.) by the CO.
677704
// This field is OPTIONAL.
678-
map<string, string> node_publish_credentials = 8;
679-
705+
map<string, string> node_publish_secrets = 8;
680706

681707
// Attributes of the volume to publish. This field is OPTIONAL and
682708
// MUST match the attributes of the Volume identified by
@@ -698,19 +724,6 @@ message NodeUnpublishVolumeRequest {
698724
// path in the root filesystem of the process serving this request.
699725
// This is a REQUIRED field.
700726
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;
714727
}
715728

716729
message NodeUnpublishVolumeResponse {}

0 commit comments

Comments
 (0)