Skip to content

Instantly share code, notes, and snippets.

@drnic
Created May 13, 2012 22:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save drnic/2690511 to your computer and use it in GitHub Desktop.
Save drnic/2690511 to your computer and use it in GitHub Desktop.
Extract a job & packages from another BOSH release
$ cd /tmp
$ gerrit clone ssh://reviews.cloudfoundry.org:29418/cf-release
$ cd cf-release
$ bosh sync blobs
Syncing blobs...
...wait ages...
postgres/postgres-9.0.3-1.amd64.tar.gz downloaded                               
postgres/postgres-9.0.3-1.i386.tar.gz downloaded                                
postgres/postgresql-9.0.3.tar.gz downloading 17.5M (11%)...
...
Total: 129, 537.9M
No blobs to upload

$ cd /path/to/releases 
$ bosh-gen new newproject
$ cd newproject
$ bosh-gen extract /tmp/cf-release postgres
create  jobs/postgres
create  jobs/postgres/monit
create  jobs/postgres/spec
create  jobs/postgres/templates/pg_hba.conf.erb
create  jobs/postgres/templates/postgres_ctl.erb
create  jobs/postgres/templates/postgresql.conf.erb
create  packages/common
create  packages/common/packaging
create  packages/common/spec
create  packages/postgres
create  packages/postgres/packaging
create  packages/postgres/spec
create  src/common
create  src/common/utils.sh
create  blobs/postgres
create  blobs/postgres/postgres-9.0.3-1.amd64.tar.gz
create  blobs/postgres/postgres-9.0.3-1.i386.tar.gz
create  blobs/postgres/postgresql-9.0.3.tar.gz
readme  Upload blobs with 'bosh upload blobs'

$ git add .; git commit -m "Add postgres job"

$ bosh upload blobs
$ git add .; git commit -m "Uploaded blobs"
$ bosh create release
$ bosh upload release

You can also quickly create an initial deployment manifest for a release, deploy and thus trigger the package compilation:

$ bosh status
# get the bosh UUID
$ bosh-gen manifest example-dev . UUID -d 8196
$ bosh deployment example-dev.yml
$ bosh deploy

The packages will compile but the job will fail. You need to populate some properties into your manifest. Replace properties: {} with the following:

properties:
  db: :mydb
  mydb:
    address: localhost
    port: 5432
    roles:
    - name: vcap
    databases:
    - name: myfirstdb
      run_on_every_startup: []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment