Automate PCF Tile pipeline with CI
Stages of PCF Tile release, in order of dependency
- Omnibus
- Bosh
- Tile
- PivotalNetwork
Omnibus releases could trip the bosh-release
process . But should we? Should we lock it to a minor version, and follow bugfixes? How would we handle such a scenario?
BOSH includes the bosh-release
process. Update the included GitLab EE omnibus package, confirm with an MR build, merge. master
pushes to the release S3 bucket.
Tile uses tile-generator
to configured the metadata and package the bosh release into a tarball (.pivotal
) file. Changes across point revisions are generally straight forward, but currently involve small amounts of manual work to update the Makefile
and tile.yml
in use by gitlab-ee-with-tile-gen. This currently does not build master and place into any S3 bucket. Some of this testing is automated with Concourse CI at Pivotal
Once the Tile is generated (manual process, being documented), this needs to be uploaded to a PCF OpsManager 1.8+ for testing (including upgrading) prior to being submitted to PivotalNetwork (currently manual, options for some automation exist with Concourse).
I believe that it makes sense to at the least have BOSH trigger Tile, and spit to an S3 bucket. The question is can we automate the Omnibus -> BOSH relationship, and how much of the Tile -> PivotNetwork can actually be automated. A human intervention step still needs to be completed when it comes to actual "release" of a Tile on PivotalNetwork, because we have a questionaire, OSL, and ECCN requirements that have to be confirmed and reviewed by Pivotal's Compliance folks.
At this time BOSH master
builds trigger a release pushed to S3, and as a last step, trip a GitLab CI API call to the resources in this repository. We no longer use the vara
resources here, however. This needs to be re-pointed to Tile, or removed if the Concourse CI with Pivotal is monitoring that bucket. We do, however, need to be able to control the version* numbers of the tile.
I see a few hurdles here, but they can likely be worked through with some collective discussion.