No description
Find a file
Lars Karlitski 1b7cb6c11b store/jobqueue: remove distro field from jobs
A job's purpose is to build an osbuild manifest and upload the results
somewhere. It should not know about which distro was used to generate
the pipeline.

Workers depended on the distro package in two ways:

1. To set an osbuild `--build-env`. This is not necessary anymore in new
   versions of osbuild. More importantly, it was wrong: it passed the
   runner from the distro that is being built, instead of one that
   matches the host.

   This patch simply removes that logic.

2. To fetch the output filename with `Distro.FilenameFromType()`. While
   that is useful, I don't think it warrants the dependency.

   This patch uses the fact that all current pipelines output exactly
   one file and uploads that. This should probably be extended in the
   future to upload all output files, or to name them explicitly in the
   upload target.

The worker should now compile to a smaller binary and do less
unnecessary work on startup (like reading repository files).
2020-03-18 12:24:20 +01:00
.github/workflows ci/source-check: check also the unstaged files 2020-03-13 16:00:29 +01:00
cmd store: don't keep a "default" distro 2020-03-18 08:33:42 +01:00
distribution osbuild-composer: don't use hardcoded state directory 2020-03-16 21:05:39 +01:00
docs README: Define terminology as a base for internal refactoring 2020-01-30 14:42:25 +01:00
internal store/jobqueue: remove distro field from jobs 2020-03-18 12:24:20 +01:00
osbuild@c8465ce06f submodule: update to current master 2020-03-15 19:38:59 +01:00
repositories rpmmd: drop the Name attribute from RepoConfig 2020-03-15 23:48:42 +01:00
test tests: remove test/run script 2020-03-16 21:10:57 +01:00
tools test/cases: include the full rpmmd structs 2020-03-15 19:38:59 +01:00
vendor Update go.mod and vendor for require package 2020-03-17 21:10:00 +01:00
.gitignore Ignore osbuild-weldr-tests binary 2020-03-10 20:29:19 +01:00
.gitmodules image-info: add test 2019-10-05 14:47:35 +02:00
.golangci.yml ci/lint: add integration tag 2020-03-17 20:36:58 +01:00
.packit.yaml add packit 2019-11-29 12:16:27 +01:00
.travis.yml ci/travis: switch to the Go implementation of image tests 2020-03-16 21:10:57 +01:00
CONTRIBUTING.md add CONTRIBUTING.md file 2020-03-17 21:12:05 +01:00
dnf-json rpmmd: drop the Name attribute from RepoConfig 2020-03-15 23:48:42 +01:00
go.mod tests/image: add booting tests 2020-03-13 18:06:56 +01:00
go.sum Use semver to enforce blueprint version numbers 2020-02-25 09:00:35 +01:00
golang-github-osbuild-composer.spec spec: add systemd scriptlets for the rcm subpackage 2020-03-18 09:59:58 +01:00
LICENSE Revert "Fill in the license template" 2019-11-15 15:26:51 +01:00
Makefile weldrcheck: Convert to go testing framework + testify/require 2020-03-17 21:10:00 +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