-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Create a strict mode for feature gates #7804
Comments
@atoulme are you imaging this mode would be a separate flag to pass into the collector, not a new stability level? When the collector fails, what information should be provided to the user to ensure they understand that the failure is because of strict mode and a feature gate? Could this problem be solved if the |
It would be a separate flag. It can also be set in the collector, I hope, for downstream distributions. The failure message should state the current feature gates that are not being addressed properly by the end user, the resolution steps (set up the feature gate value, change the value, remove the feature gate). The strict mode would also implicitly remove any warnings related to feature gates at startup time. |
The use case you describe is not wrong, but it's also not the only use case. I am concerned about collector operators who would prefer not to be bothered with the alpha-level flags that never rise to beta. I'm pretty sure there are a lot of operators who don't want to know about features until they are reasonably final -- so would prefer a strictness flag that allows them to say "don't make me care about it until it's solid, and then give me some time to convert." In that sense, I think there may be a variant of this flag that is:
|
@kentquirk I don't see this as being different with the current behavior, or not different enough to warrant a variant. |
Some work from users seems unavoidable with this; if feature gates introduce changes that affect users they necessarily need to be aware of what is changing from version to version. I don't see how the strict mode would help alleviate that need: users still need to be aware of changes. I think if the main concern is lack of awareness/documentation we should focus on improving our documentation and UX by
|
The use case I have in mind is relatively narrow: I want to run an integration test with all the feature gates we use, and make sure it fails on upgrade whenever they change. This way, instead of relying on release notes, we can use the CI as a gating factor to embrace upgrades, and have to perform explicit remediation to fix the CI, which we can use to document our findings, enable/disable feature gates for ourselves, and stay on top of changes. |
Alright, thanks for explaining :) I think that use case makes sense to me. |
Is your feature request related to a problem? Please describe.
The current behavior of the collector allows folks to assume sane defaults and embraces breaking changes without warning on version upgrades. The collector relies on feature gates that work as feature toggles that enable a breaking change explicitly.
Initially, features gates are considered alpha. After a period of time, feature gates are then turned on by default and declared beta. Finally, feature gates are declared stable and removed altogether.
The system doesn't allow proactive customers to prepare and execute well with feature gates, instead forcing customers to read through changelogs and make sure they understand the implication of a feature gate. It requires to pay attention to new feature changes, change of status of feature gates, and granular updates by keeping up with the collector changes constantly.
Describe the solution you'd like
I would like to introduce a strict mode that forces users of the collector to explicitly opt into feature gates without any ambiguity.
The strict mode can be used in testing environments of customers to test and validate configurations and help smooth over migrations between versions of the collector.
The text was updated successfully, but these errors were encountered: