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

Introdução

PaaStel is an open source Platform as a Service (PaaS) that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications on your own servers.

The name refers to Brazil's most beloved food (pastel), but it also has a meaning in the world of technology as a "workaround" in the code, like Go Horse.

Componenets

NameDescription
ControllerWorkflow API server
BuilderGit server and source-to-image component
DockerbuilderThe builder for Docker based applications
RegistryThe Docker registry
RouterThe HTTP/s edge router

Setup Dev Environment

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