-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
[WIP] Create cloning.md #2533
[WIP] Create cloning.md #2533
Conversation
Hi @erinboyd. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: If they are not already assigned, you can assign the PR to them by writing The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for the most part, some minor wording and a typo (I never spot those) in the intro paragraph.
I did have some other thoughts/questions in line as well, thanks for putting this together!
@@ -44,6 +44,105 @@ Specific use cases around cloning are included in the use cases listed below as | |||
## Design Overview | |||
The proposed design is based on the idea of leveraging well defined concepts for storage in Kubernetes. The cloning will be initiated | |||
by creating an annotated PVC to create a new volume using a defined storage class that supports cloning. | |||
The actual cloning process must be implemented by the provisioning storage and properly understand and react to the annotation to clone. | |||
The actual cloning process must be implemented by the provisioning storage and properly understand and react to the annotation to clone. In the absence of a storage class that supports cloning a host-assisted clone can also be exected to create the copy. The host-assisted cloning deploys a controller to utlize pod streaming to execute the copy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/and properly understand and react/, therefore plugins that support cloning need to ensure they're checking ..../
Also, do we want annotations mentioned here or aren't we using VolumeContentSource from the spec?
minor typo s/exected/executed/
accessModes: | ||
- ReadWriteOnce | ||
storageClassName: csi-gce-pd | ||
dataSource: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, yeah that's what I was getting at above; I'd just call out the field name rather than say "annotations" just to be clear.
name: csi-gce-pd | ||
provisioner: kubernetes.io/gce-pd | ||
parameters: | ||
smartclone: "true" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should smartclone just be an inherent/implied thin based on the a devices reported capabilities? In other words if it's reported via capabilities a user doesn't need to specify this; a clone request is made, if capabilities allow great, if not error or fall back to host-assisted if possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this will change with the introduction of the populator, which I have intentionally left out of this proposal. I can remove this as well so as to reduce confusion
@j-griffith please re-review to make sure I didn't miss anything from the design meeting. Thanks! |
storage: 100Gi | ||
volumeMode: Filesystem | ||
accessModes: | ||
- ReadOnlyMany |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@humblec I believe that came up in some discussions, but most devices that offer enhanced cloning features also handle things like dealing with consistency internally. Even for those doing host assisted type cloning they would implicitly deal with this as well if they need to via mount options. Also, just to be clear this is referencing the PVC and not the PV (just to make sure there's no confusion).
We don't want to restrict the cloning operation to RO I don't think, if we need something to control in-use PVCs we could perhaps use capabilities reporting (CSI Plugin/Spec) and deal with it there. So something like "can clone in-use volumes" or something like that?
// Specifies what source the volume will be created from. One of the | ||
// type fields MUST be specified. | ||
message VolumeContentSource { | ||
message SnapshotSource { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've got this one in place so that's good
// CREATE_DELETE_SNAPSHOT. | ||
string id = 1; | ||
} | ||
message PersistentVolumeSource { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This ones under review, uses a more generic term of "VolumeSource" which I think is preferable.
container-storage-interface/spec#244
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Design proposal for same namespace cloning support in kube