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

WIP: Promote StorageClass to GA #163

Closed
11 tasks
jsafrane opened this issue Jan 6, 2017 · 5 comments
Closed
11 tasks

WIP: Promote StorageClass to GA #163

jsafrane opened this issue Jan 6, 2017 · 5 comments
Labels
sig/storage Categorizes an issue or PR as relevant to SIG Storage.

Comments

@jsafrane
Copy link
Member

jsafrane commented Jan 6, 2017

Work in progress. This note will be removed when TODO list in "Feature tracker" is complete and agreed.

Description

Change StorageClass implementation from Beta to Stable.

We already went through Alpha and Beta, this feature tracks progress from Beta to Stable

Progress Tracker

  • Design Approval

  • Stable

    • moved kubernetes/community/contributors/design-proposals to docs/design/
      - cc @kubernetes/feature-reviewers on this issue to get approval before checking this off
    • Change API:
      • introduced PersistentVolume.Spec.Class and PersistentVolumeClaim.Spec.Class attributes (instead of annotation volume.beta.kubernetes.io/storage-class)
      • change annotation storageclass.beta.kubernetes.io/is-default-class to storageclass.kubernetes.io/is-default-class
      • moved StorageClass from storage.k8s.io/v1beta1 to storage.k8s.io/v1
    • Completely removed alpha behavior (annotation volume.alpha.kubernetes.io/storage-class).
    • Updated e2e tests
    • detailed user docs and examples

FEATURE_STATUS is used for feature tracking and to be updated by @kubernetes/feature-reviewers.
FEATURE_STATUS: IN_DEVELOPMENT

Open items

More advice:

Design

  • Once you get LGTM from a @kubernetes/feature-reviewers member, you can check this checkbox, and the reviewer will apply the "design-complete" label.

Coding

  • Use as many PRs as you need. Write tests in the same or different PRs, as is convenient for you.
  • As each PR is merged, add a comment to this issue referencing the PRs. Code goes in the http://github.com/kubernetes/kubernetes repository,
    and sometimes http://github.com/kubernetes/contrib, or other repos.
  • When you are done with the code, apply the "code-complete" label.
  • When the feature has user docs, please add a comment mentioning @kubernetes/feature-reviewers and they will
    check that the code matches the proposed feature and design, and that everything is done, and that there is adequate
    testing. They won't do detailed code review: that already happened when your PRs were reviewed.
    When that is done, you can check this box and the reviewer will apply the "code-complete" label.

Docs

  • Write user docs and get them merged in.
  • User docs go into http://github.com/kubernetes/kubernetes.github.io.
  • When the feature has user docs, please add a comment mentioning @kubernetes/docs.
  • When you get LGTM, you can check this checkbox, and the reviewer will apply the "docs-complete" label.
@jsafrane jsafrane added the sig/storage Categorizes an issue or PR as relevant to SIG Storage. label Jan 6, 2017
@jsafrane jsafrane added this to the v1.6 milestone Jan 6, 2017
@jsafrane
Copy link
Member Author

jsafrane commented Jan 6, 2017

cc: @kubernetes/sig-storage-misc

@thockin
Copy link
Member

thockin commented Jan 8, 2017

I endorse moving to GA.

I want to talk about is-default. I actually think it makes sense to stay as an annotation. Here's why. The defaultness or non-defaultness of a storage class is actually not a property of the class - it is a property of the admission system that is defaulting PVClaims.

We happen to have a simple defaulter as an admission controller, and that simple defaulter looks for a class that nominates itself as default. But it's not hard to imagine a more robust admission controller that assigned defaults based on service account, or namespace, or tenant ID. In those cases, it makes no sense to have an is-default property on StorageClass.

Now, we need to balance normalization of the API fields with user experience, and that is really the argument in play here. How bad is UX if we leave this as a (non-beta) annotation?

To drawn an analog, node.spec.podCIDR is effectively specific to a single network driver and is completely ignored by others, and is confusing, at best.

@jsafrane
Copy link
Member Author

jsafrane commented Jan 9, 2017

I want to talk about is-default. I actually think it makes sense to stay as an annotation.

Ack, your arguments sound reasonable, I updated the feature to remove only beta from the annotation.

@liggitt
Copy link
Member

liggitt commented Jan 9, 2017

is this different than #36?

@jsafrane
Copy link
Member Author

jsafrane commented Jan 9, 2017

Oops, it is. I'm working on a feature for more than half a year without knowing about it :-(. Let's continue in #36.

@jsafrane jsafrane closed this as completed Jan 9, 2017
@idvoretskyi idvoretskyi removed this from the v1.6 milestone Jan 10, 2017
justaugustus pushed a commit to justaugustus/enhancements that referenced this issue Sep 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/storage Categorizes an issue or PR as relevant to SIG Storage.
Projects
None yet
Development

No branches or pull requests

4 participants