Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 2.2 KB

tech-overview.md

File metadata and controls

25 lines (13 loc) · 2.2 KB

Prod configuration

bosh-hub is meant to be the destination for all BOSH related things: releases, stemcells, documentation, etc.

Release tracking

Releases are tracked by adding a new WatcherRec. Periodic release watcher runs in a goroutine and downloads git repository for every watched release periodically. It compares if there are any new final releases and adds them as new ImportRecs.

Periodic release importer runs in a goroutine and picks up one release import at a time. It runs bosh create release X --with-tarball to build a release tarball for a specific release version. It then uploads created tarball and creates a ReleaseTarballRec. If importing of a release fails new ImportErrRec is created and release version is not tried to be imorted again until associated ImportErr is deleted.

In addition to creating ReleaseTarballRecs for each imported release version, release, jobs and packages details are saved.

Stemcell tracking

Periodic S3 bucket importer runs periodically and downloads all S3 items' metadata from all configured buckets. It then filters out non-stemcell items and saves links to found stemcell items as s3StemcellRecs

StemcellsController sorts and shows saved results.

Release notes tracking

Periodic github note importer runs in a goroutine and downloads release notes from Github repositories. It always overwrites existing release notes for each ReleaseVersionRec. Release notes are retrieved via authenticated access (personal access token) to the official Github API.

Docs

DocsController wraps pre-rendered HTML documents under docs/ path. Doc HTML pages are rendered before deploying an app. Running ./build-docs.sh uses Bookbinder project with configuration stored in docs-bosh-io/ folder.