@@ -48,7 +48,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
48
48
- [X] (R) Graduation criteria is in place
49
49
- [X] (R) Production readiness review completed
50
50
- [X] (R) Production readiness review approved
51
- - [ ] "Implementation History" section is up-to-date for milestone
51
+ - [X ] "Implementation History" section is up-to-date for milestone
52
52
- [X] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
53
53
- [X] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
54
54
@@ -235,7 +235,7 @@ The default LeaderMigrationConfiguration can be represented as follows:
235
235
236
236
``` yaml
237
237
kind : LeaderMigrationConfiguration
238
- apiVersion : controllermanager.config.k8s.io/v1alpha1
238
+ apiVersion : controllermanager.config.k8s.io/v1
239
239
leaderName : cloud-provider-extraction-migration
240
240
resourceLock : leases
241
241
controllerLeaders :
@@ -292,9 +292,10 @@ unsetting the `--enable-leader-migration` flag.
292
292
- test resource registration, parsing, and validation against the Schema APIs
293
293
- test interactions with the leader election APIs
294
294
- E2E Testing
295
- - In a single-node control plane with leader election setting , test control plane upgrade, assert controller managers
295
+ - In a replicated control plane, test control plane upgrade, assert controller managers
296
296
become health and ready after upgrade
297
- - In a multi-node control plane setting, test control plane upgrade, assert availability throughout the upgrade
297
+ - In a replicated control plane, test control plane upgrade, assert no controllers
298
+ become active in both controller managers.
298
299
299
300
# ## Graduation Criteria
300
301
@@ -305,7 +306,10 @@ The default migration configuration is implemented and tested.
305
306
306
307
# #### Beta -> GA Graduation
307
308
308
- Leader migration configuration works on all in-tree cloud providers.
309
+ - Leader Migration works on all in-tree cloud providers that require migration.
310
+ - Leader Migration has an automated upgrade test on a replicated control plane, with Leader Migration enabled, of the following cases
311
+ - Upgrade from KCM only to KCM + CCM
312
+ - Rollback from KCM + CCM to KCM only
309
313
310
314
# ## Upgrade / Downgrade Strategy
311
315
@@ -350,7 +354,8 @@ disabled.
350
354
351
355
# ##### How can a rollout or rollback fail? Can it impact already running workloads?
352
356
353
- The rollout may fail if the configuration file does not represent correct controller-to-manager.
357
+ The rollout may fail if the configuration file does not represent correct controller-to-manager assignment
358
+ or configurations mismatch between controller managers.
354
359
This can cause controllers referred in the configuration file to either be unavailable or run in multiple instances.
355
360
356
361
The rollback may fail if the leader election of the controller manager is not properly configured.
@@ -383,6 +388,8 @@ N/A. This feature is never used by any user workloads.
383
388
- The `Lease` resource used in the migration can be watched for transition of leadership and timing information.
384
389
- logs and metrics can directly indicate the status of migration.
385
390
391
+ Note that this feature is intended for cluster administrators, who should have access to metrics during the upgrade.
392
+
386
393
# ##### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
387
394
388
395
Leader Migration is designed to ensure availability of controller managers during upgrade,
@@ -391,14 +398,11 @@ and this feature will not affect SLOs of controller managers.
391
398
# ##### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
392
399
393
400
- [X] Metrics
394
- - leader_active
395
- - other per -controller availability metrics.
401
+ - per-controller health checks in both controller managers.
402
+ - Components exposing the metric : kube -controller-manager, cloud-controller-manager
396
403
397
404
# ##### Are there any missing metrics that would be useful to have to improve observability of this feature?
398
405
399
- It would help if every controller that the controller manager hosts expose metrics about their availability.
400
- However, per-controller metrics are out of scope of this KEP.
401
-
402
406
Status of the migration lease, provided by the API server, can help observe the transition of holders
403
407
if exposed as resource metrics.
404
408
@@ -422,7 +426,7 @@ If the service accounts are not granted access to the lease resources, the RBAC
422
426
423
427
# ##### Will enabling / using this feature result in introducing new API types?
424
428
425
- Type : ` controllermanager.config.k8s.io/v1alpha1 .LeaderMigrationConfiguration`
429
+ Type : ` controllermanager.config.k8s.io/v1 .LeaderMigrationConfiguration`
426
430
This resource is only for configuration file parsing. The resource should never reach the API server.
427
431
428
432
# ##### Will enabling / using this feature result in any new calls to the cloud provider?
466
470
- 12-28-2020 Parsing and validation merged as # 96226
467
471
- 03-10-2021 Implementation for alpha state completed, released in 1.21.
468
472
- 03-30-2021 User guide published as kubernetes/website#26970
469
- - 05-11-2021 KEP updated to target beta.
473
+ - 05-11-2021 KEP updated to target beta.
474
+ - 01-21-2022 KEP updated to target GA.
475
+ - 01-25-2022 Testing and monitoring revised for GA.
470
476
471
477
# # Drawbacks
472
478
0 commit comments