@@ -265,8 +265,8 @@ for this purpose. We would expect such a PVC to be ignored by existing
265
265
dynamic provisioners.
266
266
267
267
To test the data-source-validator, we need to check the following cases:
268
- - Creation of a PVC with no datasource causes no events
269
- - Creation of a PVC with a VolumeSnapshot or PVC datasource causes no events
268
+ - Creation of a PVC with no datasource causes no events.
269
+ - Creation of a PVC with a VolumeSnapshot or PVC datasource causes no events.
270
270
- Creation of a PVC with a CRD datasource that's not registered by any
271
271
volume populator causes UnrecognizedDataSourceKind events.
272
272
- Creation of a PVC with a CRD datasource that's registered by a
@@ -321,12 +321,13 @@ _This section must be completed when targeting alpha to a release._
321
321
- [X] Feature gate (also fill in values in ` kep.yaml ` )
322
322
- Feature gate name: AnyVolumeDataSource
323
323
- Components depending on the feature gate: kube-apiserver
324
- - [ ] Other
325
- - Describe the mechanism:
324
+ - [X] Other
325
+ - Describe the mechanism: Also install the data-source-validator controller
326
+ and its associated VolumePopulator CRD.
326
327
- Will enabling / disabling the feature require downtime of the control
327
- plane?
328
+ plane? no
328
329
- Will enabling / disabling the feature require downtime or reprovisioning
329
- of a node? (Do not assume ` Dynamic Kubelet Config ` feature is enabled).
330
+ of a node? no
330
331
331
332
* ** Does enabling the feature change any default behavior?**
332
333
Before this feature, kube API server would silently drop any PVC data source
@@ -337,8 +338,16 @@ _This section must be completed when targeting alpha to a release._
337
338
338
339
* ** Can the feature be disabled once it has been enabled (i.e. can we roll back
339
340
the enablement)?**
340
- Turning off the feature gate should drop all the data sources that were not
341
- already valid and restore the old behavior.
341
+ Turning off the feature gate should causes the API server to go back to dropping
342
+ data sources for new PVCs. An admin would also want to remove any data populator
343
+ controllers, and the data-source-validator controller, and the VolumePopulator
344
+ CRD. Lastly, and unbound PVCs with data sources should be deleted, as they
345
+ will never bind.
346
+
347
+ Alternatively, just disable the feature gate and remove the populator controllers,
348
+ but leave the data-source-validator controller and the VolumePopulator CRD,
349
+ and it will generate events on any PVCs which need to be deleted. Then it
350
+ could be left up to end users to delete their own PVCs which will never bind.
342
351
343
352
* ** What happens if we reenable the feature if it was previously rolled back?**
344
353
PVC which previously had data sources that were invalided by the rollback
@@ -396,6 +405,9 @@ the health of the service?**
396
405
of this feature?**
397
406
Describe the metrics themselves and the reasons why they weren't added (e.g., cost,
398
407
implementation difficulties, etc.).
408
+ * Counter for number of PVCs with no data sources
409
+ * Counter for number of PVCs with valid data sources
410
+ * Counter for number of PVCs with invalid data sources
399
411
400
412
### Dependencies
401
413
0 commit comments