Support "dry run" mode
@9547 is already working on this.
Since Apr 7, 2021.
- Dominant language
- Go
- Stars
- 466
- Forks
- 338
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 8
Description
Feature Request
(This was an old and long-forgotten issue from the prototype version of tiup-cluster (tiops was its name) in our private repo, I copy it here in public so that someone might be interested to give some advises and / or work on it.)
Add support for --dry-run argument that only do basic checks and list effected nodes but not actually perform the operation.
- Support
--dry-runglobal argument - Perform basic checks with dry run mode
- List effected nodes and test SSH connections / credentials to them
- List rendered commands to be run on each host but not perform actual operations in dry run mode
When a user manages a large cluster, it could be confusing for them to estimate the amount of servers being effected or how many operations are being processed. By using dry run mode, users could get a list of servers that would be affected and major operations that would be processed, and get a chance to review their change plans.
This could also help users to find configuration errors before actually affecting the service.
The dry run mode should be a global parameter of tiup-cluster/tiup-dm/etc. commands, and users use it the same way as normal operations.
As of now (after v1.4.0 has been released), it might be possible to reuse some of the infrastructures from replay subcommand (the "checkpoint" design) to implement dry run mode.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.