Backup and Restore SDK BOSH release

The Backup and Restore SDK BOSH release is used for two distinct things:

  1. enabling release authors to incorporate database backup & restore functionality in their releases (See Database Backup and Restore)
  2. enabling operators to configure their deployments which use external blobstores to be backed up and restored by BBR (See Blobstore Backup and Restore)

Slack: #bbr on https://slack.cloudfoundry.org

Pivotal Tracker: https://www.pivotaltracker.com/n/projects/1662777

CI Status

Backup and Restore SDK Release status Build SDK Release Badge

Database Backup and Restore

Name Versions
MariaDB 10.2.x
MySQL 5.7.x, 8.0.x
Postgres 9.6.x, 10.x, 11.x

The SDK can use used against Postgres 9.4, but is not supported upstream by the Postgres community.

CI Status:

  • GCP: GCP Test Badge
  • AWS (RDS): AWS Test Badge
  • Bosh Deployed: GCP Test Badge

Blobstore Backup and Restore

Supported Blobstores

CI Status: Blobstore test badge

Name
S3-Compatible
Azure
Google Cloud Storage

Developing

This repository using develop as the main branch, tested releases are tagged with their versions, and master branch represents the latest release.

Testing

Unit tests

The unit tests make use of ruby, go, and ginkgo. The easiest way to run them is to use our docker files, which provide versions of these dependencies that we've already tested. You can do this with:

make unit

If you want to run the tests using your local development tools, without using docker, you can run:

make local-unit

Individual targets exist for individual unit tests, like make docker-unit-blobstore-gcs and make local-unit-blobstore-gcs. Check the Makefile for all available targets

Contract tests

To run the Blobstore contract tests, you'll need to export the environment variables the particular test requires. Check the sdk-unit-blobstore pipeline task for details.

System tests

To run the system tests, you'll need to export the necessary environment variables that the particular test requires.

See the sdk-system-blobstore pipeline task and sdk-system-db pipeline task for more details.

You'll also need a bosh director with a few particular bosh releases deployed in it. Given a bosh director exists, the infrastructure pipeline can be set to deploy the necessary releases.