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
Copy file name to clipboardExpand all lines: keps/sig-multicluster/2149-clusterid/README.md
+33-8Lines changed: 33 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -501,7 +501,7 @@ One effect of that decision is related to the upgrade path. Implementing this re
501
501
| Blockers | Official API review if using *.k8s.io | Official API review |
502
502
| Conformance testing | Not possible now, and no easy path forward | Standard |
503
503
504
-
**In the end, SIG-Multicluster discussed this with SIG-Architecture and it was decided to stick with the plan to use a CRD.** Notes from this conversation are in the [SIG-Architecture meeting agenda](https://docs.google.com/document/d/1BlmHq5uPyBUDlppYqAAzslVbAO8hilgjqZUTaNXUhKM/preview) for 3/25/2021.
504
+
**In the end, SIG-Multicluster discussed this with SIG-Architecture and it was decided to stick with the plan to use a CRD.** Notes from this conversation are in the [SIG-Architecture meeting agenda](https://docs.google.com/document/d/1BlmHq5uPyBUDlppYqAAzslVbAO8hilgjqZUTaNXUhKM/preview) for 3/25/2021. A graduation criteria set for Alpha->Beta stage to fully immortalize this decision is intended to be the last chance to consider including this design in k/k or not.
505
505
506
506
507
507
### Test Plan
@@ -621,6 +621,10 @@ enhancement:
621
621
622
622
## Production Readiness Review Questionnaire
623
623
624
+
**NOTE: While this KEP represents only the schema of a CRD that will be implemented
625
+
out-of-tree and maintained separately from core Kubernetes, a best effort on the PRR
626
+
questionnaire is enclosed below.**
627
+
624
628
<!--
625
629
626
630
Production readiness reviews are intended to ensure that features merging into
@@ -652,30 +656,51 @@ _This section must be completed when targeting alpha to a release._
652
656
-[ ] Feature gate (also fill in values in `kep.yaml`)
653
657
- Feature gate name:
654
658
- Components depending on the feature gate:
655
-
-[] Other
659
+
-[x] Other
656
660
- Describe the mechanism:
661
+
- This feature is independently installed via a CRD hosted on the kubernetes-sigs Github.
657
662
- Will enabling / disabling the feature require downtime of the control
658
663
plane?
664
+
- No
659
665
- Will enabling / disabling the feature require downtime or reprovisioning
660
666
of a node? (Do not assume `Dynamic Kubelet Config` feature is enabled).
667
+
- No
661
668
662
669
***Does enabling the feature change any default behavior?**
663
-
Any change of default behavior may be surprising to users or break existing
664
-
automations, so be extremely careful here.
670
+
_Any change of default behavior may be surprising to users or break existing
671
+
automations, so be extremely careful here._
672
+
- No default Kubernetes behavior is currently planned to be based on this feature; it is
673
+
designed to be used by the separately installed, out-of-tree, MCS controller. That being said,
674
+
we are of the opinion that future features (default or not) may want to use this CRD (as debated
675
+
in "To CRD or Not to CRD" section, above) but we believe it is in the scope of those future features
676
+
to assess the impact of requiring CRD bootstrapping has on their feature stability if they do.
665
677
666
678
***Can the feature be disabled once it has been enabled (i.e. can we roll back
667
679
the enablement)?**
668
-
Also set `disable-supported` to `true` or `false` in `kep.yaml`.
680
+
_Also set `disable-supported` to `true` or `false` in `kep.yaml`.
669
681
Describe the consequences on existing workloads (e.g., if this is a runtime
670
-
feature, can it break the existing applications?).
682
+
feature, can it break the existing applications?)._
683
+
- Yes, as this feature only describes a CRD, it can most directly be disabled by uninstalling the CRD.
684
+
However in practice it is expected that the bootstrapping of this CRD and the management of the well known property CRs themselves will be managed
685
+
by the mcs-controller, and the recommended way to disable this feature will be to disable the mcs-controller.
686
+
It is expected the mcs-controller will be responsible for detecting the presence
687
+
of this CRD to gracefully fail or otherwise raise error messages that can be acted on if the
688
+
CRD has been disabled by a mechanism other than the mcs-controller's lifecycle management of the CRD.
671
689
672
690
***What happens if we reenable the feature if it was previously rolled back?**
691
+
- Purely from this KEP's standpoint, feature reenablement - namely, reinstallation of the CRD - will
692
+
do no more than reinstall the CRD schema. In relation to the expected lifecycle manager of this CRD (the mcs-controller), it is expected that on reenablement of the mcs-controller it will reinstall the CRD, will reestablish lifecycle management of the well known properties it is dependent on, including re-creating any relevant CRs.
673
693
674
694
***Are there any tests for feature enablement/disablement?**
675
-
The e2e framework does not currently support enabling or disabling feature
695
+
_The e2e framework does not currently support enabling or disabling feature
676
696
gates. However, unit tests in each component dealing with managing data, created
677
697
with and without the feature, are necessary. At the very least, think about
678
-
conversion tests if API types are being modified.
698
+
conversion tests if API types are being modified._
699
+
- As a dependency only for an out-of-tree component, there will not be e2e tests for feature enablement/disablement of
700
+
this CRD in core Kubernetes, but e2e tests for this can be implemented in the
701
+
[kubernetes-sigs/mcs-api repo](https://github.com/kubernetes-sigs/mcs-api) where a basic mcs-controller
702
+
implementation lives. In reality, multiple mcs-controller implementations are expected to be produced outside of core
703
+
and these production-ready mcs-controllers are responsible for their own e2e testing.
0 commit comments