@@ -77,10 +77,10 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
77
77
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
78
78
- [X] (R) Graduation criteria is in place
79
79
- [X] (R) Production readiness review completed
80
- - [ ] Production readiness review approved
81
- - [ ] "Implementation History" section is up-to-date for milestone
82
- - [ ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
83
- - [ ] Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
80
+ - [X ] Production readiness review approved
81
+ - [X ] "Implementation History" section is up-to-date for milestone
82
+ - [X ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
83
+ - [X ] Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
84
84
85
85
<!--
86
86
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
@@ -806,7 +806,7 @@ checks for events that describe the problem.
806
806
- 5 installs
807
807
- More rigorous forms of testing e.g., downgrade tests and scalability tests
808
808
- Allowing time for feedback
809
- - Integration with [ Cluster Autoscaler] ( https://github.com/kubernetes/autoscaler )
809
+ - Design for support in [ Cluster Autoscaler] ( https://github.com/kubernetes/autoscaler )
810
810
811
811
### Upgrade / Downgrade Strategy
812
812
@@ -842,15 +842,14 @@ enhancement:
842
842
### Feature enablement and rollback
843
843
844
844
* ** How can this feature be enabled / disabled in a live cluster?**
845
- - [X] Feature gate
846
- - Feature gate name: CSIStorageCapacity
847
- - Components depending on the feature gate:
848
- - apiserver
845
+ - [X] CSIDriver.StorageCapacity field can be modified
846
+ - Components depending on the field:
849
847
- kube-scheduler
850
848
851
849
* ** Does enabling the feature change any default behavior?**
852
850
853
- Enabling it only in kube-scheduler and api-server and not any of the
851
+ Enabling it only in kube-scheduler and api-server by updating
852
+ to a Kubernetes version where it is enabled and not in any of the
854
853
running CSI drivers causes no changes. Everything continues as
855
854
before because no ` CSIStorageCapacity ` objects are created and
856
855
kube-scheduler does not wait for any.
@@ -861,12 +860,19 @@ enhancement:
861
860
862
861
* ** Can the feature be disabled once it has been enabled (i.e. can we rollback
863
862
the enablement)?**
864
- Yes.
865
863
866
- In Kubernetes 1.19 and 1.20, registration of the
867
- ` CSIStorageCapacity ` type was controlled by the feature gate. In
868
- 1.21, the type will always be enabled in the v1beta1 API
869
- group. Depending on the combination of Kubernetes release and
864
+ Yes, by disabling it in the CSI driver deployment:
865
+ ` CSIDriver.StorageCapacity=false ` causes kube-scheduler to ignore storage
866
+ capacity for the driver. In addition, external-provisioner can be deployed so
867
+ that it does not publish capacity information (` --enable-capacity=false ` ).
868
+
869
+ Downgrading to a previous Kubernetes release may also disable the feature or
870
+ allow disabling it via a feature gate: In Kubernetes 1.19 and 1.20,
871
+ registration of the ` CSIStorageCapacity ` type was controlled by the feature
872
+ gate. In 1.21, the type will always be enabled in the v1beta1 API group. In
873
+ 1.24, the type is always enabled in the v1 API unconditionally.
874
+
875
+ Depending on the combination of Kubernetes release and
870
876
feature gate, the type will be disabled. However, any existing
871
877
objects will still remain in the etcd database, they just won't be
872
878
visible.
@@ -934,7 +940,7 @@ consumption, increased latency), specifically
934
940
935
941
* ** Were upgrade and rollback tested? Was upgrade->downgrade->upgrade path tested?**
936
942
937
- Not yet, but will be done manually before transition to beta.
943
+ This was done manually before transition to beta.
938
944
939
945
* ** Is the rollout accompanied by any deprecations and/or removals of features,
940
946
APIs, fields of API types, flags, etc.?**
@@ -951,18 +957,16 @@ scheduling workloads onto nodes, but not while those run.
951
957
That a CSI driver provides storage capacity information can seen in the
952
958
following metric data that will be provided by external-provisioner instances:
953
959
- total number of ` CSIStorageCapacity ` objects that the external-provisioner
954
- is currently meant to manage for the driver
960
+ is currently meant to manage for the driver: ` csistoragecapacities_desired_goal `
955
961
- number of such objects that currently exist and can be kept because
956
- they have a topology/storage class pair that is still valid
962
+ they have a topology/storage class pair that is still valid: ` csistoragecapacities_desired_current `
957
963
- number of such objects that currently exist and need to be deleted
958
- because they have an outdated topology/storage class pair
959
- - work queue length for creating, updating or deleting objects
964
+ because they have an outdated topology/storage class pair: ` csistoragecapacities_obsolete `
965
+ - work queue length for creating, updating or deleting objects: ` csistoragecapacity ` work queue
960
966
961
967
The CSI driver name will be used as label. When using distributed
962
968
provisioning, the node name will be used as additional label.
963
969
964
- TODO: mention the exact metrics names once they are implemented.
965
-
966
970
* ** What are the SLIs (Service Level Indicators) an operator can use to
967
971
determine the health of the service?**
968
972
@@ -1100,6 +1104,7 @@ to `CSIStorageCapacity` objects.
1100
1104
- Kubernetes 1.19: alpha
1101
1105
- Kubernetes 1.21: beta
1102
1106
- Kubernetes 1.23: ` CSIDriver.Spec.StorageCapacity ` became mutable.
1107
+ - Kubernetes 1.24: GA
1103
1108
1104
1109
## Drawbacks
1105
1110
0 commit comments