|
Packit |
63bb0d |
OSBuild Composer
|
|
Packit |
63bb0d |
================
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Operating System Image Composition Services
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
The composer project is a set of HTTP services for composing operating system
|
|
Packit |
63bb0d |
images. It builds on the pipeline execution engine of *osbuild* and defines
|
|
Packit |
63bb0d |
its own class of images that it supports building.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Multiple APIs are available to access a composer service. This includes
|
|
Packit |
63bb0d |
support for the [lorax-composer](https://github.com/weldr/lorax) API, and as
|
|
Packit |
63bb0d |
such can serve as drop-in replacement for lorax-composer.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
You can control a composer instance either directly via the provided APIs, or
|
|
Packit |
63bb0d |
through higher-level user-interfaces from external projects. This, for
|
|
Packit |
63bb0d |
instance, includes a
|
|
Packit |
63bb0d |
[Cockpit Module](https://github.com/osbuild/cockpit-composer) or using the
|
|
Packit |
63bb0d |
[composer-cli](https://weldr.io/lorax/composer-cli.html) command-line tool.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### Project
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
* **Website**: <https://www.osbuild.org>
|
|
Packit |
63bb0d |
* **Bug Tracker**: <https://github.com/osbuild/osbuild-composer/issues>
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### About
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Composer is a middleman between the workhorses from *osbuild* and the
|
|
Packit |
63bb0d |
user-interfaces like *cockpit-composer*, *composer-cli*, or others. It defines
|
|
Packit |
63bb0d |
a set of high-level image compositions that it supports building. Builds of
|
|
Packit |
63bb0d |
these compositions can be requested via the different APIs of *Composer*, which
|
|
Packit |
63bb0d |
will then translate the requests into pipeline-descriptions for *osbuild*. The
|
|
Packit |
63bb0d |
pipeline output is then either provided back to the user, or uploaded to a user
|
|
Packit |
63bb0d |
specified target.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
The following image visualizes the overall architecture of the OSBuild
|
|
Packit |
63bb0d |
infrastructure and the place that *Composer* takes:
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
![overview](docs/osbuild-composer.svg)
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Consult the `osbuild-composer(7)` man-page for an introduction into composer,
|
|
Packit |
63bb0d |
information on running your own composer instance, as well as details on the
|
|
Packit |
63bb0d |
provided infrastructure and services.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### Requirements
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
The requirements for this project are:
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
* `osbuild >= 23`
|
|
Packit |
63bb0d |
* `systemd >= 244`
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
At build-time, the following software is required:
|
|
Packit |
63bb0d |
|
|
Packit Service |
3a6627 |
* `go >= 1.14`
|
|
Packit |
63bb0d |
* `python-docutils >= 0.13`
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### Build
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
The standard go package system is used. Consult upstream documentation for
|
|
Packit |
63bb0d |
detailed help. In most situations the following commands are sufficient to
|
|
Packit |
63bb0d |
build and install from source:
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
```sh
|
|
Packit |
63bb0d |
mkdir build
|
|
Packit |
63bb0d |
go build -o build ./...
|
|
Packit |
63bb0d |
```
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
The man-pages require `python-docutils` and can be built via:
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
```sh
|
|
Packit |
63bb0d |
make man
|
|
Packit |
63bb0d |
```
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### Repository:
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
- **web**: <https://github.com/osbuild/osbuild-composer>
|
|
Packit |
63bb0d |
- **https**: `https://github.com/osbuild/osbuild-composer.git`
|
|
Packit |
63bb0d |
- **ssh**: `git@github.com:osbuild/osbuild-composer.git`
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### Pull request gating
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Each pull request against `osbuild-composer` starts a series of automated
|
|
Packit Service |
509fd4 |
tests. Tests run via GitHub Actions and Jenkins. Each push to the pull request
|
|
Packit Service |
509fd4 |
will launch theses tests automatically.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Jenkins only tests pull requests from members of the `osbuild` organization in
|
|
Packit |
63bb0d |
GitHub. A member of the `osbuild` organization must say `ok to test` in a pull
|
|
Packit |
63bb0d |
request comment to approve testing. Anyone can ask for testing to run by
|
|
Packit |
63bb0d |
saying the bot's favorite word, `schutzbot`, in a pull request comment.
|
|
Packit |
63bb0d |
Testing will begin shortly after the comment is posted.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
Test results in Jenkins are available by clicking the *Details* link on the
|
|
Packit |
63bb0d |
right side of the Schutzbot check in the pull request page.
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
### License:
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
- **Apache-2.0**
|
|
Packit |
63bb0d |
- See LICENSE file for details.
|