The builder manager watches the package & environments CRD changes and manages the builds of function source code. Once an environment that contains a builder image is created, the builder manager will then create the Kubernetes service and deployment under the fission-builder namespace to start the environment builder. And once a package that contains a source archive is created, the builder manager talks to the environment builder to build the function’s source archive into a deploy archive for function deployment.
After the build, the builder manager asks Builder to upload the deploy archive to the Storage Service once the build succeeded, and updates the package status attached with build logs.
Fig.1 Builder Manager
- Builder Manager watches the environment changes.
- Create/delete service and deploy when a new environment with build image is created/deleted.
- Builder Manager watches the packages changes.
- Send a build request to the builder service
- Builder pod receives build request from the builder manager
- Builder pulls the source archive from the StorageSvc and starts the build process. If the build process succeeded, go to step 7; otherwise, go to step 8.
- Builder uploads the deployment archive to StorageSvc for function pod to use.
- Builder Manager updates the package status with build logs.