external-provisioner icon indicating copy to clipboard operation
external-provisioner copied to clipboard

Restoring from a snapshot to a larger size

Open msau42 opened this issue 5 years ago • 29 comments

Today, what happens with many block-based plugins is that the disk will be created at the larger size, but the filesystem (from the snapshot) is at the smaller size. Filesystem expansion won't be triggered because PV is created at the requested PVC size.

We discussed this at the csi standup last week and agreed that the behavior should be:

  • If a plugin is not going to resize the filesystem during the restore from snapshot operation, then they should return the original snapshot size (the original block size), so that the resize operation can be done.
  • If a plugin is going to resize everything as part of restore, including the filesystem, then they should return the new size.
  • If the plugin returns nothing (because size is optional today), then we continue the same behavior of setting the pv to the new size regardless.

This bug can track the following aspects:

  • [ ] Do we need to clarify anything in the CSI spec?
  • [ ] Make sure external-provisioner is doing the right thing, and we have unit tests
  • [ ] Update mock driver and add e2e tests for the different scenarios
  • [ ] Add generic e2e test that can be used by all plugins

Updating individual csi drivers to return the proper behavior can be tracked separately.

msau42 avatar Sep 28 '20 16:09 msau42

/kind bug

cc @jsafrane @gnufied @xing-yang @bswartz

msau42 avatar Sep 28 '20 16:09 msau42

Another open issue: should we apply the same logic to clone?

msau42 avatar Sep 28 '20 16:09 msau42

cc @j-griffith

msau42 avatar Sep 28 '20 16:09 msau42

@Jiawei0227 will help take a look at implementing this

msau42 avatar Sep 28 '20 16:09 msau42

issue @jsafrane created in k/k repo has summary of discussion so far - https://github.com/kubernetes/kubernetes/issues/94929

gnufied avatar Sep 28 '20 16:09 gnufied

The text from the CreateVolumeRequest message in the spec says:

// This field is OPTIONAL. This allows the CO to specify the capacity // requirement of the volume to be provisioned. If not specified, the // Plugin MAY choose an implementation-defined capacity range. If // specified it MUST always be honored, even when creating volumes // from a source; which MAY force some backends to internally extend // the volume after creating it. CapacityRange capacity_range = 2;

The current implication is that any expansions are magically taken care of inside the CreateVolume call. We definitely need spec language here clarifying that while the new size must be honored insofar as the controller's notion of the volume size, the CO may need to do the NodeExpand portion of the work to bring the node's notion of the volume size into sync.

bswartz avatar Sep 29 '20 01:09 bswartz

There is currently a discussion here: https://github.com/container-storage-interface/spec/pull/452 I will start to implement this as soon as we get the final decision on how the CO and SP should behave.

Jiawei0227 avatar Oct 09 '20 18:10 Jiawei0227

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle stale

fejta-bot avatar Jan 07 '21 18:01 fejta-bot

/remove-lifecycle stale

I am grooming my backlog and found this one. It seems from the last CSI meeting, we decide that to let each CSI driver to handle it. They should call the expand. So I guess there is no more work involved in the csi-provisioner for now?

Jiawei0227 avatar Jan 14 '21 22:01 Jiawei0227

I am grooming my backlog and found this one. It seems from the last CSI meeting, we decide that to let each CSI driver to handle it. They should call the expand. So I guess there is no more work involved in the csi-provisioner for now?

Yes. CSI driver needs to handle this. @jsafrane has updated the CSI spec PR: https://github.com/container-storage-interface/spec/pull/452

xing-yang avatar Jan 28 '21 04:01 xing-yang

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale

fejta-bot avatar Apr 28 '21 04:04 fejta-bot

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten

fejta-bot avatar May 28 '21 05:05 fejta-bot

Rotten issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community. /close

fejta-bot avatar Jun 27 '21 05:06 fejta-bot

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community. /close

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.

k8s-ci-robot avatar Jun 27 '21 05:06 k8s-ci-robot

Reopen this so that CSI driver maintainers are aware of this issue.

xing-yang avatar Sep 29 '21 18:09 xing-yang

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

k8s-triage-robot avatar Oct 29 '21 18:10 k8s-triage-robot

@k8s-triage-robot: Closing this issue.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

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.

k8s-ci-robot avatar Oct 29 '21 18:10 k8s-ci-robot

/reopen /remove-lifecycle rotten

jsafrane avatar Nov 01 '21 16:11 jsafrane

@jsafrane: Reopened this issue.

In response to this:

/reopen /remove-lifecycle rotten

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.

k8s-ci-robot avatar Nov 01 '21 16:11 k8s-ci-robot

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jan 30 '22 17:01 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot avatar Mar 01 '22 17:03 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

k8s-triage-robot avatar Mar 31 '22 17:03 k8s-triage-robot

@k8s-triage-robot: Closing this issue.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

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.

k8s-ci-robot avatar Mar 31 '22 17:03 k8s-ci-robot

/reopen

jsafrane avatar Apr 05 '22 09:04 jsafrane

@jsafrane: Reopened this issue.

In response to this:

/reopen

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.

k8s-ci-robot avatar Apr 05 '22 09:04 k8s-ci-robot

/remove-lifecycle rotten

jsafrane avatar Apr 05 '22 09:04 jsafrane

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jul 04 '22 09:07 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot avatar Aug 03 '22 09:08 k8s-triage-robot

/remove-lifecycle rotten

xing-yang avatar Aug 03 '22 13:08 xing-yang

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Nov 01 '22 13:11 k8s-triage-robot