set -e
: ${NAME:?required, e.g. bosh-lite-10}
export CF_DEPLOYMENT=${CF_DEPLOYMENT:-~/Projects/bosh_deployments/cf-deployment}
[[ -f $CF_DEPLOYMENT/cf-deployment.yml ]] || { echo "Please set \$CF_DEPLOYMENT"; exit 1; }
export BOSH_ENVIRONMENT=vsphere-prod
View private.yml
provider: s3
access_key_id: XXX
secret_access_key: YYY
View say-hello.yml
name: say-hello
- name: sample-windows-bosh-release
version: latest
- alias: windows
os: windows2016
version: latest

TODO, intro. outcome


"Bootstrap BOSH" or "Deploy BOSH" refers to bringing up a single VM that runs the BOSH Director and its runtime dependencies (like PostgreSQL).

"Use BOSH" normally refers to using the bosh (or bosh2 which is its current name at the time of writing) in the terminal, which in turn talks to the BOSH Director via its HTTPS API.


It is no fun to write complex open source that no one can deploy on Day 1 nor can continue to live with it on Day 2 onwards.

Five years ago the incredible lifecycle orchestration platform called BOSH was open sourced by VMWare. It changed the game for owning and operating complex systems and is unparallelled even in 2017. Five years later - more feature rich and easier to use - it is the preferred packaging and deployment system for Cloud Foundry, Kubo (Kubernetes distribution), Pivotal Network, Concourse CI, Dingo PostgrSQL (PostgreSQL as a service), Logsearch (Logstash distribution), and others.

I was at VMWare on April 11 2012 when BOSH was first open sourced, and it makes me very happy to still be successfully running our own systems and our customers systems with BOSH five years later. In this article I wanted to share a reminder of what 2012 was like, why BOSH came into existence, and how much it has improved over the last five years.

Wind the clock back to April 2011, six years ago. The king of pr