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
###### Does enabling the feature change any default behavior?
396
397
397
-
No. The v2 API is new in the v1.25 release.
398
+
No. The v2 API is new in the v1.25 release.
398
399
399
400
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
400
401
401
402
Yes, via the `KMSv2` feature gate. Disabling this gate without first doing a storage migration to use a different encryption at rest mechanism will result in data loss.
402
403
404
+
###### What happens if we reenable the feature if it was previously rolled back?
405
+
406
+
After the feature is reenabled, if a v2 KMS provider is still configured in the `EncryptionConfiguration`
407
+
- All new data will be encrypted with the external kms provider.
408
+
- Existing data can be decrypted if the key used for encryption before feature rollback still exists.
409
+
410
+
###### Are there any tests for feature enablement/disablement?
411
+
412
+
<!--
413
+
The e2e framework does not currently support enabling or disabling feature
414
+
gates. However, unit tests in each component dealing with managing data, created
415
+
with and without the feature, are necessary. At the very least, think about
416
+
conversion tests if API types are being modified.
417
+
418
+
Additionally, for features that are introducing a new API field, unit tests that
419
+
are exercising the `switch` of feature gate itself (what happens if I disable a
420
+
feature gate after having objects written with the new field) are also critical.
421
+
You can take a look at one potential example of such test in:
N/A. When the feature is disabled, data stored in etcd will no longer be encrypted using the external kms provider with v2 API
426
+
427
+
### Rollout, Upgrade and Rollback Planning
428
+
429
+
<!--
430
+
This section must be completed when targeting beta to a release.
431
+
-->
432
+
433
+
This section is incomplete and will be updated before the beta milestone.
434
+
435
+
###### How can a rollout or rollback fail? Can it impact already running workloads?
436
+
437
+
<!--
438
+
Try to be as paranoid as possible - e.g., what if some components will restart
439
+
mid-rollout?
440
+
441
+
Be sure to consider highly-available clusters, where, for example,
442
+
feature flags will be enabled on some API servers and not others during the
443
+
rollout. Similarly, consider large clusters and how enablement/disablement
444
+
will rollout across nodes.
445
+
-->
446
+
447
+
- If a rollback of the feature is done without first doing a storage migration to use a different encryption at rest mechanism will result in data loss.
448
+
- Workloads relying on existing data in etcd will no longer be able to access it.
449
+
- The data can be retrieved by reenabling the feature gate or deleting and recreating the data.
450
+
451
+
###### What specific metrics should inform a rollback?
452
+
453
+
<!--
454
+
What signals should users be paying attention to when the feature is young
455
+
that might indicate a serious problem?
456
+
-->
457
+
458
+
This section is incomplete and will be updated before the beta milestone.
459
+
460
+
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
461
+
462
+
<!--
463
+
Describe manual testing that was done and the outcomes.
464
+
Longer term, we may want to require automated upgrade/rollback tests, but we
465
+
are missing a bunch of machinery and tooling and can't do that now.
466
+
-->
467
+
468
+
This section is incomplete and will be updated before the beta milestone.
469
+
470
+
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
471
+
472
+
<!--
473
+
Even if applying deprecation policies, they may still surprise some users.
474
+
-->
475
+
476
+
N/A
477
+
403
478
### Monitoring Requirements
404
479
405
480
###### How can someone using this feature know that it is working for their instance?
406
481
407
482
-[x] Other (treat as last resort)
408
-
- Details: Logs in kube-apiserver, kms-plugin and KMS will be logged with the corresponding `observed_key_id`, `annotations`, and `UID`.
483
+
- Details:
484
+
- Logs in kube-apiserver, kms-plugin and KMS will be logged with the corresponding `observed_key_id`, `annotations`, and `UID`.
485
+
- count of encryption/decryption requests by resource and version
409
486
410
487
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
411
488
@@ -414,7 +491,9 @@ There should be no impact on the SLO with this change.
414
491
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
415
492
416
493
-[x] Other (treat as last resort)
417
-
- Details: Logs in kube-apiserver, kms-plugin and KMS will be logged with the corresponding `observed_key_id`, `annotations`, and `UID`.
494
+
- Details:
495
+
- Logs in kube-apiserver, kms-plugin and KMS will be logged with the corresponding `observed_key_id`, `annotations`, and `UID`.
496
+
- Metrics for latency of encryption/decryption requests.
418
497
419
498
### Dependencies
420
499
@@ -452,7 +531,9 @@ No.
452
531
453
532
###### How does this feature react if the API server and/or etcd is unavailable?
454
533
534
+
- This feature is part of API server. The feature is unavailable if API server is unavailable.
455
535
- ETCD data encryption with external kms-plugin is unavailable
536
+
- If the API server is unavailable, clients will be unable to create/get data that's stored in etcd. There will be no requests from the API server to the kms-plugin.
0 commit comments