Note
Available as of BOSH Director version v268.7.0
Motivation¶
When deploying instance groups that use compiled releases, if the release is not compiled against the exact stemcell used by the instance group, Bosh will use the release compiled against the most recent compatible stemcell.
This leads to situations where a simple operator action such as "scale up by 1 VM" will detect a newer compiled release and update many VMs.
Consider a manifest without exported_from
- name: bpm url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bpm-0.12.3-ubuntu-xenial-250.4.tgz version: 0.12.3
If this bpm release was compiled against ubuntu-xenial/250.4
and it is used by an instance group running on ubuntu-xenial/250.17,
a deploy will use the bpm release compiled against ubuntu-xenial/250.4.
If later, an operator uploads a new bpm release with the same 0.12.3 version,
but compiled against a newer stemcell, ubuntu-xenial/250.9,
Bosh will use the new release compiled against the newer stemcell.
To lock a compiled release and reduce unexpected VM updates,
use exported_from in the releases block of your manifest.
Usage¶
To specify which compiled release to use in a deployment, add exported_from to the release:
releases:
- name: bpm
  url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bpm-0.12.3-ubuntu-xenial-250.4.tgz
  version: 0.12.3
  exported_from:
  - os: ubuntu-xenial
    version: 250.4
A deployment with this release specified will always use the packages from this release
compiled against 250.4 and will not update the packages
when newer releases are uploaded.
To create a compiled release, follow the instructions on the compiled releases page
Why an array?¶
exported_from is an array to support future use cases, such as matching multiple stemcells.
Currently, only the first entry in exported_from is used.
Caveats¶
- 
The exported_fromfield is designed for compiled releases. If using a source release withexported_from, bosh will not compile the release packages during deployment.
- 
The stemcell specified in exported_frommust be compatible with the stemcell used by the instance group. This means they have the sameosand the same majorversion.
- 
exported_fromis distinct from thestemcellblock in a release.stemcellis used when downloading a release from aurl. It does not tell bosh which compiled packages to use in a deployment.