pingcap / pingcap/tiup

Store cluster metadata in git repository

Open
#1,570 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/feature-request
Dominant language
Go
Stars
466
Forks
338
Avg merge
3d 7h
Merged PRs (30d)
8

Description

Feature Request

Is your feature request related to a problem? Please describe:

When maintaining a cluster, it might be possible to lose some important configuration history or other information if a user accidentally removes files or the tiup management node becomes unavailable.

Describe the feature you'd like:

tiup should store cluster topology metadata and access credentials in a git repository. Each cluster should have its own git repository. If a remote is set for the git repository, tiup could push to the remote for each change made to the cluster.

Why the featue is needed:

Describe alternatives you've considered:

It's possible to implement something similar to this by initializing a git repository for the ~/.tiup/storage/cluster/clusters// directory and creating a systemd path unit to monitor that directory for changes.

Teachability, Documentation, Adoption, Migration Strategy:

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.

Research direction

Start by tracing how tiup uses ~/.tiup/storage/cluster/clusters// for cluster state and metadata. Define how each cluster gets its own Git repository, how topology and access credentials are committed, and when a configured remote receives pushes. Done means the behavior and migration strategy are specified for cluster changes and unavailable management nodes.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, go
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.