-
Notifications
You must be signed in to change notification settings - Fork 551
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
cluster: allow seeds-driven bootstrap when empty_seed_starts_cluster=1 #7390
Conversation
Would it be possible to encourage users do disable |
it looks that the CI failure may be related:
|
Previously, empty_seed_starts_cluster=1 meant that the node was configured to use root-driven bootstrap and that it should expect some singular node in the cluster to have an empty seeds list. This is the default, and was mainly there for compatibility reasons. However, this default is currently explicitly incompatible with seeds-driven bootstrap, and thus is incompatible with having all node configurations in the cluster being identical. To encourage usage of seeds-driven bootstrap, and to allow homogeneous node configs by default, this commit makes empty_seed_starts_cluster=1 compatible with seeds-driven bootstrap. An empty seed_servers list still indicates that the configured node should be the root node, but seeds-driven bootstrap can be used with empty_seed_starts_cluster=1 if: - there exists no root node among any of the seeds, and - all seeds meet the existing requirements to perform seeds-driven bootstrap.
80d8714
to
90ccef8
Compare
Over time we may be able to move folks away from root-driven bootstrap with documentation, but the argument for keeping support is that existing customer installers will likely expect root-driven bootstrap to continue to work. It's true this means that such root-driven deployments are as unsafe as they were pre-22.3, but this PR at least means that there's the option to configure all nodes with a non-empty seeds list, which does avoid the wipeout troubles. |
Even in root-driven bootstrap, there is a possibility to configure all nodes with non-empty |
The problem is that currently, the default configuration doesn't allow you to start up a cluster with homogeneous node configs.
Yes.
I'm not sure in what ways this will be the case. If a user has successfully tuned their configurations such that they use |
This adds a simple test to make sure a cluster doesn't successfully form if empty_seed_starts_cluster is False but the seed_servers are configured with a root node.
90ccef8
to
a7fece6
Compare
@andrwng : please don't forget to backport |
/backport v22.3.x |
Previously, empty_seed_starts_cluster=1 meant that the node was configured to use root-driven bootstrap and that it should expect some singular node in the cluster to have an empty seeds list. This is the default, and was mainly there for compatibility reasons. However, this default is currently explicitly incompatible with seeds-driven bootstrap, and thus is incompatible with having all node configurations in the cluster being identical.
To encourage usage of seeds-driven bootstrap, and to allow homogeneous node configs by default, this commit makes empty_seed_starts_cluster=1 compatible with seeds-driven bootstrap. An empty seed_servers list still indicates that the configured node should be the root node, but seeds-driven bootstrap can be used with empty_seed_starts_cluster=1 if:
Backports Required
UX Changes
Release Notes
Improvements
seed_servers
node configuration may now be identical on each node to form a cluster, even whenempty_seed_starts_cluster
istrue
(the default).