Skip to content

cloudfoundry/cloud-service-broker

License test Go Report Card

Warning: From Version 1.0.0 onwards the Cloud Service Broker only supports OpenTofu. Custom brokerpaks need to specify an OpenTofu version and the upgrade process must be followed for existing instances. Only upgrades from terraform versions 1.5.x are supported. For more information, see the OpenTofu migration guide

Cloud Service Broker

An OSBAPI-compliant service broker that uses OpenTofu to create service instances.

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 a fork of the GCP Service Broker and uses Brokerpaks to expose services. As long as your target cloud has a OpenTofu 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.
  • Possible to migrate existing services using OpenTofu Import

Architecture

Architecture Diagram

Slack

Please reach out on the #cloudservicebroker channel in the Cloud Foundry Slack!

Installation

This service broker can be installed as a CF application. See the instructions for:

CSB-Provided Brokerpaks

To examine, submit issues or pull requests to the Brokerpaks which have been created for the major public clouds (AWS, Azure, GCP) see the repos below:

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.
  • help - Help about any command.
  • serve - Start the service broker.

Development

make is used to orchestrate most development tasks. go is required to build the broker. If you don't have go installed, it is possible to use docker to launch an interactive shell into some supported image containing all necessary tools. For example:

# From the root of this repo run:
docker run -it --rm -v "${PWD}:/repo" --workdir "/repo" --entrypoint "/bin/bash" golang:latest
make

There are make targets for most common dev tasks. Running make without a target will list the possible targets.

command action
make build builds broker into ./build
make test-units runs unit tests
make clean removes binaries and built broker paks

Local mimic commands

The mimic commands look and feel like CloudFoundry CLI commands, but actually run CSB actions locally. They are useful when developing brokerpaks. By using the make target make install you can install the CSB as a local command called csb. The mimic commands are:

  • csb create-service - creates a service instance
  • csb services - lists created service instances
  • csb service - displays information on an existing service instance
  • csb update-service - updates a service instance
  • csb upgrade-service - upgrades a service instance
  • csb delete-service - deletes a service instance
  • csb create-service-key - creates a "binding" and prints credentials
  • csb service-keys - lists service keys
  • csb service-key - prints a service key
  • csb delete-service-key - deletes a "binding"

The mimic commands build a brokerpak, start an ephemeral CSB server and send OSBAPI requests to it in a similar style to what CloudFoundry would do. The CSB database is stored as a file called .csb.db.

Additionally, there are commands which use the same framework to run the example tests. These are:

  • csb examples - list the example tests
  • csb run-examples - runs the specified example tests

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 and the user guides for more information on how to contribute to existing brokerpaks and how build one from scratch.