infrastructure/docker/bckp/kv_to_s3.go
2020-05-30 14:10:32 +02:00

34 lines
752 B
Go

package main
import (
"github.com/hashicorp/consul/api"
/*"crypto/aes"*/
"log"
/*"github.com/aws/aws-sdk-go/service/s3"*/
)
func errIsPanic(err error, format string, a ...interface{}) {
if err != nil {
log.Panicf(format, a...)
}
}
func main() {
log.Println("starting consul kv backup...")
conf := api.DefaultConfig()
//@FIXME add later support for a different URL
//@FIXME add later support for HTTPS
options := api.QueryOptions {
// Prevent from backuping forever silently a desynchronized node
AllowStale: false,
}
consul, err := api.NewClient(conf)
errIsPanic(err, "Unable to build a new client. %v", err)
_, _, err = consul.Snapshot().Save(&options)
errIsPanic(err, "Snapshot failed. %v", err)
}