No description
Find a file
Tom Gundersen f945c5057e osbuild-pipeline: always pass repositories as input
Require repository informaiton to be passed as input, rather than
read from the current directory.

Reading from the repository informaiton meant to be used by weldr
has several drawbacks.
 - it makes it impractical to use the tool outside a git checkout
 - it makes it awkward to adapt the repositories to different use
   cases
 - it means that the shipped repositories cannot be extended with
   update repos, as the same repos are used for testing, and that
   would render our tests non-reproducible.

Overall, we are moving towards making repositories something the
caller must always pass in, rather than something that composer
maintains. For the weldr API we need to keep working as before,
but for new APIs we are avoiding that.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-03-29 16:08:36 +02:00
.github/workflows ci/rpm: use the old spec file for f31 2020-03-25 11:43:39 +01:00
cmd osbuild-pipeline: always pass repositories as input 2020-03-29 16:08:36 +02:00
distribution worker: don't hard code path to unix domain socket 2020-03-25 14:05:44 +01:00
docs docs: add errors.md 2020-03-25 10:22:16 +01:00
image-types image-types: start describing image types 2020-03-26 19:16:30 +01:00
internal test/cases: include repository information 2020-03-29 16:08:36 +02:00
osbuild@c8465ce06f submodule: update to current master 2020-03-15 19:38:59 +01:00
repositories repositories: Fedora 32 is still under development 2020-03-18 20:46:00 +01:00
test test/cases: include repository information 2020-03-29 16:08:36 +02:00
tools osbuild-pipeline: always pass repositories as input 2020-03-29 16:08:36 +02:00
vendor Update go.mod and vendor for require package 2020-03-17 21:10:00 +01:00
.gitignore gitignore: don't ignore files we do not generate 2020-03-21 19:50:21 +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
.travis.yml tests/image: remove all distro restrictions 2020-03-19 14:25:08 +01:00
CONTRIBUTING.md update readmes to use the new osbuild-composer package 2020-03-25 11:43:39 +01:00
dnf-json dnf-json: allow passing arch as an argument 2020-03-24 20:45:30 +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 client: Move the weldrcheck integration tests to client 2020-03-27 19:07:33 +01:00
LICENSE Revert "Fill in the license template" 2019-11-15 15:26:51 +01:00
Makefile client: Move the weldrcheck integration tests to client 2020-03-27 19:07:33 +01:00
osbuild-composer.spec client: Move the weldrcheck integration tests to client 2020-03-27 19:07:33 +01:00
README.md update readmes to use the new osbuild-composer package 2020-03-25 11:43:39 +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 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