1
- <<<<<<< HEAD: keps /sig-storage/1495-generic-data-populators/README.md
2
- # Generic Data Populators
3
- =======
4
1
# Volume Populators
5
- >>>>>>> Reformat populators KEP: keps /sig-storage/1495-volume-populators/README.md
6
2
7
3
## Table of Contents
8
4
@@ -120,7 +116,8 @@ objects and generate events on objects with data sources that are not considered
120
116
determine which data sources are valid a new CRD will be introduced valled ` VolumePopulator `
121
117
which will allow actual data populator controllers to register the API ` groups ` /` kinds ` that
122
118
they understand with the ` data-source-validator ` controller. If a PVC has a data source that
123
- matches the ` group ` /` kind ` of a registered ` VolumePopulator ` the controller will ignore it.
119
+ matches the ` group ` /` kind ` of a registered ` VolumePopulator ` the controller will consider
120
+ it valid and emit no events, relying on the actual populator to give feedback to the user.
124
121
125
122
Instances of the VolumePopulator CRD will look like:
126
123
@@ -136,8 +133,8 @@ sourceKind:
136
133
137
134
In this model there will be 4 sources of feedback to the end user:
138
135
1 . The API server will reject core objects other than PVCs with it current behavior, which
139
- is to accept the PVC but to blank out the data source. The is backwards compatible, and
140
- appropriate becuse we don't expect any existing core object (other than a PVC) to be a
136
+ is to accept the PVC but to blank out the data source. This is backwards compatible, and
137
+ appropriate because we don't expect any existing core object (other than a PVC) to be a
141
138
valid data source.
142
139
1 . For data sources that refer to a unknown group/kind, the data-source-validator will emit
143
140
an event on the PVC informing the user that the PVC is currently not being acted on, so
@@ -146,7 +143,7 @@ In this model there will be 4 sources of feedback to the end user:
146
143
install the actual populator, in which case they can do so, and the PVC will eventually
147
144
bind if all of the installation steps succeed.
148
145
1 . For every PVC under the responsibility of a CSI driver, the provisioner sidecar for that
149
- PVR will emit an event explaining that the sidecar is not taking action on the PVC,
146
+ PVC will emit an event explaining that the sidecar is not taking action on the PVC,
150
147
assuming the data source is something that a populator is responsible for and not a
151
148
PVC or VolumeSnapshot, which the sidecar is responsible for.
152
149
1 . For data source that refer to a known group/kind the populator controller itself should
@@ -268,12 +265,12 @@ for this purpose. We would expect such a PVC to be ignored by existing
268
265
dynamic provisioners.
269
266
270
267
To test the data-source-validator, we need to check the following cases:
271
- - Creation of a PVC with no datasource is ignored
272
- - Creation of a PVC with a VolumeSnapshot or PVC datasource is ignored
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
273
270
- Creation of a PVC with a CRD datasource that's not registered by any
274
- volume populator causes events.
271
+ volume populator causes UnrecognizedDataSourceKind events.
275
272
- Creation of a PVC with a CRD datasource that's registered by a
276
- volume populator is ignored .
273
+ volume populator causes no events .
277
274
278
275
### Graduation Criteria
279
276
@@ -335,9 +332,8 @@ _This section must be completed when targeting alpha to a release._
335
332
Before this feature, kube API server would silently drop any PVC data source
336
333
that it didn't recognize, as if the client never populated the field. After
337
334
enabling this feature, the API server allows any object to be specified.
338
- An external admission controller will take over validation of the field,
339
- and its response to invalid data sources will be to fail the create operation,
340
- rather than silently drop them.
335
+ The data-source-validator controller will emit events for PVCs if the data
336
+ source is not recognized as one which is be handled by another controller.
341
337
342
338
* ** Can the feature be disabled once it has been enabled (i.e. can we roll back
343
339
the enablement)?**
0 commit comments