Builder
The builder is primarily a git server that responds to git pushes by executing
either the git-receive-pack or git-upload-pack hook. After it
executes one of those hooks, it takes the following high level steps in orde
- Calls git archive to produce a tarball (i.e. a .tar.gz file) on the local file system.
- Saves the tarball to centralized object storage.
- Starts a new Kubernetes Pod to build the code, according to the following
rules:
- If a Dockerfile is present in the codebase, starts a dockerbuilder pod, configured to download the code to build from the URL computed in the previous step.
Development Flow
Developer → git push → SSH Server → Git Receive Hook
↓
Git Archive (tarball)
↓
Upload to Storage
↓
Create K8s Pod (dockerbuilder)
↓
Build → Push to Registry
↓
Controller deploys app