Skip to content

replace_node.yml: Remove unnecessary seeds validation#431

Open
igorribeiroduarte wants to merge 1 commit intoscylladb:masterfrom
igorribeiroduarte:remove_seeds_validation
Open

replace_node.yml: Remove unnecessary seeds validation#431
igorribeiroduarte wants to merge 1 commit intoscylladb:masterfrom
igorribeiroduarte:remove_seeds_validation

Conversation

@igorribeiroduarte
Copy link
Collaborator

@igorribeiroduarte igorribeiroduarte commented Feb 6, 2025

This validation could prevent a user from replacing a node with itself when this node happens to be a seed, and it's completely unnecessary, since later on we have a task for temporarily changing the seed to an already bootstrapped node before starting the replace.

This validation could prevent a user from replacing a node with itself
when this node happens to be a seed, and it's completely unnecessary,
since later on we have a task for temporarily changing the seed to an
already bootstrapped node before starting the replace.
set_fact:
broadcast_address: "{{ alive_nodes_broadcast_address }}"

- name: "Check if the replaced node is in the seeds list"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These lines were added by this commit:

commit d9ebf24558667875d9fd5567578a57fe1ec22af6
Author: Igor Duarte <igor.duarte@scylladb.com>
Date:   Thu Jan 4 18:28:25 2024 -0300

    replace_node.yml: Validate seeds and update nodes
    
    In e42ec43000e73054649b11bc5883e2821a74da63 we wrongly removed the task
    validating the seeds and also stopped calling the node role for the alive nodes.
    However, we need to do both in order to make sure that the replaced node is
    not part of the seeds anymore and also to make sure that after the replace
    all the nodes have the correct seeds.

The description above suggests that this is not the first attempt to remove these lines.
Please, double (triple) check if it's ok to do so this time.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a comment based on that commit. Regarding running the node role for the alive nodes to update seed_provider, I'm not sure if that is sufficient. It would assume a rolling restart as this isn't a live updatable parameter.

Copy link
Collaborator

@vladzcloudius vladzcloudius Feb 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seeds value is only important during the node startup. Seeder is not used by running nodes.
Hence you don't need to RR when you change seeders config, @vreniers. It will be picked up by nodes if/when they will be restarted in the future.

Copy link
Collaborator

@vladzcloudius vladzcloudius Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@igorribeiroduarte this change as-is is a no-go because we are restoring the original seeders configuration at the end of the playbook - hence the validation. So if you want to remove the seeders validation you need to take care of the case in question. One option is to leave the temporary seeder. This should be ok since current scylla versions require a single seeder anyway.

set_fact:
broadcast_address: "{{ alive_nodes_broadcast_address }}"

- name: "Check if the replaced node is in the seeds list"
Copy link
Collaborator

@vladzcloudius vladzcloudius Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@igorribeiroduarte this change as-is is a no-go because we are restoring the original seeders configuration at the end of the playbook - hence the validation. So if you want to remove the seeders validation you need to take care of the case in question. One option is to leave the temporary seeder. This should be ok since current scylla versions require a single seeder anyway.

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.

3 participants