Skip to content

Commit fecf9a7

Browse files
authored
Merge pull request #7 from aramase/rollback-comments
add steps for disabling feature
2 parents ebedb57 + 93dff58 commit fecf9a7

File tree

1 file changed

+11
-2
lines changed
  • keps/sig-auth/3299-kms-v2-improvements

1 file changed

+11
-2
lines changed

keps/sig-auth/3299-kms-v2-improvements/README.md

+11-2
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,14 @@ No. The v2 API is new in the v1.25 release.
399399

400400
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
401401

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+
Yes, To disable encryption at rest using the v2 API:
403+
1. Disable encryption at rest with KMS provider by running through these [steps](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/#disabling-encryption-at-rest)
404+
1. At the end of this step, all the data in etcd will be unencrypted.
405+
2. Disable the `KMSv2` feature gate.
406+
407+
Disabling this gate without first doing a storage migration to use a different encryption at rest mechanism will result in data loss.
408+
409+
Once the feature gate is disabled, if the plan is to use a different encryption at rest mechanism instead of KMS, then unset the `--encryption-provider-config` flag on the kube-apiserver.
403410

404411
###### What happens if we reenable the feature if it was previously rolled back?
405412

@@ -422,7 +429,8 @@ You can take a look at one potential example of such test in:
422429
https://github.com/kubernetes/kubernetes/pull/97058/files#diff-7826f7adbc1996a05ab52e3f5f02429e94b68ce6bce0dc534d1be636154fded3R246-R282
423430
-->
424431

425-
N/A. When the feature is disabled, data stored in etcd will no longer be encrypted using the external kms provider with v2 API
432+
- When the feature is disabled, data stored in etcd will no longer be encrypted using the external kms provider with v2 API.
433+
- If the feature is disabled incorrectly (i.e without performing a storage migration), existing data that is encrypted with the external kms provider will be unable to be decrypted. This will cause list and get operations to fail for the resources that were encrypted.
426434

427435
### Rollout, Upgrade and Rollback Planning
428436

@@ -534,6 +542,7 @@ No.
534542
- This feature is part of API server. The feature is unavailable if API server is unavailable.
535543
- ETCD data encryption with external kms-plugin is unavailable
536544
- 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.
545+
- If the `EncryptionConfiguration` configured in the API server is not valid and the API server is restarted, it'll fail health check (same behavior as today).
537546

538547
## Implementation History
539548

0 commit comments

Comments
 (0)