Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update PVC DataSource to GA #1515

Merged
merged 1 commit into from
Jan 28, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion keps/sig-storage/20181111-extend-datasource-field.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ approvers:
- "@thockin"
editor: "@j-griffith"
creation-date: 2018-11-11
last-updated: 2019-07-17
last-updated: 2020-01-27
status: implementable
see-also:
replaces:
Expand All @@ -36,6 +36,9 @@ superseded-by:
- [Story 4](#story-4)
- [Implementation Details/Notes/Constraints [optional]](#implementation-detailsnotesconstraints-optional)
- [Risks and Mitigations](#risks-and-mitigations)
- [Test Plan](#test-plan)
- [Unit tests](#unit-tests)
- [E2E tests](#e2e-tests)
- [Graduation Criteria](#graduation-criteria)
- [Implementation History](#implementation-history)
- [Drawbacks [optional]](#drawbacks-optional)
Expand Down Expand Up @@ -123,6 +126,24 @@ The primary risk of this feature is requesting a PVC DataSource when using a CSI

Due to the similarities between Clones and Snapshots, it is possible that some back ends may require queiscing in-use volumes before cloning. This proposal suggests that initially, if a csi plugin is unable to safely perform the requested clone operation, it's the csi plugins responsibility to reject the request. Going forward, when execution hooks are available (currently being proposed for consistent snapshots), that same mechanism should be made generally usable to apply to Clones as well.

## Test Plan

### Unit tests

Unit tests are already in place and include:
* Unit tests ensure that spec that includes PVC DataSource is interpretted correctly
* When a PVC DataSource is specified in the spec the resultant PVC object includes the corresponding DataSource entry

Additional unit tests to be added:
* Attempt to clone while in deleting/failed/in-use state

### E2E tests

Require addition of E2E tests using the clone feature of the CSI host provisioner
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also add some more specific test cases we want to add? Like integration with other volume features like Raw Block, concurrent cloning operations on the same volume, stress/failure tests, etc.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cloning while the source is being deleted

* Clone a volume that is in raw block mode
* Same invalid state testing as in unit tests; deleting/failed/in-use
* Multiple simultaneous clone requests to the same volume

## Graduation Criteria
* API changes allowing specification of a PVC as a valid DataSource in a new PVC spec
* Implementation of the PVC DataSource in the CSI external provisioner
Expand All @@ -134,6 +155,7 @@ Given that the only implementation changes in Kuberenetes is to enable the featu
## Implementation History

1.15 - Alpha status
1.16 - Beta status

## Drawbacks [optional]

Expand Down