74 lines
2.3 KiB
Plaintext
74 lines
2.3 KiB
Plaintext
// Do not edit this file (e.g. go instead to src/main/asciidoc)
|
|
|
|
Integration between https://github.com/cloudfoundry[Cloud Foundry]
|
|
and https://github.com/spring-cloud[Spring Cloud].
|
|
|
|
|
|
== Service Broker Example
|
|
|
|
|
|
Example script to deploy and regis#ter a broker:
|
|
|
|
```
|
|
DOMAIN=mydomain.net
|
|
cf push app -p target/*.jar --no-start
|
|
cf env app | grep SPRING_PROFILES_ACTIVE || cf set-env app SPRING_PROFILES_ACTIVE cloud
|
|
cf env app | grep APPLICATION_DOMAIN || cf set-env app APPLICATION_DOMAIN ${DOMAIN}
|
|
|
|
cf services | grep configserver && cf bind app configserver
|
|
|
|
cf restart app
|
|
cf create-service-broker app user secure http://app.${DOMAIN}
|
|
|
|
for f in `cf curl /v2/service_plans | grep '\"guid' | sed -e 's/.*: "//' -e 's/".*//'`; do
|
|
cf curl v2/service_plans/$f -X PUT -d '{"public":true}'
|
|
done
|
|
|
|
cf create-service app free appi
|
|
```
|
|
|
|
At which point you have a service called "app" and a service instance called "appi":
|
|
|
|
```
|
|
$ cf marketplace
|
|
OK
|
|
|
|
service plans description
|
|
app free Singleton service app
|
|
$ cf services
|
|
Getting services in org default / space development as admin...
|
|
OK
|
|
|
|
name service plan bound apps
|
|
appi app free
|
|
```
|
|
|
|
Your application can define a configuration property
|
|
`application.domain` (defaults to "cfapps.io") which will be used to
|
|
construct the credentials for any app that binds to your service. Or
|
|
it can define the URI directly using
|
|
`cloudfoundry.service.definition.metadata.uri`.
|
|
|
|
You can change some other basic metadata by setting config properties:
|
|
|
|
* `cloudfoundry.service.definition.*` is bound to a
|
|
`ServiceDefinition` (defined in spring-boot-cf-service-broker) which
|
|
has optional setters for plans and metadata.
|
|
|
|
* `cloudfoundry.service.broker.*` is bound to an internal bean. It has
|
|
optional setters for "name" (the service name), "description" (user
|
|
friendly description) and "prefix" (used to create a unique id from
|
|
the name).
|
|
|
|
An app which binds to your service will get credentials that contain a
|
|
"uri" property linking to your service. A Spring Boot app can bind to
|
|
that through the `vcap.services.[service].credentials.uri` environment
|
|
property.
|
|
|
|
If your service also has a
|
|
https://github.com/Netflix/eureka[Eureka core] dependency, and you
|
|
can expose it as a Eureka service, then any service which registers
|
|
with Eureka will also become a Cloud Foundry service.
|
|
|
|
|