Voting config exclusions should work with absent nodes#55291
Merged
DaveCTurner merged 1 commit intoelastic:7.xfrom Apr 16, 2020
Merged
Conversation
Today the voting config exclusions API accepts node filters and resolves them to a collection of node IDs against the current cluster membership. This is problematic since we may want to exclude nodes that are not currently members of the cluster. For instance: - if attempting to remove a flaky node from the cluster you cannot reliably exclude it from the voting configuration since it may not reliably be a member of the cluster - if `cluster.auto_shrink_voting_configuration: false` then naively shrinking the cluster will remove some nodes but will leaving their node IDs in the voting configuration. The only way to clean up the voting configuration is to grow the cluster back to its original size (potentially replacing some of the voting configuration) and then use the exclusions API. This commit adds an alternative API that accepts node names and node IDs but not node filters in general, and deprecates the current node-filters-based API. Relates elastic#47990.
Collaborator
|
Pinging @elastic/es-distributed (:Distributed/Cluster Coordination) |
Member
Author
|
@elasticmachine please run elasticsearch-ci/2 |
DaveCTurner
added a commit
that referenced
this pull request
Apr 16, 2020
pgomulka
added a commit
to pgomulka/elasticsearch
that referenced
this pull request
Jul 16, 2021
the exception message has changed in elastic#55291. This is not covered by rest api compatibility, so no need to return the old message for v7 requests. This commit adds a transformation to allow for the 7.x test to pass with a new exception message relates elastic#51816
ywangd
pushed a commit
to ywangd/elasticsearch
that referenced
this pull request
Jul 30, 2021
…lastic#75406) the exception message has changed in elastic#55291. This is not covered by rest api compatibility, so no need to return the old message for v7 requests. This commit adds a transformation to allow for the 7.x test to pass with a new exception message relates elastic#51816
DaveCTurner
added a commit
to DaveCTurner/elasticsearch
that referenced
this pull request
Oct 7, 2021
In elastic#55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs.
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Today the voting config exclusions API accepts node filters and resolves them
to a collection of node IDs against the current cluster membership.
This is problematic since we may want to exclude nodes that are not currently
members of the cluster. For instance:
if attempting to remove a flaky node from the cluster you cannot reliably
exclude it from the voting configuration since it may not reliably be a
member of the cluster
if
cluster.auto_shrink_voting_configuration: falsethen naively shrinkingthe cluster will remove some nodes but will leaving their node IDs in the
voting configuration. The only way to clean up the voting configuration is to
grow the cluster back to its original size (potentially replacing some of the
voting configuration) and then use the exclusions API.
This commit adds an alternative API that accepts node names and node IDs but
not node filters in general, and deprecates the current node-filters-based API.
Relates #47990.
Backport of #50836 to 7.x.