Skip to content
On-Demand Service Broker (ODB)
Go Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
apiserver enable telemetry configuration and add telemetry log at startup Jul 15, 2019
authorizationheader Formatting Nov 15, 2018
boshdirector Check for create events as well as update events when deciding if an … Jul 18, 2019
boshlinks Improve error logs when request to links api fails Jul 17, 2018
brokercontext Tidy test suites naming May 8, 2017
brokerinitiator Skip optimised BOSH upgrades when config is set to false Aug 20, 2019
cf Check service instance version before upgrade all Aug 19, 2019
cmd Check service instance version before upgrade all Aug 19, 2019
collaboration_tests Skip optimised BOSH upgrades when config is set to false Aug 20, 2019
config Skip optimised BOSH upgrades when config is set to false Aug 20, 2019
contract_tests Update telemetry release opsfile on contract test deploys Aug 22, 2019
hasher improve hashing strategy for catalog.private Dec 3, 2018
instanceiterator Check service instance version before upgrade all Aug 19, 2019
integration_tests Check service instance version before upgrade all Aug 19, 2019
loggerfactory Tidy test suites naming May 8, 2017
manifestsecrets Add secure_manifest systest Mar 26, 2019
mgmtapi When upgrading an instance that is already latest via the upgrade-all… Jul 11, 2019
mockhttp Do not fail if a delete is already in progress May 22, 2019
network Move cert pool management to a file Apr 3, 2019
noopservicescontroller Moved logic of filtering service instances down to CF client May 29, 2019
purger Move disable service functionality from release into new register-bro… May 14, 2019
runtimechecker Improve error message for recreate-all bosh version checker [#163983015] Feb 18, 2019
scripts set eou pipefail for run contract tests script Jul 18, 2019
serviceadapter Update broker to use latest brokerAPI structs Apr 29, 2019
startupchecker Update BOSH minimum version for binding_with_dns Sep 6, 2018
system_tests Updated system tests to check for maintenance_info.description Aug 22, 2019
task Skip optimised BOSH upgrades when config is set to false Aug 20, 2019
telemetry Log telemetry instance counts by plan even if a plan has no instances Jul 24, 2019
vendor Revert "Bump from 3.0.1 to 6.0.0 (#24)" Aug 22, 2019
.envrc.template Completing the work for the recreate-all errand Nov 20, 2018
.gitignore added force delete flag May 1, 2019
.travis.yml Install `dep` before using it Aug 22, 2019 Add change log file May 11, 2018
Gopkg.lock Update on-demand-services-sdk Aug 22, 2019
Gopkg.toml Revert "Bump from 3.0.1 to 6.0.0 (#24)" Aug 22, 2019 Create May 3, 2018
LICENSE Initial commit Apr 24, 2017
NOTICE Initial commit Apr 24, 2017 Update Mar 12, 2018


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

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

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 config/test_assets/good_config.yml.

You will need to upload a service release for example a Redis release to your BOSH director.

Running tests

You can make use of the script in scripts/ to run tests skipping system tests.

Running Systests

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.

  1. Make sure that tests run locally running scripts/
  2. Try to keep your pull request as small as possible by focusing on the feature you would like to add.
  3. If you see opportunities for refactoring, feel free to let us know by opening an issue.
  4. 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.
You can’t perform that action at this time.