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
@@ -40,9 +41,9 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
40
41
-[X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
41
42
-[X] (R) KEP approvers have approved the KEP status as `implementable`
42
43
-[X] (R) Design details are appropriately documented
43
-
-[] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
44
+
-[X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
44
45
-[X] (R) Graduation criteria is in place
45
-
-[] (R) Production readiness review completed
46
+
-[X] (R) Production readiness review completed
46
47
-[ ] Production readiness review approved
47
48
-[ ] "Implementation History" section is up-to-date for milestone
48
49
-[ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
@@ -312,12 +313,22 @@ The plugin can signal to the kubelet how it should cache a given response. There
312
313
2. Registry: the kubelet should cache and use this response only for future images with the same registry hostname (and port if included).
313
314
3. Image: the kubelet should cache and use this response only for future images that match the image exactly.
314
315
316
+
### Metrics
317
+
318
+
Two kubelet metrics will be added:
319
+
*`kubelet_credential_provider_plugin_errors`: this will track the number errors that occurred from invoking an exec plugin
320
+
*`kubelet_credential_provider_plugin_duration`: this will track the duration of execution by plugins.
321
+
315
322
### Test Plan
316
323
317
324
Alpha:
318
325
* unit tests for the exec plugin provider
319
326
* unit tests for API validation
320
327
328
+
Beta:
329
+
* integration or e2e tests with at least one working plugin implementation
330
+
* unit tests for new concurrency/caching improvements.
331
+
321
332
### Graduation Criteria
322
333
323
334
### Alpha
@@ -330,6 +341,7 @@ can be achieved using the exec plugin.
330
341
331
342
* integration or e2e tests.
332
343
* at least one working plugin implementation.
344
+
* kubelet metrics for failed calls to exec plugins.
333
345
* improvements to concurrency and caching:
334
346
- use `singleflight.Group` to ensure only a single call per image. Today the kubelet holds a single lock for every call to `Provide`.
335
347
See [this](https://github.com/kubernetes/kubernetes/pull/94196#discussion_r517805701) and [this](https://github.com/kubernetes/kubernetes/pull/94196#discussion_r518487386) discussion.
@@ -376,55 +388,59 @@ _This section must be completed when targeting beta graduation to a release._
376
388
377
389
***How can a rollout fail? Can it impact already running workloads?**
378
390
379
-
TBD for beta.
391
+
Feature is enabled but exec plugin does not properly fetch and return credentials to the kubelet.
392
+
Impact is that kubelet cannot authenticate and pull credentials from those registries.
380
393
381
394
***What specific metrics should inform a rollback?**
382
395
383
-
TBD for beta.
396
+
High error rates from `kubelet_credential_provider_plugin_error` and long durations from `kubelet_credential_provider_plugin_duration`.
384
397
385
398
***Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
386
399
387
-
TBD for beta.
400
+
No, upgrade->downgrade->upgrade were not tested. Manual validation will be done prior to promoting this feature to beta in v1.21.
388
401
389
402
***Is the rollout accompanied by any deprecations and/or removals of features, APIs,
390
403
fields of API types, flags, etc.?**
391
404
392
-
TBD for beta.
405
+
Yes, this feature was added to remove the in-tree kubelet credential providers for AWS, Azure and GCP.
393
406
394
407
### Monitoring Requirements
395
408
396
409
_This section must be completed when targeting beta graduation to a release._
397
410
398
411
***How can an operator determine if the feature is in use by workloads?**
399
412
400
-
TBD for beta.
413
+
Operators can check for a kubelet config file passed into the `--image-credential-provider-config`.
414
+
The config has a field called `imageMatches` which indicates the images a plugin will be invoked for.
401
415
402
416
***What are the SLIs (Service Level Indicators) an operator can use to determine
0 commit comments