Deployment Manifest v1

Note

Once you opt into using cloud config all deployments must be converted to use manifest v2 format that disallows IaaS specific configuration. See manifest v2 schema for allowed configurations. v257+ supports deploying both v1 and v2 manifests to the same director.

The deployment manifest is a YAML file that defines the components and properties of the deployment. When an operator initiates a new deployment using the CLI, the Director receives a version of the deployment manifest and creates a new deployment using this manifest.

name [String, required]: The name of the deployment. A single Director can manage multiple deployments and distinguishes them by name.

director_uuid [String, required]: This string must match the UUID of the currently targeted Director for the CLI to allow any operations on the deployment. Use bosh status to display the UUID of the currently targeted Director.

releases [Array, required]: The name, url and possibly SHA1 of each release in the deployment.

name [String, required]: Name of a release used in the deployment.

url [String, required]: URL of the release to use. URL may use the file protocol (file://) or HTTP(s) (http(s)://). File URLs can be absolute or relative to the current directory of bosh-init execution.

sha1 [String, required]: The SHA1 of the release tarball. SHA1 is only required when using HTTP(s) URLs.

name [String, required]: A unique name used to identify and reference the resource pool

network [String, required]: References a valid network name defined in the Networks block. Newly created resource pool VMs use the described configuration.

size [Integer, optional]: The number of VMs in the resource pool. If you omit this value, BOSH calculates the resource pool size based on the total number of job instances that belong to this resource pool. If you specify this value, BOSH requires that the size be at least as large as the total number of job instances using it.

url [String, required]: URL of the stemcell tarball. URL may use the file protocol (file://) or HTTP(s) (http(s)://). File URLs can be absolute or relative to the current directory of bosh-init execution.

sha1 [String, required]: The SHA1 of the stemcell tarball. SHA1 is only required when using HTTP(s) URLs.

network [String, required]: References a valid network name defined in the Networks block. BOSH assigns network properties to compilation VMs according to the type and properties of the specified network.

reuse_compilation_vms [Boolean, optional]: If false, BOSH creates a new compilation VM for each new package compilation and destroys the VM when compilation is complete. If true, compilation VMs are re-used when compiling packages. Defaults to false.

cloud_properties [Hash, optional]: Describes any IaaS-specific properties needed to create compilation VMs; for most IaaSes, some data here is actually required. For the Compilation Block, the required cloud_properties are the same as for Resource Pools; see the CPI Specific cloud_properties for Resource Pools. Examples: instance_type, availability_zone. Default is {} (empty Hash).

max_in_flight [Integer or Percentage, required]: The maximum number of non-canary instances to update in parallel.

canary_watch_time [Integer or Range, required]

If the canary_watch_time is an integer, the Director sleeps for that many milliseconds, then checks whether the canary instances are healthy.

If the canary_watch_time is a range (low-high), the Director:

Waits for low milliseconds

Waits until instances are healthy or high milliseconds have passed since instances started updating

update_watch_time [Integer or Range, required]

If the update_watch_time is an integer, the Director sleeps for that many milliseconds, then checks whether the instances are healthy.

If the update_watch_time is a range (low-high), the Director:

Waits for low milliseconds

Waits until instances are healthy or high milliseconds have passed since instances started updating

serial [Boolean, optional]: If disabled (set to false), deployment jobs will be deployed in parallel, otherwise - sequentially. Instances within a deployment job will still follow canary and max_in_flight configuration. Defaults to true.

jobs [Array, required]: Specifies the mapping between BOSH release jobs and cloud instances. Jobs are defined in the BOSH release. The Jobs block defines how BOSH associates jobs with the VMs started by the IaaS. The most commonly used job properties are:

name [String, required]: A unique name used to identify and reference this association between a BOSH release job and a VM.

templates [Array, required]: Specifies the name and release of a job template.

name [String, required]: The job template name

release [String, required]: The release where the job template exists

lifecycle [String, optional]: Specifies the kind of task the job represents. Valid values are service and errand; defaults to service. A service runs indefinitely and restarts if it fails. An errand starts with a manual trigger and does not restart if it fails.

persistent_disk [Integer, optional]: Specifies the persistent disk size; defaults to 0 (no persistent disk). If persistent_disk is a positive integer, BOSH creates a persistent disk of that size in megabytes and attaches it to each job instance VM. Read more about persistent disks

properties [Hash, optional]: Specifies job properties. Properties allow BOSH to configure jobs to a specific environment. properties defined in a Job block are accessible only to that job, and override any identically named global properties.

resource_pool [String, required]: A valid resource pool name from the Resource Pools block. BOSH runs instances of this job in a VM from the named resource pool.

update [Hash, optional]: Specific update settings for this job. Use this to override global job update settings on a per-job basis.

instances [Integer, required]: The number of job instances. Each instance is a VM running this particular job.

networks [Array, required]: Specifies the networks this job requires. Each network can have the following properties specified:

name [String, required]: A valid network name from the Networks block

static_ips [Array, optional]: Array of IP addresses reserved for the job on the network

Global properties allow BOSH to configure jobs to a specific environment. properties defined in the Properties block are accessible to all jobs. Any identically named properties in the Jobs block will override the global property for that job.

By default, general configuration information resides in the template spec file of a job in a BOSH release. If you move this information from the release into the manifest, you can reconfigure a deployment by changing the manifest instead of the release. To do this, add the general configuration information to the manifest in a sub-block of the Properties block. The name of the job template identifies the sub-block.

Typical general configuration information includes but is not limited to:

If an identically named property exists in the Properties block of the deployment manifest, the value of this property overrides the previous value.

If an identically named property exists in the Properties sub-block of the Jobs block of the deployment manifest, the value of this property overrides all previous values.

Note

If you declare specific properties in a job template spec, BOSH ignores all other properties. If you do not declare any specific properties in a job template spec, BOSH applies all properties from the deployment manifest to the job.

template [Hash, required]: Specifies the name of the CPI job and release where the CPI job exists. It will be used by the bosh-init to create VMs, persistent disks, etc.

name [String, required]: The CPI job name.

release [String, required]: The CPI release name.

mbus [String, required]: HTTPs URL used by the bosh-init to contact the Agent on a created VM. The URL includes basic auth credentials that should be customized for each deployment. Example: "https://mbus:mbus-password@10.0.0.6:6868".