Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

Server Snapshot/Restore #682

Closed
mitchellh opened this issue Oct 23, 2020 · 1 comment · Fixed by #870
Closed

Server Snapshot/Restore #682

mitchellh opened this issue Oct 23, 2020 · 1 comment · Fixed by #870
Assignees
Labels
Milestone

Comments

@mitchellh
Copy link
Contributor

Is your feature request related to a problem? Please describe.
The Waypoint server stores metadata, config, tokens, etc. This data must be preserved for existing deployments to register properly with the server and ensure entrypoint-related functionality continues to work.

Waypoint stores this data in a single BoltDB file. To backup the server, you can copy this file while the server is down. BoltDB supports a transactionally safe way to do online backups: Tx.Copy.

Waypoint lacks any more automated way to take and restore snapshots. As we release new versions of Waypoint and support some form of managed upgrade, it will become important to provide users with backups they can manually restore.

Other products like Consul support snapshot and restore APIs. These are simple APIs that basically emit and accept gzip-compressed byte streams. Nomad has similar functionality.

Describe the solution you'd like
Implement snapshot and restore APIs and CLI commands exactly the same as Consul. See Consul documentation (linked in the Background section) for more details. We'll just copy this more or less exactly.

Example:

$ waypoint server snapshot backup.snap
Saved snapshot to backup.snap

$ waypoint server restore backup.snap
Restored snapshot

And new APIs:

rpc Snapshot(google.protobuf.Empty) returns (SnapshotResponse);
rpc RestoreSnapshot(RestoreSnapshotRequest) returns (google.protobuf.Empty);
@mitchellh mitchellh added the core label Oct 23, 2020
@mitchellh mitchellh added this to the 0.2.0 milestone Oct 23, 2020
@mitchellh mitchellh self-assigned this Oct 23, 2020
@mitchellh
Copy link
Contributor Author

#723 for APIs.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants