{"id":19049301,"url":"https://github.com/cppforlife/bosh-generic-sb-release","last_synced_at":"2025-08-02T03:37:10.342Z","repository":{"id":77316190,"uuid":"100432803","full_name":"cppforlife/bosh-generic-sb-release","owner":"cppforlife","description":"Generic Service Broker for BOSH deployments","archived":false,"fork":false,"pushed_at":"2017-11-28T12:02:16.000Z","size":316,"stargazers_count":3,"open_issues_count":6,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-09T01:33:52.026Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cppforlife.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-16T01:06:00.000Z","updated_at":"2022-08-24T16:17:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"80a64f03-342e-4978-9ed2-82b6ee584fb6","html_url":"https://github.com/cppforlife/bosh-generic-sb-release","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cppforlife/bosh-generic-sb-release","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cppforlife%2Fbosh-generic-sb-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cppforlife%2Fbosh-generic-sb-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cppforlife%2Fbosh-generic-sb-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cppforlife%2Fbosh-generic-sb-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cppforlife","download_url":"https://codeload.github.com/cppforlife/bosh-generic-sb-release/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cppforlife%2Fbosh-generic-sb-release/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268331156,"owners_count":24233196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T23:10:28.034Z","updated_at":"2025-08-02T03:37:10.294Z","avatar_url":"https://github.com/cppforlife.png","language":"Go","readme":"# BOSH Generic Service Broker\n\nFollowing service broker release can be deployed and configured with a BOSH manifest representing a service instance template. It also allows to configure parameters for service instance and binding creation.\n\nEach SB API call maps to one or more BOSH commands:\n\n- create service instance\n  - runs `bosh deploy service-instance.yml -v ... -o ...`\n- update service instance\n  - runs `bosh deploy service-instance.yml -v ... -o ...`\n- delete service instance\n  - runs `bosh delete-deployment`\n- create service binding\n  - runs `bosh deploy service-binding.yml -v ... -o ...`\n  - then `bosh run-errand create-*` capturing binding credentials from errand stdout\n- delete service binding\n  - runs `bosh deploy service-binding.yml -v ... -o ...`\n  - then `bosh run-errand delete-*`\n\n## Deploy\n\nConfigure and deploy service broker:\n\n```\n$ bosh -n -d cockroachdb-broker deploy ./manifests/broker.yml -o ./manifests/dev.yml \\\n  -v director_ip=192.168.50.6 \\\n  -v director_client=admin \\\n  -v director_client_secret=$(bosh int ~/vbox/creds.yml --path /admin_password) \\\n  --var-file director_ssl.ca=\u003c(bosh int ~/vbox/creds.yml --path /director_ssl/ca) \\\n  -v broker_name=cockroachdb-broker \\\n  -v srv_id=cockroachdb \\\n  -v srv_name=CockroachDB \\\n  -v srv_description=CockroachDB \\\n  --var-file si_manifest=\u003c(cat examples/cockroachdb/service-instance.yml|base64) \\\n  -v si_params=null \\\n  --var-file sb_manifest=\u003c(cat examples/cockroachdb/service-binding.yml|base64) \\\n  --var-file sb_params=\u003c(cat examples/cockroachdb/service-binding-params.yml|base64) \\\n  --vars-store ./examples/cockroachdb/creds.yml\n```\n\n## Usage\n\nUse [`sb-cli`](https://github.com/cppforlife/sb-cli) to talk to issue SB commands:\n\n```\n$ export SB_BROKER_URL=http://$(bosh -d cockroachdb-broker is --column ips|head -1|tr -d '[:space:]'):8080\n$ export SB_BROKER_USERNAME=broker\n$ export SB_BROKER_PASSWORD=$(bosh int ./examples/cockroachdb/creds.yml --path /broker_password)\n\n# List available services and their plans\n$ sb-cli services\n\n# Create a new instance with test1 ID\n$ sb-cli create-service-instance test1\n\n# Create a new binding with binding2 ID\n$ sb-cli create-service-binding test1 --id=binding2 -p read_only=true\n```\n\nSee `tests/run.sh` and `examples/` directory for more details.\n\n## Service plans configuration format\n\n...\n\n## Parameters configuration format\n\nDuring creation of service instances and bindings SB API allows to provide customizable parameters. `manifests/broker.yml` allows to provide `si_params` and `sb_params` variables with the following format:\n\n```\n- name: nodes        # \u003c--- name of a param\n  type: integer      # \u003c--- type of a param\n  ops:               # \u003c--- list of operations to be applied to either\n  - type: replace    #      service instance or binding manifest\n    path: /instance_groups/name=zookeeper/instances\n    value: ((value)) # \u003c--- inserted user provided value\n\n- name: include-status-errand\n  type: boolean\n  ops:\n  - type: replace\n    path: /instance_groups/name=zookeeper/jobs/-\n    value:\n    - name: status\n      release: zookeeper\n      properties: {}\n```\n\nAssuming above example is encoded with base64 and provided to `si_params` variable, user should be able to set `nodes` param to `3` to scale down Zookeeper service to 3 nodes:\n\n```\n$ sb-cli create-service-instance test1 -p nodes=3\n```\n\nNote that service instance create and update parameters are will be configured to be same because from the perspective of a SB create and update is the same operation to converge service instance to a particular state.\n\n# Todo\n\n- plan level properties...\n- versions for development\n- parameter types\n- https broker url\n- uaa integration\n- multi node setup\n- async bind/ubind\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcppforlife%2Fbosh-generic-sb-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcppforlife%2Fbosh-generic-sb-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcppforlife%2Fbosh-generic-sb-release/lists"}