-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Feature flags should be defined in opensearch.yml #4102
Comments
Hi, I am giving my thoughts on this issue. Ideally, feature flags should be allowed to toggle, but with YAML that won't be easier. The ideal technique to allow toggling of features is via an API or Database. So, was wondering if this is still a valid use case because I felt it could be termed as configuration management and not a feature flag. Whether the convention sticks along or not, I would like to give this PR a try. Do let me know your thoughts and also if possible please answer these doubts for me:
|
@tan31989 Thanks for your interest in this issue.
The idea behind these feature flags is that they gate an experimental feature that is not ready to be enabled in production. With the flag enabled, an additional setting becomes available that may toggle a particular feature on/off. For example for Segment Replication, the feature flag currently needs to be enabled via a jvm flag, in addition to the index created with the setting enabled.
Without the flag enabled, attempting the request above will return that the setting is not found.
The flags could be defined in opensearch.yml manually or provided as default options here to be included in the distribution.
Correct these are currently the only two flags. |
Hi @tan31989, check this out - https://discuss.elastic.co/t/how-to-setup-unit-testing-for-elastissearch-configuration/11016/2 |
I am looking for an issue for my first contribution . Can you help me here. Can I take on this . |
Sorry for the no reply here @tan31989. To test I would suggest creating a test feature flag that is passed in an IT as a node level setting with I would also test with an IT that uses existing flags, you can also enable the flag at the node scope and run the test as normal. Example for Segment Replication. @xuezhou25 is looking to make the flags pluggable for our integ tests so they can be injected into the Node/Environment rather than hardcoded in jvm args. I don't think #3818 makes sense if we are moving to a config setting, because we can set the node setting with |
@tan31989 Do you still have interest in picking this up? If not @techrajdeep its all yours. |
@mch2 will give it a try. I was waiting for an answer and was not available for a week. Thanks for giving the inputs. |
Thanks @tan31989 I will assign to you. Let me know if you have further questions on the issue. |
@mch2 If there any other issue for first time to start with , you can assign me |
Thanks for your interest @techrajdeep! I would suggest filtering by the tag good first issue to find these issues. |
@tan31989: Are you still working on this issue ? Please let know in case you need any help. |
@dreamer-89, apologies for the delay. Yes, I am still trying to work on this. I should have this completed by the 31st. |
Thank you @tan31989 for working on this issue and updating on progress. Feel free to post here in case you are stuck. |
Thank you @tan31989 again for working on this issue. As relevant PR #4959 merged, closing this issue. |
Currently, these flags are passed as JVM args to the process that launches the server. The general (though not universal) convention today is that JVM args are mostly used for tuning the JVM itself, and OpenSearch application configuration is specified via settings in opensearch.yml. It would make for a better user experience for the feature flags to be a configuration option in opensearch.yml, i.e. something like experimental.features: ["feature-1", "feature-2"].
See the previous discussion in #4024
The text was updated successfully, but these errors were encountered: