Proto commits in container-storage-interface/spec

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:f6b6d53
Author:Xing Yang
Committer:GitHub

Move VolumeGroupSnapshot to GA (#573)

The documentation is generated from this commit.

Commit:2696773
Author:carlbraganza
Committer:GitHub

Added the SnapshotMetadata service. (#551)

Commit:abf6346
Author:胡玮文
Committer:GitHub

update protoc and related (#552) * update protoc and related updated protoc to v25.2 updated protoc-gen-go to v1.32.0 added protoc-gen-go-grpc at v1.3.0 Modified the makefile to use "go install" to install tools. Use extended regular expressions in "sed" command. Fixes build on arm OSX host * fix github actions Always run "make build_go" on github actions Always update the timesptamp of spec.md/csi.proto to make sure lib/go is built on CI * remove github.com/golang/protobuf usage * simplify Makefile - use git to check for out-of-date generated files, avoids all the temp files and manual diff in the Makefile. - not specify version for protoc-gen-go, it will use the version from go.mod - do not copy over the protoc binary. Call it directly from unzipped path. So it can find the includes automatically, and we don't need the -I or --go_opts=Mxxx flags. - use paths=source_relative to generate go files directly into destination, avoid the copy. - simplify the sed command used to extract "csi.proto" file.

Commit:c918b7f
Author:Sunny
Committer:Sunny Song

Modify wording based on comments on August 3rd

Commit:c6f94f6
Author:Sunny Song
Committer:Sunny Song

Spec ModifyVolume for QoS kep-3751

Commit:6eaead6
Author:Sunny Song
Committer:Sunny Song

Modify wording based on comments on July 24th

Commit:3e57adf
Author:Sunny Song
Committer:Sunny Song

Modify wording based on comments on July 25th

Commit:3084acc
Author:xing-yang

Add alpha annotations

Commit:47a0fa4
Author:Xing Yang
Committer:GitHub

Add new GroupControllerService and VolumeGroupSnapshot CSI RPCs (#519) * Add VolumeGroupSnapshot CSI RPCs

Commit:7789780
Author:Xing Yang
Committer:jdef

Revert "Promote GetVolume and VolumeCondition to GA"

Commit:d9ee9b8
Author:xing-yang
Committer:xing-yang

Promote GetVolume and VolumeCondition to GA

Commit:62c6bbb
Author:Hemant Kumar
Committer:Hemant Kumar

Move volume mount group feature GA

Commit:92bce90
Author:Humble Chirammal
Committer:jdef

correct errors in the spec Signed-off-by: Humble Chirammal <hchiramm@redhat.com>

Commit:3175f6b
Author:Patrick Ohly
Committer:Patrick Ohly

GetCapacityResponse: promote maximum_volume_size Kubernetes and several CSI drivers have been using that field for a while now and no changes to the semantic are expected, therefore the alpha status can and should be removed. The minimum_volume_size field is not used by Kubernetes. The semantic is probably stable, but further practical experience with it might be desirable before promoting it.

Commit:d64255d
Author:Ben Swartzlander
Committer:Ben Swartzlander

Change required capability for published_node_ids in GetVolume Instead of PUBLISH_UNPUBLISH_VOLUME, use the LIST_VOLUMES_PUBLISHED_NODES capability to control the published_node_ids field in ControllerGetVolume. This change is to be more consistent with the existing behavior. It is a backwards-incompatible change, but the API is alpha. Also clarify the LIST_VOLUMES_PUBLISHED_NODES docs.

Commit:3715e5f
Author:Hemant Kumar
Committer:Hemant Kumar

Add spec change for volume mount group Apply suggestions from code review Co-authored-by: jdef <2348332+jdef@users.noreply.github.com>

Commit:7c7f05e
Author:Chris Henzie
Committer:Chris Henzie

Single node single/multi writer access modes

Commit:cbdc724
Author:Jiawei Wang

relax node_id length limit to 256

Commit:da58351
Author:Patrik Cyvoct
Committer:jdef

Add Secrets in NodeExpandVolumeRequest Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>

Commit:7a2fcdd
Author:Patrick Ohly
Committer:Patrick Ohly

GetCapacityResponse: minimum volume size Using CapacityRange in GetCapacityResponse is not a good fit because the names of its fields is a bit awkward. By adding two fields in GetCapacityResponse we support the same functionality, plus they can be left unset separately from each other.

Commit:0600cb2
Author:Patrick Ohly

GetCapacityResponse: volume size range The minimum volume size may also be relevant. Another advantage is that the existing CapacityRange type can be used.

Commit:e09188b
Author:Patrick Ohly
Committer:Patrick Ohly

GetCapacityResponse: add maximum_volume_size This new field has a more precisely defined semantic than the existing available_capacity. It is intended for checking in advance in which topology a CreateVolume call might succeed. Checking that based on available_capacity is less precise, for example because fragmentation might prevent creating a single volume that uses all available capacity. The new value has to be returned in a message to allow the caller to determine whether the value was provided.

Commit:64e5a66
Author:Jiawei Wang
Committer:Jiawei Wang

Change size limitation for paths and node_id - Not put limit on paths length limiation. But add a minial support length floor. - Change node_id length limitation to 192 bytes

Commit:ecaa329
Author:xing-yang
Committer:xing-yang

Add Volume Health Support to CSI

Commit:e4404c3
Author:James DeFelice
Committer:Jie Yu

spec: added alpha_xxx options Enumerations, fields, messages, methods, and services support `alpha_xxx` designations, indicating that they are part of an experimental feature that may never evolve to "stable" status.

Commit:64b5733
Author:Patrick Ohly
Committer:James DeFelice

clarify origin of volume_context The "volume context as returned by CO in CreateVolumeRequest" is misleading in several ways: - the volume context is return *to* the CO by the SP - it is returned in the CreateVolumeResponse

Commit:fd6acb7
Author:Ben Swartzlander

Fix incorrectly named field The fields added to NodeGetVolumeStatsRequest and NodeExpandVolumeRequest should have been staging_target_path rather than staging_path. This change corrects that mistake. Also remove the extraneous "when possible" wording around when to supply these fields.

Commit:6c94335
Author:Hemant Kumar
Committer:Hemant Kumar

Add volume capability to volume expansion calls Update specs and add new error code for invalid capabilities

Commit:0294da9
Author:Ben Swartzlander
Committer:Ben Swartzlander

Add staging_path to NodeExpand/GetStats calls Allow COs to explicitly pass the staging path to node plugins when invoking NodeGetVolumeStats and NodeExpandVolume. Previously the CO could choose to pass either the staging or publish path, but there was no way for the node plugin to easily know which path it was. This change allows COs to pass both paths (if it wishes) or just the staging path, and in either case, the node plugin can easily figure out what it's being given. This makes its significantly easier for node plugins to implement the NodeGetVolumeStats and NodeExpandVolume RPCs, in particular it relieves the need to store some state on the node. For backwards compatibility, the field is not required, but it should be trivially easy for any CO to populate the field, so we encourage clients to set it. Release Note: ``` Added optional staging_target_path field to NodeExpandVolume() and NodeGetVolumeStats(). CO implementers should populate this new field if possible when calling these RPCs. ```

Commit:9e773d2
Author:David Zhu
Committer:James DeFelice

Add PublishedNodes field to ListVolumes Response and wrap published_node_ids into a VolumeStatus message

Commit:c7ad51e
Author:Hakan Memisoglu
Committer:James DeFelice

Adds secrets field to ListSnapshotsRequest (#372) There is no way to directly pass credentials to ListSnapshots call. This change will add a field required to pass credentials by the caller.

Commit:ca3a9a4
Author:Marc Solé

Merge remote-tracking branch 'upstream/master' into fix/zone-correction

Commit:522a751
Author:Marc Solé

Regenerate protobuf file Signed-off-by: Marc Solé <msolefonte@gmail.com>

Commit:131f173
Author:Jose A. Rivera
Committer:Jose A. Rivera

Add missing Type to PluginCapability_VolumeExpansion The PluginCapability_VolumeExpansion struct was missing a Type field to indicate which type of volume expansion is supported. This commit fixes that bug. Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>

Commit:e32b452
Author:Gilbert Song
Committer:Gilbert Song

Re-generated the csi proto file and the dependent golang library.

Commit:ec6a414
Author:Hemant Kumar
Committer:Hemant Kumar

Add support for volume expansion to CSI add support for volume expansion RPC calls. also add plugin capabilities that allow CO to query whether volume expansion is supported online or offline.

Commit:6a1c1fd
Author:Lucas Serven
Committer:Lucas Serven

spec.md: Fix than/then grammar mistake This commit fixes three occurrences of a grammar mistake in spec.md.

Commit:6620cb6
Author:Ben Swartzlander
Committer:Ben Swartzlander

Update the requirements for staging and target paths The vague wording around the staging and target paths left open too many possible implementations for raw block volumes, and implementors ended up doing non-obvious things. This change clarifies the contract between the CO and the SP when staging and publishing raw block volumes on the node. Specifically we now require that the CO creates the staging_target_path and that it is always a directory. And we require that the SP create the target_path and it should be a device file for blocks and a mount point for filesystems.

Commit:988b75c
Author:James DeFelice

spec: s/created_at/creation_time/

Commit:2502098
Author:James DeFelice

spec: created_at is a Timestamp. Fixes #330

Commit:b44559b
Author:James DeFelice
Committer:James DeFelice

spec: rebase field numbers for v1 The spec package name was recently changed to v1, providing us the chance to properly number message fields starting from 1. * ControllerGetCapabilitiesResponse * GetPluginCapabilitiesResponse

Commit:910c463
Author:saad-ali

Change a stray `id` to `volume_id`

Commit:0be3627
Author:saad-ali

Scrub spec for "should", "must", etc. and capitalize

Commit:ac7bd0a
Author:saad-ali
Committer:saad-ali

Bump CSI pkg ver in anticipation of 1.0 release

Commit:dbcff8d
Author:saad-ali
Committer:saad-ali

Clarify `CreateVolume` idepotent recovery behavior

Commit:fe410c4
Author:saad-ali

Clarify ID (volume, snapshot, & node) requirements.

Commit:05ff00f
Author:saad-ali
Committer:saad-ali

Rename `id` to `volume_id` and `snapshot_id`.

Commit:2ca7be5
Author:saad-ali
Committer:saad-ali

Rename volume attributes and node publish info

Commit:25a8dcf
Author:saad-ali
Committer:saad-ali

Clarify VolumeCapability and readonly on publish and stage

Commit:0780bbf
Author:saad-ali
Committer:saad-ali

Remove stray empty line before capacity_range

Commit:cbb86a4
Author:saad-ali
Committer:saad-ali

Clarify VolumeCapability in CreateVolumeRequest Clarify why VolumeCapability in CreateVolumeRequest is a repeated list.

Commit:5efa594
Author:Jie Yu
Committer:Jie Yu

spec: Clarify target_path and staging_target_path This patch clarifies the `target_path` and `staging_target_path` in the spec. It is CO's responsibility to make sure that SP has the permission to read or write `target_path` and `staging_target_path`, and is able to create files/directories if the path does not exist. This patch also changes the wording in `NodeStageVolume` call to enable those plugins that want to use the `NodeStageVolume` call as a lifecycle hook, but does not want to mount to the `staging_target_path`.

Commit:351ddcc
Author:James DeFelice
Committer:Jie Yu

spec: Officially designated CSI extension number In anticipation of being granted an officially recognized protobuf extension range, modify the csi_secret field number to fall within the range designated for use by CSI. See https://github.com/protocolbuffers/protobuf/pull/5319

Commit:177604d
Author:James DeFelice
Committer:Jie Yu

spec: csi_secret for volume validation

Commit:a033239
Author:James DeFelice
Committer:Jie Yu

spec: simplify names of secrets fields

Commit:a0312e6
Author:James DeFelice
Committer:Jie Yu

spec: label secret fields with csi_secret option * partial fix for #206

Commit:d7df952
Author:saad-ali
Committer:saad-ali

Add controller capability fo ControllerPublishVolume.readonly

Commit:546096b
Author:Xing Yang
Committer:Xing Yang

Rename is_ready_to_use to ready_to_use

Commit:a90cc88
Author:Xing Yang
Committer:Xing Yang

Address review comments

Commit:d9fd839
Author:Xing Yang
Committer:Xing Yang

Change SnapshotStatus enum to a boolean This PR changes SnapshotStatus enum to a boolean is_ready_to_use and tries to use "processing" instead of "uploading" if possible to make it less specific.

Commit:7a8d2d5
Author:Gorka Eguileor
Committer:Jie Yu

spec: Add efficient volume cloning support With the new CSI snapshot feature it's now possible to create volumes from a snapshots. This may lead to users abusing it for unintended functionality, such as having a golden image to source new volumes. Most storage backends support efficient volume cloning, so it would be benefitial to expose this functionality in the CSI spec. By supporting cloning we avoid users creating a volume, and then a snapshot of that volume, just so it can be used as the source for new volumes. The VolumeContentSource, that was added by the snapshots feature, will be used for this feature. New VolumeSource message is added to the VolumeContentSource.

Commit:a8170a7
Author:saad-ali
Committer:saad-ali

Remove deprecated `NodeGetId` before 1.0

Commit:c62adb3
Author:Xing Yang
Committer:Jie Yu

Rename ACCESSIBILITY_CONSTRAINTS to VOLUME_ACCESSIBILITY_CONSTRAINTS This PR renames ACCESSIBILITY_CONSTRAINTS to VOLUME_ACCESSIBILITY_CONSTRAINTS in preparation for adding topology support for snapshots.

Commit:86aa4ce
Author:Ben Swartzlander
Committer:Jie Yu

Disallow control characters in name fields Earlier versions of the spec put no limits on name fields, but indicate that names should be usable as identifiers on storage backends. Control characers obviously conflict with this purpose, so specify that they're prohibitted, while making it clear that all other valid Unicode strings are allowed. Fixes #267

Commit:dff09f9
Author:James DeFelice
Committer:James DeFelice

spec: Correct another, old "supported" reference.

Commit:3664c5c
Author:James DeFelice
Committer:James DeFelice

spec: remove topology from validate-volume. Current thinking is that topology of a volume can be discovered via the ListVolumes RPC of the controller and is not strictly required here. We can always add it back later if needed.

Commit:ad053af
Author:James DeFelice
Committer:James DeFelice

spec: extend validate volume response Since `parameters` and `volume_attributes` are complex fields the `Confirmed` message of `ValidateVolumeCapabilitiesResponse` has been extended to report those map entries recognized by the plugin.

Commit:f7d028e
Author:James DeFelice
Committer:James DeFelice

spec: secrets for volume capability validation.

Commit:dc44edc
Author:James DeFelice
Committer:James DeFelice

Fixed outdated comment.

Commit:3b30875
Author:James DeFelice
Committer:James DeFelice

spec: Align volume validation with creation. THIS IS A BREAKING CHANGE. * ValidateVolumeCapabilitiesRequest accepts the same parameters and topology requirements as CreateVolumeRequest. * ValidateVolumeCapabilitiesResponse is forward-compatible between newer COs (clients) and older plugins (servers). * fixes #242

Commit:afe33d9
Author:Cheng Xing
Committer:Cheng Xing

Generated files

Commit:aeca98c
Author:Hemant Kumar
Committer:Jie Yu

Write a design proposal for volume capacity Use repeated usage for representing volume stats

Commit:2178fde
Author:saad-ali
Committer:James DeFelice

Introduce concept of topology to CSI spec.

Commit:cb8c656
Author:Gorka Eguileor
Committer:James DeFelice

spec: Remove trailing spaces. Spec file has a number of unnecessary trailing spaces. This patch removes them.

Commit:c7269ca
Author:Gorka Eguileor
Committer:James DeFelice

spec: Fix SnapshotSource commment Comment in SnapshotSource make references as if it were a newly created snapshot instead of a reference to a source snapshot. Talking about "created snapshot" and how this id will be used in subsequent calls may be confusing. Comment is changed to reflect that it is an already existing source snapshot.

Commit:df56d67
Author:Gorka Eguileor
Committer:James DeFelice

spec: Volume from snapshot with different size There's no mention in the spec to expected behavior when the required_bytes in CreateVolumeRequest's capacity_range is larger or smaller than that of the VolumeContentSource. This may lead to different interpretations on the behavior. We are now explicit about expected behavior. If it's smaller we fail with OUT_OF_RANGE, and if it's greater the volume must be extended by the driver if necessary.

Commit:eff85c5
Author:Gorka Eguileor
Committer:James DeFelice

spec: Add units for GetCapacityResponse GetCapacityResponse doesn't mention the units of the available_capacity field. From the rest of the document we can deduce that the units are bytes, but everywhere else in the spec we are explicit about it. We are now explicit about this field as well.

Commit:376405b
Author:Hemant Kumar
Committer:Hemant Kumar

Add NodeGetInfo to return node id and volume limits Add NodeGetInfo call and deprecate NodeGetId RPC

Commit:af4ca04
Author:James DeFelice
Committer:James DeFelice

spec: replace Readiness with WKT BoolValue

Commit:9ba337e
Author:James DeFelice
Committer:James DeFelice

spec: Probe, s/readiness/ready/

Commit:90886ed
Author:James DeFelice
Committer:James DeFelice

spec: ProbeResponse reports readiness

Commit:6234f4e
Author:James DeFelice
Committer:James DeFelice

spec: consistently document intentionally empty messages

Commit:afa0a26
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:b31450d
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:4bbb5e3
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:842bdbf
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:46f3c47
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:4a146cd
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:a137898
Author:xing-yang
Committer:xing-yang

Add Snapshot Support in CSI Spec This PR proposes to add snapshot support in CSI specification. It proposes to add 3 new controller service RPCs, including CreateSnapshot, DeleteSnapshot, and ListSnapshots, and modify the existing ControllerGetCapabilitiesResponse and CreateVolumeRequest. There are several cases for using the snapshot data in a volume: 1. Create volume from snapshot: In this case, a new volume will be created on the storage backend and the data in the snapshot will be copied to the new volume. This case will be addressed by this proposal. 2. Revert snapshot: In this case, data in the original volume will be erased and replaced with data in the snapshot. This case is out of scope for this proposal and should be handled by a function of its own (not to be mixed with create volume from snapshot) if it is proposed in the future. The following changes will be made in the Service Controller: - Add CreateSnapshot - Add DeleteSnapshot - Add ListSnapshots - Modify CreateVolumeRequest to support creating a new volume from snapshot. - Modify ControllerGetCapabilitiesResponse to return CREATE_DELETE_SNAPSHOT and LIST_SNAPSHOTS support capabilities. - Create volume from snapshot is a REQUIRED functionality if CREATE_DELETE_SNAPSHOT is supported. This proposal was drafted here: https://docs.google.com/document/d/1oXVuDTNhXerr1UJ48tQrxF9J6vbm2LHVVC3z28655Qo/edit# The PR #207 is getting very big due to the large number of comments and some people can't view it on Github, so close that one and submit a new PR here instead.

Commit:3fe258f
Author:James DeFelice
Committer:James DeFelice

make: add DNE comment to generated protobufs

Commit:0ef365f
Author:James DeFelice
Committer:James DeFelice

address review feedback

Commit:35152c9
Author:James DeFelice
Committer:James DeFelice

spec: use MUST when describing CapacityRange field reqs

Commit:e3988dc
Author:Jie Yu
Committer:Jie Yu

spec: Some consistency fix on map declarations

Commit:5d638bd
Author:Jie Yu
Committer:Jie Yu

spec: Remove a reference to VolumeInfo VolumeInfo has been renamed to Volume in the spec. This patch fixed a reference to VolumeInfo in the spec.

Commit:31c1670
Author:James DeFelice
Committer:Jie Yu

spec: proto package incorporates major version This patch also removes the `GetSupportedVersions` and per request Version field because of the newly introduced version in the package name.

Commit:f4418ed
Author:saad-ali
Committer:saad-ali

Clarify wording and naming of credentials in CSI

Commit:91c1897
Author:James DeFelice
Committer:James DeFelice

spec: consolidate xxxProbe calls into Identity.Probe * Remove ControllerProbe RPC. * Remove NodeController RPC. * Introduce Identity.Probe RPC, clarify its intent.

Commit:068ae27
Author:David Zhu
Committer:David Zhu

Aligned spec.md error messages. Clarified some wording. Renamed to NodeStageVolume/NodeUnstageVolume. Addressed jdef comments. Added RPC interactions and reference counting section NodeStageVolume modifications: added publish_volume_info to response. Changed credential naming. Added credentials to unstage.

Commit:81fca1b
Author:akutz
Committer:David Zhu

NodePublishDevice This patch handles issue #119 by adding two new RPCs, "NodePublishDevice" and "NodeUnpublishDevice". These RPCs MUST be called by the CO if the Node Plugin advertises the "PUBLISH_UNPUBLISH_DEVICE" capability. Plugins that advertise this capability SHOULD defer volume reference counting to the CO.

Commit:d4762f6
Author:akutz

Fix missing Type field from PluginCapability This patch fixes a missing field associated with the GetPluginCapabilities response from #189.