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

Promote CSIPersistentVolume feature to GA #69929

Merged
merged 7 commits into from Nov 15, 2018

Conversation

jsafrane
Copy link
Member

@jsafrane jsafrane commented Oct 17, 2018

What this PR does / why we need it:
We want CSIPersistentVolume GA in 1.13, kubernetes/enhancements#178

/milestone 1.13

CSI has many sub-features, this is only about the PersistentVolume part we consider stable enough. Inline volumes and block volumes and similar features have / will have their own alpha features and are / will be tracked separately.

Special notes for your reviewer:
Originally, I filled separate PRs for individual commits here, now I open this PR with everything on one place.

Release note:

CSIPersistentVolume feature, i.e. PersistentVolumes with CSIPersistentVolumeSource, is GA. 
CSIPersistentVolume feature gate is now deprecated and will be removed according to deprecation policy.

/sig storage
/sig api-machinery
cc @saad-ali, @liggitt

@k8s-ci-robot k8s-ci-robot added the release-note Denotes a PR that will be considered when it comes time to generate release notes. label Oct 17, 2018
@k8s-ci-robot
Copy link
Contributor

@jsafrane: You must be a member of the kubernetes/kubernetes-milestone-maintainers github team to set the milestone.

In response to this:

What this PR does / why we need it:
We want CSIPersistentVolume GA in 1.13, kubernetes/enhancements#178

/milestone 1.13

CSI has many sub-features, this is only about the PersistentVolume part we consider stable enough. Inline volumes and block volumes and similar features have / will have their own alpha features and are / will be tracked separately.

Special notes for your reviewer:
Originally, I filled separate PRs for individual commits here, now I open this PR with everything on one place.

Release note:

CSIPersistentVolume feature, i.e. PersistentVolumes with CSIPersistentVolumeSource, is GA. 
CSIPersistentVolume feature gate is now deprecated and will be removed according to deprecation policy.

/sig storage
/sig api-machinery
cc @saad-ali, @LiGgit

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 k8s-ci-robot added sig/storage Categorizes an issue or PR as relevant to SIG Storage. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-kind Indicates a PR lacks a `kind/foo` label and requires one. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. and removed needs-kind Indicates a PR lacks a `kind/foo` label and requires one. labels Oct 17, 2018
@jsafrane
Copy link
Member Author

cc @liggitt, I created one PR for all CSIPersistentVolume GA changes.

@kacole2
Copy link

kacole2 commented Oct 17, 2018

/milestone v1.13

@lavalamp
Copy link
Member

/remove-sig api-machinery

@k8s-ci-robot k8s-ci-robot removed the sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. label Oct 18, 2018
@msau42
Copy link
Member

msau42 commented Oct 29, 2018

/assign @msau42 @saad-ali

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 29, 2018
Copy link
Member

@saad-ali saad-ali left a comment

Choose a reason for hiding this comment

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

Approved from SIG Storage side.

/lgtm
/approve

@msau42
Copy link
Member

msau42 commented Oct 31, 2018

/hold

We should wait until we get the CSI 1.0 spec changes approved and merged before moving the feature to GA.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 31, 2018
@msau42
Copy link
Member

msau42 commented Oct 31, 2018

(Let's continue to review so that everything is ready to go)

@jsafrane
Copy link
Member Author

Added validation for spec.Attacher and spec.Source.PersistentVolumeName

@@ -163,6 +163,12 @@ func validateVolumeAttachmentSource(source *storage.VolumeAttachmentSource, fldP
if source.PersistentVolumeName == nil || len(*source.PersistentVolumeName) == 0 {
allErrs = append(allErrs, field.Required(fldPath, ""))
}
if source.PersistentVolumeName != nil {
for _, msg := range apivalidation.ValidatePersistentVolumeName(*source.PersistentVolumeName, false) {
Copy link
Member

Choose a reason for hiding this comment

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

same comment about only adding this validation in volumeAttachmentStrategy#Validate, and only when the api request is not coming from the v1beta1 API

Copy link
Member

Choose a reason for hiding this comment

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

I think this was fixed by commit below.

@liggitt
Copy link
Member

liggitt commented Nov 14, 2018

needs a bazel update as well

@jsafrane jsafrane force-pushed the csi-ga branch 2 times, most recently from d784ba1 to 8cfce0a Compare November 14, 2018 16:41
@msau42
Copy link
Member

msau42 commented Nov 14, 2018

/retest

allErrs := field.ErrorList{}

if !utilfeature.DefaultFeatureGate.Enabled(features.CSIPersistentVolume) {
allErrs = append(allErrs, field.Forbidden(fldPath, "CSIPersistentVolume disabled by feature-gate"))
Copy link
Member

Choose a reason for hiding this comment

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

does this have the same issue where you can't delete the Pod object after downgrading to a version where the feature is disabled?

Copy link
Member

Choose a reason for hiding this comment

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

yes

Copy link
Member

Choose a reason for hiding this comment

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

well, not the pod, since this is in PV, but the same issue, yes

Copy link
Member

Choose a reason for hiding this comment

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

pushed a commit to https://github.com/liggitt/kubernetes/commits/csi-ga to resolve this field for this object. I think that looks like what we'll want to do more broadly (consider the existing field on update, and not block in validation based on feature enablement, since it can break update/delete scenarios)

Copy link
Member

Choose a reason for hiding this comment

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

thanks. I will pull your commit and update this branch.

@ddebroy
Copy link
Member

ddebroy commented Nov 14, 2018

/retest

@msau42
Copy link
Member

msau42 commented Nov 15, 2018

/test pull-kubernetes-e2e-gce-100-performance

@msau42
Copy link
Member

msau42 commented Nov 15, 2018

This is ready for final review

// StatusREST implements the REST endpoint for changing the status of a VolumeAttachment
type StatusREST struct {
store *genericregistry.Store
}
Copy link
Member

Choose a reason for hiding this comment

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

follow-up: please add a type assertion to ensure this implements enough to patch status:

var _ = rest.Patcher(&StatusREST{})

@liggitt
Copy link
Member

liggitt commented Nov 15, 2018

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 15, 2018
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jsafrane, liggitt, saad-ali

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 15, 2018
optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;

// String detailing the error encountered during Attach or Detach operation.
// This string maybe logged, so it should not contain sensitive
Copy link
Member

Choose a reason for hiding this comment

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

follow-up: s/maybe/may be/ (in existing versions as well)

@gnufied
Copy link
Member

gnufied commented Nov 15, 2018

@liggitt github issue for follow up items - #71056 . I have assigned it to both myself and @jsafrane . Whoever gets to it first.

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/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet