A Cloud Foundry generic on demand service broker.
This is an on-demand broker designed to take advantage of BOSH 2.0 features such as IP management and global cloud configuration.
In production, this application is deployed via a BOSH release. See its repo for more details.
This repository is the broker implementation. To build a service that uses the broker, see the on-demand-services-sdk
User documentation can be found here. Documentation is targeted at service authors wishing to deploy their services on-demand and operators wanting to offer services on-demand.
How are dependencies managed?
We only deploy this application with BOSH. Its dependencies are vendored as submodules into the BOSH release.
Go dependencies are managed by dep.
To fetch dependencies use
dep ensure dep prune
To update an individual dependency use
dep ensure -update <dependency-path> dep prune
This app is configured with a config file, the path to which should be supplied on
the command line:
on-demand-broker -configFilePath /some/file.yml.
An example configuration file is
You will need to upload a service release for example a Redis release to your BOSH director.
You can make use of the script in
scripts/run-tests.sh to run tests skipping system tests.
In order to run the systests you must set the environment variable that are listed in system_tests/.envrc.template. The values for these variables can be taken from the pipeline.yml and adjusted for your local environment
Dev / test tools
- go 1.8
- counterfeiter (for re-generating fakes)
- CF CLI (for system tests. See below)
What's in that system_tests directory?
Black-box tests designed to be run against this broker, a real BOSH director and a real Cloud Foundry.
Guidelines for PRs
First of all, thanks for your contribution!
Please, make sure to read this few points before opening a new pull request.
- Make sure that tests run locally running
- Try to keep your pull request as small as possible by focusing on the feature you would like to add.
- If you see opportunities for refactoring, feel free to let us know by opening an issue.
- Try to follow the testing style we are using in the file you are modifying. Be aware that there might be inconsistencies among different tests.