reshifter: Index | Examples | Files

package restore

import ""

Package restore contains restore operations against etcd.



Package Files

doc.go restore.go

func Restore Uses

func Restore(endpoint, backupid, target, remote, bucket string) (int, time.Duration, error)

Restore takes a backup ID and unpacks it into the target directory. It then walk the target directory in the local filesystem and populates an etcd server at endpoint with the content of the sub-directories. On success it returns the number of keys restored as well as the time it took to restore them.

Shows how to restore a Kubernetes cluster by specifying the underlying etcd. It assumes that the etcd process is servering on Takes the backup from Minio play, a public S3-compatible storage sandbox.


// define the URL etcd is available at:
etcdurl := ""

// using Minio play, a public S3-compatible sandbox
// for the remote storage available at
// and the following credentials which need to be exposed
// as environment variables to the ReShifter process:
_ = os.Setenv("ACCESS_KEY_ID", "Q3AM3UQ867SPQQA43P2F")
_ = os.Setenv("SECRET_ACCESS_KEY", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")

// carry out the restore into etcd underlying the Kubernetes cluster
// and handle errors as they occur:
keysrestored, restoretime, err := Restore(etcdurl, "1498847078", "/tmp", "", "2017-07-some-bucket")
if err != nil {
fmt.Printf("The restore completed successfully. Restored %d keys in %d seconds.\n", keysrestored, restoretime)


The restore completed successfully. Restored 1042 keys.

Package restore imports 13 packages (graph) and is imported by 2 packages. Updated 2019-01-10. Refresh now. Tools for package owners.