@@ -363,15 +363,22 @@ message Volume {
363363 // subsequent calls to refer to the provisioned volume.
364364 string id = 2 ;
365365
366- // Attributes reflect static properties of a volume and MUST be passed
367- // to volume validation and publishing calls.
368- // Attributes SHALL be opaque to a CO. Attributes SHALL NOT be mutable
369- // and SHALL be safe for the CO to cache. Attributes SHOULD NOT
370- // contain sensitive information. Attributes MAY NOT uniquely identify
371- // a volume. A volume uniquely identified by `id` SHALL always report
372- // the same attributes. This field is OPTIONAL and when present MUST
373- // be passed to volume validation and publishing calls.
374- map <string , string > attributes = 3 ;
366+ // Opaque static properties of the volume. SP MAY use this field to
367+ // ensure subsequent volume validation and publishing calls have
368+ // contextual information.
369+ // The contents of this field SHALL be opaque to a CO.
370+ // The contents of this field SHALL NOT be mutable.
371+ // The contents of this field SHALL be safe for the CO to cache.
372+ // The contents of this field SHOULD NOT contain sensitive
373+ // information.
374+ // The contents of this field SHOULD NOT be used for uniquely
375+ // identifying a volume. The `id` alone should be sufficient to
376+ // identify the volume.
377+ // A volume uniquely identified by `id` SHALL always report the same
378+ // volume_context.
379+ // This field is OPTIONAL and when present MUST be passed to volume
380+ // validation and publishing calls.
381+ map <string , string > volume_context = 3 ;
375382
376383 // If specified, indicates that the volume is not empty and is
377384 // pre-populated with data from the specified source.
@@ -609,18 +616,27 @@ message ControllerPublishVolumeRequest {
609616 // `Secrets Requirements` section on how to use this field.
610617 map <string , string > secrets = 5 [(csi_secret) = true ];
611618
612- // Attributes of the volume to be used on a node . This field is
613- // OPTIONAL and MUST match the attributes of the Volume identified
614- // by `volume_id`.
615- map <string , string > volume_attributes = 6 ;
619+ // Volume context as returned by CO in CreateVolumeRequest . This field
620+ // is OPTIONAL and MUST match the volume_context of the volume
621+ // identified by `volume_id`.
622+ map <string , string > volume_context = 6 ;
616623}
617624
618625message ControllerPublishVolumeResponse {
619- // The SP specific information that will be passed to the Plugin in
620- // the subsequent `NodeStageVolume` or `NodePublishVolume` calls
621- // for the given volume.
622- // This information is opaque to the CO. This field is OPTIONAL.
623- map <string , string > publish_info = 1 ;
626+ // Opaque static publish properties of the volume. SP MAY use this
627+ // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume`
628+ // calls calls have contextual information.
629+ // The contents of this field SHALL be opaque to a CO.
630+ // The contents of this field SHALL NOT be mutable.
631+ // The contents of this field SHALL be safe for the CO to cache.
632+ // The contents of this field SHOULD NOT contain sensitive
633+ // information.
634+ // The contents of this field SHOULD NOT be used for uniquely
635+ // identifying a volume. The `id` alone should be sufficient to
636+ // identify the volume.
637+ // This field is OPTIONAL and when present MUST be passed to
638+ // subsequent `NodeStageVolume` or `NodePublishVolume` calls
639+ map <string , string > publish_context = 1 ;
624640}
625641message ControllerUnpublishVolumeRequest {
626642 // The ID of the volume. This field is REQUIRED.
@@ -648,9 +664,10 @@ message ValidateVolumeCapabilitiesRequest {
648664 // The ID of the volume to check. This field is REQUIRED.
649665 string volume_id = 1 ;
650666
651- // Attributes of the volume to check. This field is OPTIONAL and MUST
652- // match the attributes of the Volume identified by `volume_id`.
653- map <string , string > volume_attributes = 2 ;
667+ // Volume context as returned by CO in CreateVolumeRequest. This field
668+ // is OPTIONAL and MUST match the volume_context of the volume
669+ // identified by `volume_id`.
670+ map <string , string > volume_context = 2 ;
654671
655672 // The capabilities that the CO wants to check for the volume. This
656673 // call SHALL return "confirmed" only if all the volume capabilities
@@ -669,9 +686,9 @@ message ValidateVolumeCapabilitiesRequest {
669686
670687message ValidateVolumeCapabilitiesResponse {
671688 message Confirmed {
672- // Volume attributes validated by the plugin.
689+ // Volume context validated by the plugin.
673690 // This field is OPTIONAL.
674- map <string , string > volume_attributes = 1 ;
691+ map <string , string > volume_context = 1 ;
675692
676693 // Volume capabilities supported by the plugin.
677694 // This field is REQUIRED.
@@ -944,7 +961,7 @@ message NodeStageVolumeRequest {
944961 // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be
945962 // left unset if the corresponding Controller Plugin does not have
946963 // this capability. This is an OPTIONAL field.
947- map <string , string > publish_info = 2 ;
964+ map <string , string > publish_context = 2 ;
948965
949966 // The path to which the volume MAY be staged. It MUST be an
950967 // absolute path in the root filesystem of the process serving this
@@ -967,10 +984,10 @@ message NodeStageVolumeRequest {
967984 // section on how to use this field.
968985 map <string , string > secrets = 5 [(csi_secret) = true ];
969986
970- // Attributes of the volume to stage . This field is OPTIONAL and
971- // MUST match the attributes of the `Volume` identified by
972- // `volume_id`.
973- map <string , string > volume_attributes = 6 ;
987+ // Volume context as returned by CO in CreateVolumeRequest . This field
988+ // is OPTIONAL and MUST match the volume_context of the volume
989+ // identified by `volume_id`.
990+ map <string , string > volume_context = 6 ;
974991}
975992
976993message NodeStageVolumeResponse {
@@ -998,7 +1015,7 @@ message NodePublishVolumeRequest {
9981015 // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be
9991016 // left unset if the corresponding Controller Plugin does not have
10001017 // this capability. This is an OPTIONAL field.
1001- map <string , string > publish_info = 2 ;
1018+ map <string , string > publish_context = 2 ;
10021019
10031020 // The path to which the volume was staged by `NodeStageVolume`.
10041021 // It MUST be an absolute path in the root filesystem of the process
@@ -1032,10 +1049,10 @@ message NodePublishVolumeRequest {
10321049 // section on how to use this field.
10331050 map <string , string > secrets = 7 [(csi_secret) = true ];
10341051
1035- // Attributes of the volume to publish . This field is OPTIONAL and
1036- // MUST match the attributes of the Volume identified by
1037- // `volume_id`.
1038- map <string , string > volume_attributes = 8 ;
1052+ // Volume context as returned by CO in CreateVolumeRequest . This field
1053+ // is OPTIONAL and MUST match the volume_context of the volume
1054+ // identified by `volume_id`.
1055+ map <string , string > volume_context = 8 ;
10391056}
10401057
10411058message NodePublishVolumeResponse {
0 commit comments