Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

  1. Calls git archive to produce a tarball (i.e. a .tar.gz file) on the local file system.
  2. Saves the tarball to centralized object storage.
  3. 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