-
Notifications
You must be signed in to change notification settings - Fork 4
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
YDBOPS-10613 Dynconfigs #62
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Ivan Blinkov <[email protected]>
# ydb_dynamic_config - path to a custom dynamic config file | ||
# Default value: ansible/roles/ydb_static/ydb-din-config.yaml.j2 | ||
ydb_dynamic_config: ydbd-dyn-config.yaml.j2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's drop this setting because it'd limit the evolution of how all this is implemented under the hood. For instance, you don't really need a template here, you could just have the same object constructed in memory and then serialized to yaml. Otherwise, LGTM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's designed to have possibility to adjust dynamic config for user needs until we have possibility to change all setting by ansible. Right not we do not provide a way to define labels or other requirements for dynamic nodes. IMHO it will be required by users for there production needs. That's why I think we must let them define their own config.
# ydb_use_dynamic_config - define how to configure dynamic nodes - static or dynamic configs | ||
# Default value: false | ||
ydb_use_dynamic_config: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it's time to introduce the concept of playbook feature flags. I don't think we'd want to keep this setting around long-term: it's more like to test this new approach, make it default at some point and then deprecate the current approach. So it could be like this:
# ydb_use_dynamic_config - define how to configure dynamic nodes - static or dynamic configs | |
# Default value: false | |
ydb_use_dynamic_config: false | |
ydb_ansible_feature_flags: | |
use_dynamic_config: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's good idea for single roles, but we might have problems in our structure
playbook1 (feature_flag: feature1, feature3) -> role1 (feature_flag: feature1)
playbook1 (feature_flag: feature1, feature3) -> role2 (feature_flag: feature1, feature2)
in this case role2 will lost feature2 default value
TASK [role1 : Output] *****************************************************************************************************************************************************************************************************
ok: [localhost] => {
"feature_flags": {
"feature1": true,
"feature3": true
}
}
TASK [role2 : Output] *****************************************************************************************************************************************************************************************************
ok: [localhost] => {
"feature_flags": {
"feature1": true,
"feature3": true
}
}
Support for dynconfig
Config.yaml as a template
Fix problem with PDIsks