Skip to main content

Build Systems

image-builder can be used in various build systems to automatically, or on a schedule, produce operating system artifacts to distribute to users. We have plugins for commonly used ones.

Koji

Koji is the build system used by many RHEL-family distributions. image-builder provides integration with it through the koji-image-builder plugin. For installation and configuration instructions please refer to its documentation or repository, note that this work needs to be performed by the maintainers of the instance you would like image-builder to be available on.

Usage

Some of the information here is specific to the Koji instance you're speaking to, if this is the case this is noted in a comment.

As a user you want to koji-image-builder-cli package installed on your system which provides a subcommand to your koji command to schedule builds. To schedule a build you can use the following command:

koji image-builder-build \
--scratch \
f43-image-builder \ # target to build in/for
Fedora-IoT-Raw \ # name of the target package
43 \ # version of the build
minimal-raw-xz # image type

Depending on the instance this is enough. image-builder will use the build root repositories to build the image. In many cases (Fedora, for example) however you also want to pass repositories:

koji image-builder-build \
--scratch \
f43-image-builder \ # target to build in/for
Fedora-IoT-Raw \ # name of the target package
43 \ # version of the build
minimal-raw-xz \ # image type
--repo 'https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$arch/os/'

For image types that require an ostree commit and reference those can be passed as well:

koji image-builder-build \
--scratch \
f43-image-builder \
Fedora-Minimal \
43 \
iot-installer \
--repo 'https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$arch/os/' \
--ostree-url 'https://kojipkgs.fedoraproject.org/compose/iot/repo/' \
--ostree-ref 'fedora/rawhide/$arch/iot'

For more options you can take a look at koji image-builder build --help.

Deployments

koji-image-builder is currently deployed on the Fedora Koji instance, the CentOS Koji Instance, and the Community Build Service instance. It can be used there if you have the appropriate permissions to trigger builds on (one of) those instances.