App for automatically running rpm-ostree, generating disk images
Python Perl Makefile C Shell JavaScript M4
Latest commit 5a22810 Jan 4, 2017 @cgwalters cgwalters committed on GitHub Deprecate this project (#106)
Failed to load latest commit information.
man man: Update arguments from README (#88) Apr 7, 2016
patches/shadow-utils patches: New directory containing patches for Fedora userspace Jan 4, 2014
src Stop using ostree trivial-httpd (#108) Jan 4, 2017
t Fix pylint errors, add "make pylint" for full run Feb 25, 2015
.gitignore Add basic man page Mar 25, 2014
.travis.yml Add travis file for Homu usage Apr 19, 2016
COPYING COPYING: Update to latest LGPLv2+ Mar 10, 2014 Add a pylint to TESTS Feb 25, 2015 Add man page May 30, 2014 Make azure image usable (#107) Dec 27, 2016 Remove old gjs toolbox code, as well as perl service Oct 1, 2015
Makefile.dist-packaging Makefile.dist-packaging: Update from ostree Mar 22, 2014 Deprecate this project (#106) Jan 4, 2017
TODO TODO: Update Mar 31, 2014 Use the now external libgsystem Feb 7, 2014 Release 2016.4 Dec 22, 2016
setup.cfg flake8 exception: lengthen line length to 160 Oct 14, 2014


This is a higher level app on top of a few tools:

It is intended to streamline things for local development on a workstation to build trees, installers, and cloud images. It is also used in CentOS to build the installer.

However, it is now deprecated in favor of calling the above tools directly. The most common developer use case is to make custom ostree commits, and invoking rpm-ostree compose tree directly is better for this.

For automation, there is which increasingly knows how to operate with OSTree-based systems too. This is used in Fedora today, where the OSTree-embedding logic for the installer is instead in

For cloud images, we would like to instead improve ImageFactory to streamline the "Anaconda kickstart" case.

You can also of course define Jenkins jobs or whatever that call the above tools, as the CentOS Atomic Host jobs do:

Getting started

Depending on the subcommand being called with rpm-ostree-toolbox, a number of different input files are required. The main configuration file is generally called config.ini. These are intended to be kept inside revision control. For example, this git repository holds the Fedora Atomic configuration:

rpm-ostree-toolbox treecompose

This allows you to create a tree of ostree content. It takes various inputs from a JSON file to perform most of its actions. When complete, you will have an ostree with content suitable for creating disk images.

Example invocation:

rpm-ostree-toolbox treecompose -c fedora-atomic/config.ini

It will write output into the current working directory.

rpm-ostree-toolbox installer

This command creates ISO and PXE images that can be used as install media. This can either be done with a container-based approach or using libvirt.

rpm-ostree-toolbox imagefactory

With imagefactory, you can create various virtualized images with libvirt related tooling. Currently it is capable of making qcow2, raw, vsphere, and rhevm images. This can be altered with the -i argument.

These need to reference an installer image.