This is a service broker built to be used with Cloud Foundry and Kubernetes. It adheres to the Open Service Broker API v2.13.
Cloud Service Broker is an extension of the GCP Service Broker and uses Brokerpaks to expose services. As long as your target public cloud has a Terraform provider, services can be provisioned via a common interface using standard cf
CLI commands.
Some of the benefits over traditional, IaaS-provided, service brokers include:
- Easily extensible and maintainable Less talking to far flung teams, more getting work done.
- One common broker for all brokered services. Cloud Service Broker decouples the service broker functionality from the catalog of services that it exposes.
- Credhub integration out-of-the-box CredHub encrypts and manages all the secrets associated with your usage of cloud services.
- Community When you expose a service via a Brokerpak, you can make it available to everyone who uses CSB.
- Easy to migrate existing services using TF Import We call this "Migration-less" Migration, more on this coming soon!
For a list of currently "Core Broker" (IaaS agnostic) features, see our up-to-date roadmap on Trello here: https://trello.com/b/m873oYyJ/csb-core-broker-public-roadmap
Azure Roadmap: https://trello.com/b/IJKM3bcG/csb-azure-public-roadmap
AWS Roadmap: https://trello.com/b/eBe25hzx/csb-aws-public-roadmap
GCP Roadmap: https://trello.com/b/MNL1QzrQ/csb-gcp-public-roadmap
This service broker can be installed as a CF application. See the instructions for:
The service broker currently provides access to the below services. Where it exists, we have linked to the documentation for each service.
Note: You can also use CSB with your own custom Brokerpaks. See our Brokerpak Developer Guide for more information
GCP | Azure | AWS |
---|---|---|
GCP Cloud SQL (MySQL) | Azure SQL | Amazon RDS for MySQL |
GCP Cloud SQL (PostgreSQL) | Azure SQL DB | Amazon ElastiCache for Redis |
GCP Memorystore for Redis | Azure SQL Failover Group | Amazon RDS for PostgreSQL |
GCP BigQuery | Azure SQL Failover Group Failover Runner | Amazon S3 Bucket |
GCP Spanner | Azure SQL DB Failover Groups | |
GCP Cloud Storage | Azure SQL Server | |
GCP Dataproc | MySQL | |
Google Stack Driver Trace | Azure Database for PostgreSQL | |
Azure Storage Account | ||
Azure Redis | ||
Azure Eventhubs | ||
MongoDB for CosmosDB | ||
Azure CosmosDB |
For operators: see docs/configuration.md for details about configuring the service broker.
For developers: see docs/ ReadMe for service options and details.
You can get documentation specific to your install from the /docs
endpoint of your deployment.
The service broker can be run as both a server (the service broker) and as a general purpose command line utility. It supports the following sub-commands:
client
- A CLI client for the service broker.config
- Show and merge configuration options together.generate
- Generate documentation and tiles.help
- Help about any command.serve
- Start the service broker.
make
is used to orchestrate most development tasks.
golang
1.14 is required to build the broker. If you don't have golang
installed, it is possible to use a docker
image to build and unit test the broker. If the environment variable USE_GO_CONTAINERS
exists, make
will use docker
versions of the tools so you don't need to have them installed locally.
There are make targets for most common dev tasks.
command | action |
---|---|
make build |
builds broker into ./build |
make test-units |
runs unit tests |
make run-broker-gcp |
builds broker and broker pak and starts broker for gcp |
make run-broker-azure |
builds broker and broker pak and starts broker for azure |
make run-broker-aws |
builds broker and broker pak and starts broker for aws |
make test-acceptance |
runs broker client run-examples tests |
make clean |
removes binaries and built broker paks |
make push-broker-gcp |
will push and register the broker in PAS for GCP |
make push-broker-azure |
will push and register the broker in PAS for Azure |
File a GitHub issue for bug reports and documentation or feature requests. Please use the provided templates.
We are always looking for folks to contribute Brokerpaks!
See Brokerpak Dissection for more information on how to build one yourself.