72 lines
2.6 KiB
Markdown
72 lines
2.6 KiB
Markdown
# Koji osbuild
|
|
|
|
This project provides osbuild integration with Koji. It makes it possible
|
|
to build images and other OS artifacts via osbuild-composer through koji,
|
|
This is done via three plugins:
|
|
|
|
- Koji **hub** plugin: Provides a new XMLRPC API endpoint that clients
|
|
can use to create new `osbuildImage` Koji tasks.
|
|
|
|
- Koji **builder** plugin: Handles `osbuildImage` Koji tasks and will talk
|
|
to osbuild-composer to create new composes via composer's Koji API.
|
|
|
|
- Koji **cli** plugin: Adds a new `osbuild-image` to the existing `koji`
|
|
command line client. This will then use the new XMLRPC API to request a
|
|
new compose.
|
|
|
|
|
|
## Installation
|
|
|
|
The plugins need to be installed on the machines running the corresponding
|
|
services. Installation via RPMs is recommended. The RPMs for the latest git
|
|
commit of the source can be easily created via meson:
|
|
|
|
```
|
|
meson . build
|
|
ninja -C build rpms
|
|
```
|
|
|
|
The RPMs should then be in `build/rpmbuild`. The hub and builder plugin
|
|
also need to be explicitly enabled in the respective configuration files.
|
|
The *hub* plugin configuration file at `/etc/koji-hub/hub.conf`. The
|
|
plugin is enabled by adding `osbuild` to the `Plugins` directive. The
|
|
*builder*: configuration file at `/etc/kojid/kojid.conf`. Here `osbuild`
|
|
needs to be added to the `plugin` directive.
|
|
For an example, see the test container configuration files
|
|
[`hub.conf`](test/container/hub/hub.conf) for the hub and
|
|
[`kojid.conf`](container/builder/kojid.conf) for the builder.
|
|
|
|
Additionally, an osbuild-composer instance, at least version 21, with the
|
|
koji API enabled needs to be running and reachable via TCP from the host
|
|
running the koji builder.
|
|
|
|
|
|
## Configuration
|
|
|
|
The builder plugin needs to be configured via a `builder.conf` file that
|
|
can be located in either `/usr/share/koji-osbuild` or `/etc/koji-osbuild`.
|
|
|
|
```ini
|
|
[composer]
|
|
# The host, port and transport (https vs http) of osbuild composer
|
|
# NB: The 'https' transport is required for SSL/TLS authorization
|
|
server = https://composer.osbuild.org
|
|
|
|
# Authorization via client side certificates: can be either a pair of
|
|
# certificate and key files separated by comma or a file combining both.
|
|
ssl_cert = /share/worker-crt.pem, /share/worker-key.pem
|
|
|
|
# Verification of the server side: either a boolean (True / False) to
|
|
# enable or disable verification, or a path to a CA_BUNDLE file or a
|
|
# directory containing certificates of trusted CAs.
|
|
ssl_verify = /share/worker-ca.pem
|
|
|
|
[koji]
|
|
# The URL to the koji hub XML-RPC endpoint
|
|
server = https://koji.fedoraproject.org/kojihub
|
|
```
|
|
|
|
|
|
## Development
|
|
|
|
See [`HACKING.md`](HACKING.md) for how to develop and test this project.
|