Creating Compiled Releases
This feature is available with bosh-release v210+.
CLI v2 is used in the examples.
Typically release tarballs are distributed with source packages; however, there may be a requirement to use compiled packages in an environment (for example a production environment) where:
- compilation is not permitted for security reasons
- access to source packages is not permitted for legal reasons
- exact existing audited binary assets are expected to be used
Any release can be exported as a compiled release by using the Director and bosh export-release command.
Using export-release command¶
To export a release:
Create an empty deployment (or use an existing one). This deployment will hold compilation VMs if compilation is necessary.
name: compilation-workspace releases: - name: uaa version: "45" stemcells: - alias: default os: ubuntu-xenial version: latest instance_groups:  update: canaries: 1 max_in_flight: 1 canary_watch_time: 1000-90000 update_watch_time: 1000-90000
This example assumes you are using cloud config, hence no compilation, networks and other sections were defined. If you are not using cloud config you will have to define them.
Reference desired release versions you want to export.
Deploy. Example manifest above does not allocate any resources when deployed.
bosh export-releasecommand. In our example:
bosh -d compilation-workspace export-release uaa/45 ubuntu-xenial/621.74. If release is not already compiled it will create necessary compilation VMs and compile all packages.
Find exported release tarball in the current directory. Compiled release tarball can be now imported into any other Director via
bosh inspect-releasecommand to view associated compiled packages on the Director. In our example:
bosh inspect-release uaa/45.
Compiled releases are built against a particular stemcell version. Director allows compiled releases to be installed on any minor version of the major stemcell version that the compiled release was exported against.
bosh create-env command requires exact stemcell match unlike the Director.
For example UAA release 27 compiled against stemcell version 3233.10 will work on any 3233 stemcell, but the Director will refuse to install it on 3234.