pingcap / pingcap/tiup

Support "dry run" mode

Open
#1,267 6 comments 0 reactions 1 assignee View on GitHub

@9547 is already working on this.

Since Apr 7, 2021.

difficulty/hard help wanted type/feature-request
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-run global 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.