You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: keps/sig-storage/3751-volume-attributes-class/README.md
+35-19
Original file line number
Diff line number
Diff line change
@@ -82,15 +82,15 @@
82
82
Items marked with (R) are required *prior to targeting to a milestone / release*.
83
83
84
84
-[X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
85
-
-[] (R) KEP approvers have approved the KEP status as `implementable`
85
+
-[X] (R) KEP approvers have approved the KEP status as `implementable`
86
86
-[X] (R) Design details are appropriately documented
87
-
-[] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
88
-
-[] e2e Tests for all Beta API Operations (endpoints)
89
-
-[] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
87
+
-[X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
88
+
-[X] e2e Tests for all Beta API Operations (endpoints) - [dashboard](https://testgrid.k8s.io/sig-storage-kubernetes#kind-storage-alpha-beta-features&include-filter-by-regex=%5BFeature%3AVolumeAttributesClass%5D&include-filter-by-regex=%5BFeature%3AVolumeAttributesClass%5D&include-filter-by-regex=%5C%5BFeature%3AVolumeAttributesClass%5C%5D)
89
+
-[X] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
90
90
-[ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
91
91
-[ ] (R) Graduation criteria is in place
92
92
-[ ] (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)
93
-
-[] (R) Production readiness review completed
93
+
-[X] (R) Production readiness review completed
94
94
-[ ] (R) Production readiness review approved
95
95
-[X] "Implementation History" section is up-to-date for milestone
96
96
-[X] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
@@ -694,10 +694,7 @@ VolumeAttributesClass parameters can be considered as best-effort parameters, th
694
694
695
695
* Basic unit tests for performance and quota system.
696
696
* API conformance tests
697
-
* E2E tests with happy tests in the [K8s storage framework](https://github.com/kubernetes/kubernetes/tree/master/test/e2e/storage/testsuites) for different drivers testing
698
-
* E2E tests using mock driver to cause failure on create, update and recovering cases
@@ -843,7 +839,27 @@ A metric `controller_modify_volume_errors_total` will indicate a problem with th
843
839
844
840
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
845
841
846
-
TODO Upgrade and rollback will be tested when the feature gate will change to beta.
842
+
Tested in Beta:
843
+
844
+
1. Enable both feature flag and beta API in api-server, create PVC with VAC1, and then modify to VAC2
845
+
2. Turn off the feature flag first, and then try to modify PVC back to VAC1, got error:
846
+
847
+
```
848
+
The PersistentVolumeClaim "test-pvc" is invalid: spec.volumeAttributesClassName: Forbidden: update
849
+
is forbidden when the VolumeAttributesClass feature gate is disabled
850
+
```
851
+
The pod and volume are both up and running.
852
+
853
+
3. Turn off the beta API, this time ``kubectl get vac`` got error:
854
+
```
855
+
Error from server (NotFound): Unable to list "storage.k8s.io/v1beta1, Resource=volumeattributesclasses":
856
+
the server could not find the requested resource
857
+
```
858
+
859
+
The pod and volume are both up and running.
860
+
861
+
4. Turn on both feature flag and beta API in api-server again. ``kubectl get vac`` shows the VACs again. Change PVC back to VAC1, modify is applied.
862
+
847
863
848
864
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
849
865
@@ -922,7 +938,7 @@ previous answers based on experience in the field.
922
938
923
939
###### Will enabling / using this feature result in any new API calls?
924
940
925
-
Yes. The VAC protection controller will be expensive because it needs to LIST PVCs/PVs but the call volume should be low.
941
+
Yes. The VAC protection controller will be expensive because it needs to LIST PVCs/PVs but the call rate should be low because it is user triggered by changing VAC in the PVC.
926
942
927
943
- API call type: PATCH PVC
928
944
- estimated throughput: low, only once for PVCs that have
@@ -953,7 +969,7 @@ Using this feature may result in non-negligible increase of resource usage IF cu
953
969
- external-resizer CPU and memory will see a non-negligible increase if users increased the number of concurrent operations via the `--workers` flag. We follow the strategy of sharing that limit between `ControllerExpandVolume` and `ControllerModifyVolume` RPCs, similar to how external-provisioner functions.
954
970
- The API-Server may see a spike of CPU when processing relevant changes.
955
971
956
-
Stress tests will determine increase in resource usage at varying amounts of concurrent volume modifications.
972
+
Stress tests will determine increase in resource usage at varying amounts of concurrent volume modifications. Before promoting to Beta in 1.29, 250 modifications at a rate of 4 patches per second was tested on AWS and the bottle-neck is AWS limits.
0 commit comments