Development

How to build Elemental?

Welcome!

The Elemental (containerized OS) distribution is entirely built over GitHub. You can check the pipelines in the .github folder to see how the process looks like.

Forking and test on your own

By forking the Elemental-toolkit repository, you already have the Github Action workflow configured to start building and pushing your own Elemental fork.

Building locally

The elemental-cli can be built locally using go:

From your git folder:

$> make build-cli
$> build/elemental version
v0.2.5+g4d5d1be

Build an example locally

Building locally has a set of dependencies that should be satisfied.

Then you can run

# make build-os

Build ISO

If using SLES or openSUSE, first install the required deps:

# zypper in -y squashfs xorriso dosfstools

and then, simply run

# make build-iso

Run with qemu

After you have the iso locally, run


$> make prepare-installer-test

This will create a disk image and boot from the ISO.

If the image already exists, it will NOT be overwritten.

You need to run an explicit make test-clean to wipe the image and start over.

Installing

After booting from the ISO you can log in as root with password cos using ssh ssh root@localhost:2222 and install Elemental on the disk image with:

# elemental install /dev/sda

Run tests

Requires: ginkgo, qemu

We have a test suite which runs over SSH.

To create the disk image:


$> make build-disk

To run the tests:


$> make test-smoke

Creating derivatives

This document summarize references to create derivatives with elemental-toolkit.

Build requirements

Building prerequisites


Last modified June 2, 2023: Update documentation (#1778) (5f4381a0e)