Skip to content
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

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

Conversation

elabpro
Copy link
Contributor

@elabpro elabpro commented Dec 28, 2024

Support for dynconfig
Config.yaml as a template
Fix problem with PDIsks

@elabpro elabpro requested review from blinkov and VadimZud December 28, 2024 08:19
Comment on lines +8 to +10
# 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
Copy link
Member

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.

Copy link
Contributor Author

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.

Comment on lines +4 to +6
# ydb_use_dynamic_config - define how to configure dynamic nodes - static or dynamic configs
# Default value: false
ydb_use_dynamic_config: false
Copy link
Member

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:

Suggested change
# 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

Copy link
Contributor Author

@elabpro elabpro Jan 17, 2025

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
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants