Skip to content

claassen/cloud-service-broker

 
 

Repository files navigation

License

Go Report Card

Cloud Service Broker

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!

Architecture

Architecture Diagram

Public Roadmap

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

Installation

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

Usage

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.

Commands

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.

Development

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

Bug Reports, Feature Requests, Documentation Requests & Support

File a GitHub issue for bug reports and documentation or feature requests. Please use the provided templates.

Contributing

We are always looking for folks to contribute Brokerpaks!

See Brokerpak Dissection for more information on how to build one yourself.

About

OSBAPI service broker that uses Terraform to provision and bind services. Derived from https://github.com/GoogleCloudPlatform/gcp-service-broker

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Go 72.7%
  • HCL 13.9%
  • Shell 7.5%
  • Java 2.2%
  • JavaScript 2.0%
  • Makefile 1.5%
  • Other 0.2%