Available as of BOSH Director version v268.7.0
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
- name: bpm url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bpm-0.12.3-ubuntu-xenial-250.4.tgz version: 0.12.3
bpm release was compiled against
and it is used by an instance group running on
a deploy will use the
bpm release compiled against
If later, an operator uploads a new bpm release with the same
but compiled against a newer stemcell,
Bosh will use the new release compiled against the newer stemcell.
To lock a compiled release and reduce unexpected VM updates,
exported_from in the releases block of your manifest.
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
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.
exported_fromfield is designed for compiled releases. If using a source release with
exported_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 same
osand the same major
exported_fromis distinct from the
stemcellblock in a release.
stemcellis used when downloading a release from a
url. It does not tell bosh which compiled packages to use in a deployment.