service
Create a service instance, and possibly extract service binding credentials.
This is a more declarative version of cf-create-service, which takes care of low-level plumbing to extract service credentials. It is a wrapper built on top of cf-create-service, cf-delete-service, cf-push-app, extract-service-credentials.
Input
(required*)
arg name | JSON type | example | description |
instance_name* | string | app-hub-redis-service | name of the instance |
service* | string | redis | service label |
plan* | string | shared-vm | plan |
cf_home | string | "/tmp/cf-home-240964" | CF_HOME where login has been issued, defaults to $HOME |
payload | arbitrary | payload to create-service | |
credential_paths | map (string->list of string) | {"acs_zone": ["zone", "http-header-value"], "acs_uri": ["uri"]} | A map {"<CUSTOM_CREDENTIAL_NAME>" : ["json", "path", "to", "credential"] } |
*if_exists | string | "ignore", "update", "delete" | what to do when service instance exists |
if_exists options
option | description |
"ignore" | do nothing (default) |
"update" | update the service instance with a new payload or service plan |
"delete" | delete the old service instance, including its service bindings |
Examples:
- create an event hub instance and extract the publish and subscribe uaa scopes
{ "instance_name": "cf-boot-service-test-ehub", "service": "predix-event-hub", "plan": "Beta", "payload": {"trustedIssuerIds": ["https://908485db-10b7-4bc2-acfc-740f1bc540e7.predix-uaa.run.asv-pr.ice.predix.io/oauth/token"]}, "credential_paths": { "event_hub_scope_user": ["publish", "protocol_details", 0, "zone-token-scope", 0], "event_hub_scope_publish_grpc": ["publish", "protocol_details", 0, "zone-token-scope", 1], "event_hub_scope_publish_wss": ["publish", "protocol_details", 1, "zone-token-scope", 1], "event_hub_scope_subscribe_grpc": ["subscribe", "protocol_details", 0, "zone-token-scope", 1] } }
Output
output name | JSON type | example | description |
"SERVICE_GUID" | string | "c41f5741-97f6-43a9-82dc-b32f00588819" | guid of the instance |
"<CREDENTIAL_NAME_A>" | any | "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.grpc.publish" | custom credential value |
"<CREDENTIAL_NAME_B>" | any | "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.grpc.subscribe" | custom credential value |
… | any | custom credential value |
Example:
{ "event_hub_scope_subscribe_grpc": "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.grpc.subscribe", "event_hub_scope_publish_grpc": "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.grpc.publish", "event_hub_scope_user": "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.user", "event_hub_scope_publish_wss": "predix-event-hub.zones.e7df08b1-256c-42d9-aeeb-bf94b9c92921.wss.publish", "SERVICE_GUID": "e7df08b1-256c-42d9-aeeb-bf94b9c92921" }
Idempotence
The script may be called any number of times. If the instance does not exist, it is created.