Jump to: navigation, search

StarlingX/DebianBuildEnvironment

< StarlingX
Revision as of 13:36, 8 November 2021 by Zulcss (talk | contribs) (Created page with "== 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 us...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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).

  1. Install Minikube and Helm.
  2. Build the StarlingX k8s development environment.
  3. Enter the stx-builder pod/container to triger the building task.
  4. 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/