Giter Club home page Giter Club logo

docker-consul-backup-s3's Introduction

consul-backup-s3

Docker container to backup consul and upload it to amazon S3

Docker Registryย 

Info/Usage

Backups consul to a s3 bucket. You must provide all 4 arguments

Usage: consul-backup -m backup -h http://127.0.0.1:8500 -b s3://somebucket/backups/ -p prefix
Usage: consul-backup -m restore -h http://127.0.0.1:8500 -b s3://somebucket/backups/ -f prefix-2019-03-09_01:39.snap

Parameters:

-m backup | restore - Operation mode 
-h | --host     - The Consul Host Address
-b | --s3bucket  - The s3 bucket path to use, no trailing slash
-p | --prefix  - The prefix for the filename. Don't use with -f
-f | --filename - The full filename to restore. Don't use with -p

Running the container

docker run giovannicandido/consul-backup-s3 -m backup -h consul.server -p prefix -b s3://somebucketname

To provide AWS credentials mount your .aws folder and/or set your environment variables as needed. If you are running this inside ec2 this won't be needed if the instance has the correct permissions to access s3.

docker run  -v ~/.aws:/root/.aws giovannicandido/consul-backup-s3 -m backup -h consul.server -p prefix -b s3://somebucketname

Kubernetes usage

Create a secret:

kubectl create secret generic consul-backup-aws --from-file=./.aws/config --from-file=./.aws/credentials

How to create a restore job:

apiVersion: batch/v1
kind: Job
metadata:
  name: consul-restore
spec:
  template:
    spec:
      containers:
      - name: consul-backup
        image: giovannicandido/consul-backup-s3
        args:
          - -m 
          - restore
          - -h
          - http://192.168.0.11:8500
          - -f
          - prefix-2019-03-09_01:39.snap
          - -b 
          - s3://my-bucket/backups
        volumeMounts:
          - name: aws-credentials
          mountPath: /root/.aws
          readOnly: true
      volumes:
      - name: aws-credentials
        secret:
          secretName: consul-backup-aws
      restartPolicy: OnFailure
  backoffLimit: 4  

How to create a single backup Job

apiVersion: batch/v1
kind: Job
metadata:
  name: consul-restore
spec:
  template:
    spec:
      containers:
      - name: consul-backup
        image: giovannicandido/consul-backup-s3
        args:
          - -m 
          - backup
          - -h
          - http://192.168.0.11:8500
          - -f
          - prefix
          - -b 
          - s3://my-bucket/backups
        volumeMounts:
          - name: aws-credentials
          mountPath: /root/.aws
          readOnly: true
      volumes:
      - name: aws-credentials
        secret:
          secretName: consul-backup-aws
      restartPolicy: OnFailure
  backoffLimit: 4  

How to create a Cron backup job

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: consul-backup
spec:
  schedule: "0 * * * *" # every hour
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: consul-backup
            image: giovannicandido/consul-backup-s3
            args:
              - -m 
              - backup
              - -h
              - http://192.168.0.11:8500
              - -p
              - test 
              - -b 
              - s3://my-bucket/backups
            volumeMounts:
            - mountPath: /root/.aws
              name: aws-credentials
              readOnly: true
          volumes:
          - name: aws-credentials
            secret:
              secretName: consul-backup-aws
          restartPolicy: OnFailure
      backoffLimit: 4  

docker-consul-backup-s3's People

Contributors

giovannicandido avatar nyxcharon avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.