79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# Koji osbuild
|
|
|
|
This project provides osbuild integration with 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-command` to the existing `koji`
|
|
command line client. This will then use the new XMLRPC API to request a
|
|
new compose.
|
|
|
|
## Building the containers
|
|
|
|
```sh
|
|
# container for the hub
|
|
sudo podman build -t koji.hub -f container/hub/Dockerfile .
|
|
|
|
# container for the builder
|
|
sudo podman build -t koji.builder -f container/builder/Dockerfile .
|
|
```
|
|
|
|
## Running
|
|
|
|
Run the database server, the kerberos kdc, and koji hub:
|
|
```
|
|
sudo ./run-koji-container.sh start
|
|
```
|
|
|
|
Run the koji builder:
|
|
```
|
|
sudo ./run-builder.sh
|
|
```
|
|
|
|
Create the tag infrastructure:
|
|
```
|
|
./make-tags.sh
|
|
```
|
|
|
|
## Verify installation
|
|
|
|
Try connecting to koji hub locally via the `koji` command line client:
|
|
```
|
|
koji --server=http://localhost:80/kojihub --user=osbuild --password=osbuildpass --authtype=password hello
|
|
grüezi, osbuild!
|
|
|
|
You are using the hub at http://localhost:80/kojihub
|
|
Authenticated via password
|
|
```
|
|
|
|
Check logs
|
|
```
|
|
sudo podman logs org.osbuild.koji.koji # koji hub
|
|
sudo podman logs org.osbuild.koji.kdc # kerberos kdc
|
|
```
|
|
|
|
Execute into the container:
|
|
```
|
|
sudo podman exec -it org.osbuild.koji.koji /bin/bash
|
|
sudo podman exec -it org.osbuild.koji.kdc /bin/bash
|
|
sudo podman exec -it org.osbuild.koji.kojid /bin/bash
|
|
```
|
|
|
|
## Creating a compose
|
|
The `compose.py` client can be used to create a compose via the koji plugins:
|
|
```
|
|
./compose.py --plain fedora 32 f32-candidate x86_64 --repo 'http://download.fedoraproject.org/pub/fedora/linux/releases/32/Everything/$arch/os/'
|
|
```
|
|
|
|
## Development
|
|
|
|
### Useful links
|
|
|
|
- [koji source](https://pagure.io/koji/tree/master)
|
|
- [koji plugin howto](https://docs.pagure.org/koji/writing_a_plugin/)
|
|
- [koji server howto](https://docs.pagure.org/koji/server_howto/)
|
|
- [koji server bootstrap](https://docs.pagure.org/koji/server_bootstrap/)
|
|
- [osbs koji plugin](https://github.com/containerbuildsystem/koji-containerbuild/)
|