A brokerpak for the Cloud Service Broker that provides support for GCP services.
- Either Go 1.18 or Docker
- make - covers development lifecycle steps
A docker container for the cloud service broker binary is available at cfplatformeng/csb
To provision services, the brokerpak currently requires GCP credentials. The brokerpak expects them in environment variables:
- GOOGLE_CREDENTIALS
- GOOGLE_PROJECT
A Makefile supports the full local development lifecycle for the brokerpak.
The make targets can be run either with Docker or installing the required libraries in the local OS.
Available make targets can be listed by running make
.
- Install Docker
- If you don't have Go installed, the makefile will automatically use Docker. If you do have go installed but still want to use docker, then set the
USE_GO_CONTAINERS
totrue
.
Make targets will run with the cfplatformeng/csb docker image. Alternatively, a custom image can be specified by setting the CSB
environment variable.
- Make sure you have the right Go version installed (see
go.mod
file). - Make sure
USE_GO_CONTAINERS
environment variable is NOT set.
The make targets will build the source using the local go installation.
There is a make target to push the broker and brokerpak into a CloudFoundry foundation. It will be necessary to manually configure a few items for the broker to work.
make push-broker
willcf push
the broker into CloudFoundry. Requires thecf
cli to be installed.make run-integration-tests
will test the brokerpak with the latest version of CSB
The broker gets pushed into CloudFoundry as cloud-service-broker-gcp It will be necessary to bind a MySQL database to the broker to provide broker state storage. See GCP Installation docs for more info.
The version of Cloud Service Broker to use with this brokerpak is encoded in the go.mod
file.
The make targets will use this version by default.
Services definitions declare examples for each plan they provide. Those examples are then run through the whole cycle of provision
, bind
, unbind
, and delete
when running
terminal 1
>> make run
terminal 2
>> make run-examples
See acceptance tests