Life of a Bake
sequenceDiagram Title: Life of a Bake participant Igor participant Jenkins participant ArtifactRepo participant Echo participant Front50 participant Orca participant Rosco participant Packer participant Redis participant Cloud Echo->>Front50: Build cache of pipeline triggers Jenkins->>ArtifactRepo: Publish newly-produced deployable asset (e.g. .deb/.rpm/.jar) Note right of Jenkins: Archive artifacts Igor->>Jenkins: Poll Jenkins for completed builds Igor->>Echo: Publish completed build info to eventing bus Echo->>+Orca: Initiate pipeline execution based on matched trigger Orca->>Redis: Persist new execution Note right of Orca: Orca uses the artifact details from the trigger to decorate the package name with version information Orca->>-Rosco: Request bake, passing package with exact version to install Rosco->>Redis: Persist new bake Rosco->>Packer: Initiate bake job, passing repo address (from config) and package/version Packer->>ArtifactRepo: Pull deployable asset from repo Packer->>Cloud: Publish machine image Loop In background thread Rosco->>Packer: Poll until job completion Rosco->>Redis: Mark bake completed end Loop In worker thread Orca->>Rosco: Poll until task completion Rosco->>Redis: Query bake status Orca->>Redis: Update execution state end
Last modified September 28, 2020: wip (b26e2b3)