Skip to content

volume lifecycle fixes #292

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

Merged
merged 1 commit into from
May 18, 2021

Conversation

pohly
Copy link
Contributor

@pohly pohly commented May 14, 2021

What type of PR is this?
/kind cleanup

What this PR does / why we need it:

The recently introduced support for tracking of staging and publishing can be improved:

  • Now it properly supports publishing more than once.
  • Mutex locking in NodeStageVolume and NodeUnstageVolume was missing.
  • NodeUnstageVolume and NodeUnpublishVolume can bail out early
    when nothing needs to be done. In the case of NodeUnpublishVolume
    that avoids unmounting at a path not managed by the driver. The
    driver cannot distinguish between an invalid path and an idempotent
    call, so this is not treated as an error.
  • NodePublishVolume checks that the staging target path is valid.
  • NodeStageVolume rejects staging more than once.

Which issue(s) this PR fixes:
Fixes #290

Special notes for your reviewer:

Does this PR introduce a user-facing change?:
The code that gets enhanced was in no prior release, therefore we don't need to mention this change.

NONE

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels May 14, 2021
@k8s-ci-robot k8s-ci-robot requested review from msau42 and saad-ali May 14, 2021 07:32
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 14, 2021
@pohly pohly force-pushed the volume-lifecycle-fixes branch from 72cd882 to 4ade042 Compare May 14, 2021 08:57
The recently introduced support for tracking of staging and publishing
can be improved:
- Now it properly supports publishing more than once.
- Mutex locking in NodeStageVolume and NodeUnstageVolume was missing.
- NodeUnstageVolume and NodeUnpublishVolume can bail out early
  when nothing needs to be done. In the case of NodeUnpublishVolume
  that avoids unmounting at a path not managed by the driver. The
  driver cannot distinguish between an invalid path and an idempotent
  call, so this is not treated as an error.
- NodePublishVolume checks that the staging target path is valid.
- NodeStageVolume rejects staging more than once.
@pohly pohly force-pushed the volume-lifecycle-fixes branch from 4ade042 to f2b48cd Compare May 14, 2021 10:15
@pohly
Copy link
Contributor Author

pohly commented May 14, 2021

@avalluri : can you perhaps review?

IsAttached bool
IsStaged bool
IsPublished bool
Attached bool
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I removed the Is prefix for consistency with the other booleans and because it no longer works for the fields that aren't a boolean anymore.

@k8s-ci-robot
Copy link
Contributor

@pohly: The following tests failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-kubernetes-csi-csi-driver-host-path-1-18-test-on-kubernetes-1-18 f2b48cd link /test pull-kubernetes-csi-csi-driver-host-path-1-18-test-on-kubernetes-1-18
pull-kubernetes-csi-csi-driver-host-path-1-21-test-on-kubernetes-1-21 f2b48cd link /test pull-kubernetes-csi-csi-driver-host-path-1-21-test-on-kubernetes-1-21

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

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.

Copy link
Contributor

@avalluri avalluri left a comment

Choose a reason for hiding this comment

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

Looks good to me.

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: avalluri, pohly

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jsafrane
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 18, 2021
@k8s-ci-robot k8s-ci-robot merged commit 5c624fc into kubernetes-csi:master May 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

support publishing multiple times and staging exactly once
4 participants