Building a Manifest
(See What is a Deployment? for an introduction to deployments.)
A deployment is a collection of VMs, persistent disks and other resources. To create a deployment in the Director, it has to be described with a deployment manifest. Most deployment manifests look something like this:
--- name: zookeeper releases: - name: zookeeper version: 0.0.5 url: https://bosh.io/d/github.com/cppforlife/zookeeper-release?v=0.0.5 sha1: 65a07b7526f108b0863d76aada7fc29e2c9e2095 stemcells: - alias: default os: ubuntu-xenial version: latest update: canaries: 2 max_in_flight: 1 canary_watch_time: 5000-60000 update_watch_time: 5000-60000 instance_groups: - name: zookeeper azs: [z1, z2, z3] instances: 5 jobs: - name: zookeeper release: zookeeper properties: {} vm_type: default stemcell: default persistent_disk: 10240 networks: - name: default - name: smoke-tests azs: [z1] lifecycle: errand instances: 1 jobs: - name: smoke-tests release: zookeeper properties: {} vm_type: default stemcell: default networks: - name: default
(Taken from https://github.com/cppforlife/zookeeper-release/blob/master/manifests/zookeeper.yml)
Here is how deployment manifest describes a reasonably complex Zookeeper cluster:
- Zookepeer source code, configuration file, startup scripts- include zookeeperrelease version0.0.5to thereleasessection
 
- include 
- Operating system image onto which install software- include latest version of ubuntu-xenialstemcell
 
- include latest version of 
- Create 5 Zookeeper VMs spread- add zookeeperinstance group withinstances: 5
 
- add 
- Spread VMs over multiple availability zones- add azs: [z1, z2, z3]
 
- add 
- Install Zookeeper software onto VMs- add zookeeperjob to this instance group
 
- add 
- Size VMs in the same way- add vm_type: defaultwhich references VM type from cloud config
 
- add 
- Attach a 10GB persistent disk to each Zookeeper VM- add persistent_disk: 10240tozookeeperinstance group
 
- add 
- Place VMs onto some network- add networks: [{name: default}]tozookeeperinstance group
 
- add 
- Provide a way to smoke test Zookeeper cluster- add smoke-testsinstance group withsmoke-testsjob from Zookeeper release
 
- add 
Refer to manifest v2 schema for detailed breakdown.
Once manifest is complete referenced stemcells and releases must be uploaded.