memory-bank/components/image-builder-mk3.md
The Image Builder MK3 is a service that runs in Gitpod clusters and is responsible for building custom workspace images based on user-defined configurations. It provides APIs to create and list workspace image builds, resolve workspace Docker image references, and listen to build updates and logs.
The primary purposes of the Image Builder MK3 are:
The Image Builder MK3 operates as a gRPC service with several key components:
The service interacts with the Workspace Manager to coordinate image builds and with container registries to store and retrieve images.
main.go: Entry point that calls the Execute function from the cmd packagecmd/root.go: Defines the root command and basic service configurationcmd/run.go: Implements the main service functionalitypkg/orchestrator/: Core orchestration logic for image buildspkg/resolve/: Image reference resolutioncomponents/common-go:lib: Common Go utilitiescomponents/content-service-api/go:lib: Content service API definitionscomponents/content-service:lib: Content service clientcomponents/image-builder-api/go:lib: Image builder API definitionscomponents/supervisor-api/go:lib: Supervisor API definitionscomponents/ws-manager-api/go:lib: Workspace manager API definitionscomponents/registry-facade-api/go:lib: Registry facade API definitionsThe Image Builder MK3 is configured via a JSON configuration file that includes:
The Image Builder MK3 exposes a gRPC API that provides:
The image build process follows these steps:
The Image Builder MK3 integrates with:
The Image Builder MK3 is typically used to: