diff --git a/keps/prod-readiness/sig-storage/1495.yaml b/keps/prod-readiness/sig-storage/1495.yaml index c041c87adbc..e3767830e87 100644 --- a/keps/prod-readiness/sig-storage/1495.yaml +++ b/keps/prod-readiness/sig-storage/1495.yaml @@ -3,3 +3,5 @@ alpha: approver: "@deads2k" beta: approver: "@deads2k" +stable: + approver: "@deads2k" diff --git a/keps/sig-storage/1495-volume-populators/README.md b/keps/sig-storage/1495-volume-populators/README.md index 60e5f30fe73..a58cd2889ca 100644 --- a/keps/sig-storage/1495-volume-populators/README.md +++ b/keps/sig-storage/1495-volume-populators/README.md @@ -16,6 +16,8 @@ - [Risks and Mitigations](#risks-and-mitigations) - [Design Details](#design-details) - [Test Plan](#test-plan) + - [Unit Tests](#unit-tests) + - [Integration Tests](#integration-tests) - [Graduation Criteria](#graduation-criteria) - [Alpha -> Beta Graduation](#alpha---beta-graduation) - [Beta -> GA Graduation](#beta---ga-graduation) @@ -28,6 +30,7 @@ - [Dependencies](#dependencies) - [Scalability](#scalability) - [Troubleshooting](#troubleshooting) +- [Drawbacks](#drawbacks) - [Implementation History](#implementation-history) - [Alternatives](#alternatives) - [Validating webhook](#validating-webhook) @@ -38,27 +41,25 @@ **ACTION REQUIRED:** In order to merge code into a release, there must be an issue in [kubernetes/enhancements] referencing this KEP and targeting a release milestone **before [Enhancement Freeze](https://github.com/kubernetes/sig-release/tree/master/releases) of the targeted release**. -For enhancements that make changes to code or processes/procedures in core Kubernetes i.e., [kubernetes/kubernetes], we require the following Release Signoff checklist to be completed. - -Check these off as they are completed for the Release Team to track. These checklist items _must_ be updated for the enhancement to be released. - -- [ ] kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR) -- [ ] KEP approvers have set the KEP status to `implementable` -- [ ] Design details are appropriately documented -- [ ] Test plan is in place, giving consideration to SIG Architecture and SIG Testing input -- [ ] Graduation criteria is in place +- [X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR) +- [X] (R) KEP approvers have approved the KEP status as `implementable` +- [X] (R) Design details are appropriately documented +- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors) + - [ ] e2e Tests for all Beta API Operations ([pull-kubernetes-csi-lib-volume-populator dashboard](https://testgrid.k8s.io/sig-storage-csi-other#pull-kubernetes-csi-lib-volume-populator), [pull-kubernetes-csi-volume-data-source-validator dashboard](https://testgrid.k8s.io/sig-storage-csi-other#pull-kubernetes-csi-volume-data-source-validator)) + - [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) + - [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free +- [X] (R) Graduation criteria is in place + - [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) +- [X] (R) Production readiness review completed +- [ ] (R) Production readiness review approved - [ ] "Implementation History" section is up-to-date for milestone -- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io] -- [ ] Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes - -**Note:** Any PRs to move a KEP to `implementable` or significant changes once it is marked `implementable` should be approved by each of the KEP approvers. If any of those approvers is no longer appropriate than changes to that list should be approved by the remaining approvers and/or the owning SIG (or SIG-arch for cross cutting KEPs). - -**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone. +- [X] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io] +- [X] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes [kubernetes.io]: https://kubernetes.io/ -[kubernetes/enhancements]: https://github.com/kubernetes/enhancements/issues -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes -[kubernetes/website]: https://github.com/kubernetes/website +[kubernetes/enhancements]: https://git.k8s.io/enhancements +[kubernetes/kubernetes]: https://git.k8s.io/kubernetes +[kubernetes/website]: https://git.k8s.io/website ## Summary @@ -337,6 +338,17 @@ To test the `volume-data-source-validator`, we need to check the following cases - Creation of a PVC with a CRD `DataSourceRef` that's registered by a volume populator causes no events. +#### Unit Tests + +- [controller tests](https://github.com/kubernetes-csi/lib-volume-populator/blob/master/populator-machinery/controller_test.go) +- [util tests](https://github.com/kubernetes-csi/lib-volume-populator/blob/master/populator-machinery/util_test.go) +- [metrics tests](https://github.com/kubernetes-csi/lib-volume-populator/blob/master/populator-machinery/metrics_test.go) + +#### Integration Tests + +- [pull-kubernetes-csi-lib-volume-populator dashboard](https://testgrid.k8s.io/sig-storage-csi-other#pull-kubernetes-csi-lib-volume-populator) +- [pull-kubernetes-csi-volume-data-source-validator dashboard](https://testgrid.k8s.io/sig-storage-csi-other#pull-kubernetes-csi-volume-data-source-validator) + ### Graduation Criteria #### Alpha -> Beta Graduation @@ -357,7 +369,7 @@ To test the `volume-data-source-validator`, we need to check the following cases - Distributions including data populators as part of their distros (possibly a backup/restore implementation layered on top) -- Allowing time for feedback +- Feedback issues are addressed, please [GA Blocker list](https://github.com/kubernetes-csi/lib-volume-populator/issues?q=is%3Aissue+%22GA+Blocker%22) ### Upgrade / Downgrade Strategy @@ -434,8 +446,6 @@ fields of API types, flags, etc.?** ### Monitoring Requirements -_This section must be completed when targeting beta graduation to a release._ - * **How can an operator determine if the feature is in use by workloads?** Simply look at the data source field of the PVCs. Non-empty data sources with a Kind other than snapshot and PVC indicate this feature is in use. Also the @@ -573,6 +583,12 @@ resource usage (CPU, RAM, disk, IO, ...) in any components?** is determined, a populator-specific investigation will be needed, starting from looking at the logs for that populator. +## Drawbacks + + `DataSource` and `DataSourceRef` cannot be pointed to different resources. + While this is by design, it does not solve certain use case like restore volume + from VolumeSnapshot, and then do volume population. + ## Implementation History - The idea of data populators has been discussed abstractly in SIG-storage diff --git a/keps/sig-storage/1495-volume-populators/kep.yaml b/keps/sig-storage/1495-volume-populators/kep.yaml index b5faacc23de..ecac5b52e40 100644 --- a/keps/sig-storage/1495-volume-populators/kep.yaml +++ b/keps/sig-storage/1495-volume-populators/kep.yaml @@ -7,7 +7,7 @@ participating-sigs: - sig-api-machinery status: implementable creation-date: 2019-12-03 -last-updated: 2022-01-31 +last-updated: 2024-01-16 reviewers: - "@thockin" - "@saad-ali" @@ -18,12 +18,12 @@ approvers: - "@saad-ali" replaces: - "/keps/sig-storage/20200120-generic-data-populators.md" -stage: beta -latest-milestone: "v1.23" +stage: stable +latest-milestone: "v1.33" milestone: alpha: "v1.18" beta: "v1.24" - stable: "v1.25" + stable: "v1.33" feature-gates: - name: AnyVolumeDataSource components: