-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce Process for API changes, experimental features and feature gates #321
Comments
so this feature gate will be a new cli cmd option, and the corresponding new feature will only be evaluated when this feature gate is true?
Is this to mark it as experimental or deprecated in the doc or in the code (e.g. warning message that user can be notified when configuring the feature)? Since we are targeting new API process, do we really need featureGate? or just use the API created for that feature for enablement or disablement (e.g. if API is defined in cli or configMap, then it is enabled by user, vice versa)? |
Yes, thats what i had in mind. similarly to what is done in K8s feature gates.
Im thinking the following: maintain a table in docs for features which states:
For deprecated features we shall also have a deprecation warning emitted in log.
A new feature may or may not have a user facing API, hence i think we should have the separation. |
@adrianchiris I think this needs careful thought before introducing - How much work involving for introducing this. |
Kubernetes is one example :) .
My 2-cents here: Alpha feature - removal should be by majority of maintainers (not deprecation here as it may be removed at the subsequent release). Not every feature will require a feature gate.
so it may be on a per-enhancement basis if a feature gate is to be added. Downside of that is that the list of features tracked in docs and their state may be disjoint from the feature gates, |
Overall, I think this brings a lot of benefits
I think just tracking the features for which there is a feature gate is reasonable. Other features should be documented elsewhere anyhow. Some thoughts implementation-wise: Also, the current implementation uses |
@amorenoz i think we have the same idea about implementation approach exact details can be discussed over the PR if we have a general agreement on adding support for feature gates. implementation points:
|
@adrianchiris Does this mean a singleton basically? Also, do you think that this new config should be added to the existing configMap, or should it be a separate configMap (e.g. renaming existing configMap.yml to, let's say, discoveryConfig.yml and creating addtional featuresConfig.yml? Additionally I am not sure about having both |
Yep
I think it should be in the same Map, later on we can discuss if we need to separate the resource configuration from device plugin configuration.
Well a featureGate enables or disables a feature. A feature may or may not be associated with a set of Config parameters. |
Just created a PR on this for initial discussion. |
@adrianchiris @zshi-redhat @amorenoz @martinkennelly I was supposed to present this today, but we ran out of time. So, to speed things up, I am attaching this simple presentation here. Also, the concerns that are specified in the last slide:
|
As Support for new features are added to sriov-network-device-plugin, these features can:
For these features it may be desired to:
Ive created this issue to trigger an open discussion on the issues and see if we can come with a clean way to handle it.
The text was updated successfully, but these errors were encountered: