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

storage capacity GA #108445

Merged
merged 6 commits into from Mar 23, 2022
Merged

storage capacity GA #108445

merged 6 commits into from Mar 23, 2022

Conversation

pohly
Copy link
Contributor

@pohly pohly commented Mar 2, 2022

What type of PR is this?

/kind feature
/kind api-change

What this PR does / why we need it:

Storage capacity tracking is ready for promotion to GA.

Which issue(s) this PR fixes:

Related-to: kubernetes/enhancements#1472

Special notes for your reviewer:

Does this PR introduce a user-facing change?

CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

- [KEP]: https://github.com/kubernetes/enhancements/issues/1472
- [Usage]: https://kubernetes.io/docs/concepts/storage/storage-capacity/
- [Other doc]: https://kubernetes-csi.github.io/docs/storage-capacity-tracking.html

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Mar 2, 2022
@k8s-ci-robot k8s-ci-robot added area/apiserver area/code-generation area/test sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/auth Categorizes an issue or PR as relevant to SIG Auth. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Mar 2, 2022
@pohly
Copy link
Contributor Author

pohly commented Mar 2, 2022

I know already that one test is failing:

$ PATH=`pwd`/third_party/etcd:$PATH go test ./test/integration/etcd
...
    --- FAIL: TestEtcdStoragePath/storage.k8s.io/v1,_Resource=csistoragecapacities (0.01s)
        etcd_storage_path_test.go:189: Previous releases understand non-alpha versions ["v1beta1"], but do not understand the expected current storage version "v1". This means a current server will store data in etcd that is not understood by a previous version.
        etcd_storage_path_test.go:198: GVK for CSIStorageCapacity does not match, expected storage.k8s.io/v1, Kind=CSIStorageCapacity got storage.k8s.io/v1beta1, Kind=CSIStorageCapacity
FAIL

My understanding was that the version override in

apisstorage.Resource("csistoragecapacities").WithVersion("v1beta1"),
will continue to select v1beta1 as storage version (intentionally left in place in this PR), but I am not sure.

The csistoragecapacities resource MUST exist in the /apis/storage.k8s.io/v1 discovery document.
The csistoragecapacities resource must support create, get, list, watch, update, patch, delete, and deletecollection.
*/
framework.ConformanceIt(" should support CSIStorageCapacities API operations", func() {
Copy link
Member

Choose a reason for hiding this comment

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

Ideally this test is submitted without 'ConformanceIt' for a couple weeks, then when it's shown stable, we add ConformanceIt(), updated the conformance/testdata. Is that possible?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure. I've changed this test so that it gets added as a normal test.

#108867 has the promotion to conformance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For example, the test runs in pull-kubernetes-e2e-kind and should be in any of the periodic storage tests:

[It]  should support CSIStorageCapacities API operations
  test/e2e/storage/csistoragecapacity.go:48
�[1mSTEP�[0m: getting /apis
�[1mSTEP�[0m: getting /apis/storage.k8s.io
�[1mSTEP�[0m: getting /apis/storage.k8s.io/v1
�[1mSTEP�[0m: creating
�[1mSTEP�[0m: watching
Mar 22 07:53:29.629: INFO: starting watch
�[1mSTEP�[0m: getting
�[1mSTEP�[0m: listing in namespace
�[1mSTEP�[0m: listing across namespaces
�[1mSTEP�[0m: patching
�[1mSTEP�[0m: updating
Mar 22 07:53:29.736: INFO: waiting for watch events with expected annotations in namespace
Mar 22 07:53:29.736: INFO: waiting for watch events with expected annotations across namespace
�[1mSTEP�[0m: deleting
�[1mSTEP�[0m: deleting a collection
[AfterEach] [sig-storage] CSIStorageCapacity
  test/e2e/framework/framework.go:186
Mar 22 07:53:29.832: INFO: Waiting up to 3m0s for all (but 0) nodes to be ready
�[1mSTEP�[0m: Destroying namespace "csistoragecapacity-5900" for this suite.

�[32m•�[0m
�[90m------------------------------�[0m
{"msg":"PASSED [sig-storage] CSIStorageCapacity  should support CSIStorageCapacities API operations","total":-1,"completed":30,"skipped":286,"failed":0}

This is needed for GA APIs. This one is based on
test/e2e/common/node/runtimeclass.go.
@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 22, 2022
@xing-yang
Copy link
Contributor

/retest

@xing-yang
Copy link
Contributor

/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 Mar 22, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alculquicondor, liggitt, msau42, pohly, xing-yang

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

@pohly
Copy link
Contributor Author

pohly commented Mar 22, 2022

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 22, 2022
@pohly
Copy link
Contributor Author

pohly commented Mar 22, 2022

/retest

1 similar comment
@pohly
Copy link
Contributor Author

pohly commented Mar 22, 2022

/retest

@k8s-triage-robot
Copy link

The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass.

This bot retests PRs for certain kubernetes repos according to the following rules:

  • The PR does have any do-not-merge/* labels
  • The PR does not have the needs-ok-to-test label
  • The PR is mergeable (does not have a needs-rebase label)
  • The PR is approved (has cncf-cla: yes, lgtm, approved labels)
  • The PR is failing tests required for merge

You can:

/retest

The csistoragecapacities resource must support create, get, list, watch, update, patch, delete, and deletecollection.
TODO (pohly): promote to framework.ConformanceIt
*/
ginkgo.It(" should support CSIStorageCapacities API operations", func() {
Copy link
Member

Choose a reason for hiding this comment

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

After a couple weeks of non-flaky soaking, we can merge in the conformance promotion PR https://github.com/kubernetes/kubernetes/pull/108867/files#diff-5e1072eb7b333bc3faf7068eb5ce93d29adaad658b5bcdd52a8238c18c5f8f92R47

@k8s-triage-robot
Copy link

The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass.

This bot retests PRs for certain kubernetes repos according to the following rules:

  • The PR does have any do-not-merge/* labels
  • The PR does not have the needs-ok-to-test label
  • The PR is mergeable (does not have a needs-rebase label)
  • The PR is approved (has cncf-cla: yes, lgtm, approved labels)
  • The PR is failing tests required for merge

You can:

/retest

1 similar comment
@k8s-triage-robot
Copy link

The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass.

This bot retests PRs for certain kubernetes repos according to the following rules:

  • The PR does have any do-not-merge/* labels
  • The PR does not have the needs-ok-to-test label
  • The PR is mergeable (does not have a needs-rebase label)
  • The PR is approved (has cncf-cla: yes, lgtm, approved labels)
  • The PR is failing tests required for merge

You can:

/retest

@pohly
Copy link
Contributor Author

pohly commented Mar 23, 2022

/retest

@k8s-ci-robot k8s-ci-robot merged commit 24a7199 into kubernetes:master Mar 23, 2022
SIG Auth Old automation moved this from Needs Triage to Closed / Done Mar 23, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.24 milestone Mar 23, 2022
@Riaankl
Copy link
Contributor

Riaankl commented Mar 24, 2022

Testgrid looking good!

@Riaankl
Copy link
Contributor

Riaankl commented Mar 28, 2022

@pohly the test grid for the test have been green every time I checked. 😄
Test freeze is on 6 April. Can you please create the Promtion PR before then to be sure no "new conformance tech debt" will appear for this release.

@pohly
Copy link
Contributor Author

pohly commented Mar 28, 2022

Yes, will do.

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. area/apiserver area/code-generation area/conformance Issues or PRs related to kubernetes conformance tests area/test 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 kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. 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/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/auth Categorizes an issue or PR as relevant to SIG Auth. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. 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. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: API review completed, 1.24
Archived in project
SIG Auth Old
Closed / Done
Development

Successfully merging this pull request may close these issues.

None yet