StarlingX/DebianBuildEnvironment
StarlingX Build Tools
The Debian build is completed using a set of containers designed to run in a Kubernetes environment. To facilitate this we are currently making use of Minikube and Helm, later on we will provide versions of the Helm Charts to allow for running builds directly on Kubernetes or on StarlingX directly.
There are four containers (stx-builder|stx-pkgbuilder|stx-repomgr| stx-lat-tool) required to complete a build:
- stx-builder: main developer build container.
- stx-pkgbuilder: Debian package builder (uses sbuild).
- stx-repomgr: Debian local repository archive (uses aptly)
- stx-lat-tool: Debian image builder
At a high level the StarlingX ISO image creation flow involves the following general steps (assuming you have already configured Docker on your system).
- Install Minikube and Helm.
- Build the StarlingX k8s development environment.
- Enter the stx-builder pod/container to triger the building task.
- Build packages/ISO creation.
Build the four StarlingX pod images
The four StarlingX build container images handle all steps related to StarlingX ISO creation. This section describes how to customize the build container image building process.
Install Minikube and Helm
Install Minikube to support the local k8s framework for building. Meanwhile install Helm tools to manage the Helm Charts required to start/stop/upgrade the pods or the deployments for the Starlingx Building system. Before installing these components please make sure that Docker is available in your environment.
We can download directly the binary packages to install them from the upstream.(https://minikube.sigs.k8s.io/docs/start/)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
If necessary, we can also use the third-party Minikube binary:
curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.20.0/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
Meanwhile we can also install Helm binary package, you can select the version listed here or the latest released version:
curl -LO https://get.helm.sh/helm-v3.6.2-linux-amd64.tar.gz tar xvf helm-v3.6.2-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/