package claim - A package claim will contain the current package version and the stemcell
The patent counsel will create package claims for the new version number and/or stemcell version
Will generate embodiment package claims based on the stemcell and version number of used package in instance groups
For any package claims which are in the patent claim, but not in the embodiment the reconciler will determine if the package has been previously compiled for that stemcell, and exists in the blobstore, or will create compilation mutations.
The executor will either compile the packages and insert them into the blobstore or do nothing. If the executor is
compiling packages, it will need to acquire a compilation locks in order to ensure multiple deployments are not
compiling the same package at the same time.
See bosh/src/bosh-director/lib/bosh/director/deployment_plan/steps/package_compile_step.rb
for inspiration, shouldn't
have to change much. Could even have executor have two steps, 'Compile', and 'Deploy', with 'Compile' step (at least initially)
basically remaining unchanged.
When reuse compilation vms is enabled, the compilation vms will pick which package to compile based off a queue which was created by the reconciler.
The reconciler will create nodes in the tree for each compilation depending on the number of compilation vms as defined in the manifest.