No description
Find a file
Brian C. Lane aed28ccf72 store: Add blueprint change order tracking
Previously the order that changes were made to blueprints was not being
saved. I worked around this by sorting by timestamp, but it only has 1s
resolution so it is very likely to end up with changes having the same
timestamp, especially when running tests.

This adds a new variable to the Store, it is a list of the commit hashes
for each blueprint, in the order they were made.

Since this is a change to the Store schema the first time the new code
is run with the old store state it needs to populate the commit list, as
best it can, with the existing data. To do that it sorts the changes for
each blueprint by timestamp and version and saves this ordering into the
new BlueprintsCommits list.
2020-03-10 12:41:19 +01:00
.github/workflows Add coveralls.io code coverage github-action 2020-03-09 18:06:08 +01:00
cmd rcm tests: document the test cases 2020-03-09 18:08:43 +01:00
distribution distribution: set CACHE_DIRECTORY in the .service file 2020-03-03 14:25:26 +01:00
docs README: Define terminology as a base for internal refactoring 2020-01-30 14:42:25 +01:00
internal store: Add blueprint change order tracking 2020-03-10 12:41:19 +01:00
osbuild@bd6e6bde56 update osbuild submodule 2020-02-24 20:17:50 +01:00
repositories distro: add rhel-8.1 support 2020-02-29 01:17:50 +01:00
test test/cases: test manifests rather than pipelines 2020-03-08 21:05:01 +01:00
tools tools: add prepare-source.sh 2020-02-17 16:09:17 +01:00
vendor Use semver to enforce blueprint version numbers 2020-02-25 09:00:35 +01:00
.gitignore gitignore: add tests binaries 2020-03-09 18:08:43 +01:00
.gitmodules image-info: add test 2019-10-05 14:47:35 +02:00
.golangci.yml ci/lint: disable govet/composites 2020-03-02 14:28:55 +01:00
.packit.yaml add packit 2019-11-29 12:16:27 +01:00
.travis.yml tools: add prepare-source.sh 2020-02-17 16:09:17 +01:00
dnf-json dnf-json: avoid randomizing package order 2020-03-02 17:44:36 +01:00
go.mod Use semver to enforce blueprint version numbers 2020-02-25 09:00:35 +01:00
go.sum Use semver to enforce blueprint version numbers 2020-02-25 09:00:35 +01:00
golang-github-osbuild-composer.spec 7 2020-03-05 17:30:50 +01:00
LICENSE Revert "Fill in the license template" 2019-11-15 15:26:51 +01:00
Makefile tests: introduce RCM API testing executable 2020-03-09 09:37:11 +01:00
README.md Add quick README about testing 2020-02-19 23:41:58 +01:00

osbuild-composer

An HTTP service for building bootable OS images. It provides the same API as lorax-composer but in the background it uses osbuild to create the images.

You can control it in Cockpit or using the composer-cli. To get started on Fedora, run:

# dnf install cockpit-composer golang-github-osbuild-composer composer-cli
# systemctl enable --now cockpit.socket
# systemctl enable --now osbuild-composer.socket

Now you can access the service using composer-cli, for example:

composer-cli status show

or using a browser: http://localhost:9090

API documentation

Please refer to the lorax-composer's documenation as osbuild-composer is a drop-in replacement.

High-level overview

overview

Frontends

osbuild-composer is meant to be used with 2 different front-ends. The primary one, which is meant for general use, is cockpit-composer. It is part of the Cockpit project and unless you have a strong reason not to use it, you should use it. composer-cli is a command line tool that can be used with osbuild-composer.

Compose

  • Compose is what the user submits over one of the frontends
  • It contains of one or more image builds
  • It contains zero or more upload actions

Image build

Job

  • What composer submits to a worker
  • Is a unit of work performed by osbuild (internally it is a single execution of osbuild)
  • Consists of one image build and zero or more Upload actions

Image type

  • In the cockpit-composer, for examples these are image types:
    • Openstack
    • Azure
    • AWS
  • As of now, we name them internally by their file format: vhd, ami, etc.
  • You can see a list of types by executing: composer-cli compose types

Upload action

  • Each image can be, but does not have to be, uploaded to a remote location
  • One image can be uploaded to multiple locations

Testing

See test/README.md