Add HIP: Check Kubernetes feature gates with a new flag in Chart - #445
Add HIP: Check Kubernetes feature gates with a new flag in Chart#445rysurd wants to merge 1 commit into
Conversation
Propose a new kubeFeatureGates flag that allow fine-tuned, per component, check on each required k8s feature gates to be able to upgrade/install a chart. Signed-off-by: Idryss Bourdier <thegogolplex@gmail.com>
d0f6511 to
2fdf768
Compare
|
|
||
| ## Backwards compatibility | ||
|
|
||
| Fully backward compatible. |
There was a problem hiding this comment.
What if the chart declares this in its Chart.yaml but an older version of helm is used on that chart?
|
Thanks for opening this as a HIP. This is the right way to work the question, and framing feature gates as a finer-grained companion to The big ones:
Smaller things:
None of this is a no. It is the right feature to reason about and the right venue. It mainly needs to answer the questions it was opened to answer, especially core-versus-plugin and how it reads the data given there is no stable API for it yet. Happy to keep reviewing as it develops. Two optional adds if you want them: I can turn point 2 into a concrete suggestion that the HIP's own linked upstream API (k8s#141162) become an explicit dependency or gating condition (i.e. "core support waits on a stable API; until then it is a plugin"), which would give rysurd a clean path rather than an open-ended "confront this." And if you'd rather this be a REQUEST_CHANGES review than a comment, say so and I'll tighten the opener to match. |
|
Hello @joejulian and thanks a lot for these feedbacks and advices ! I'll rework the HIP according to your comments but I think some parts will be tricky. I'll notice you again when I finish :) |
Summary
This HIP proposes a new Chart.yaml field aimed at enhancing the platform requirements for a chart.
This is an extra layer of compatibility between a Chart and a cluster, on top of the
kubeVersionfield. When a Chart is installed or upgraded, it will poll the k8s cluster for its feature gates, either per components and per nodes or per a representative node. If a feature gate required isn't activated on the component as declared in Chart.yaml, the installation/upgrade will fail.Motivation
There is currently no existing mecanism in Helm that allow polling to Kubernetes before CRDs installation and during installation/upgrade. Moreover, there is no mecanism in place that checks feature gates.
Related
Checklist