Harden etcd subcommand usage and validation #4118
Merged
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.
Description
The
etcd leave
subcommand can be used to remove k0s nodes from the etcd cluster. If no IP address is specified, the default is to remove the current node. The IP of the node to be removed can be specified with the--peer-address
flag. However, it's quite tempting to just pass the IP as an argument, like thisk0s etcd leave 192.168.0.0.3
. This extra argument will simply be ignored, and the leave subcommand will use its defaults. This can be very confusing, and also quite dangerous, as it may remove different nodes than intended.Improve the subcommand by making it fail if arguments are passed to it. Add validation to the
--peer-address
flag and improve the usage strings. While at it, make theetcd member-list
subcommand reject any args as well.Display etcd member IDs in hex. This is usually the way
etcdctl
displays member IDs. This makes it more intuitive and easier to correlate withetcdctl
's output.See:
Type of change
How Has This Been Tested?
Checklist: