No description
Find a file
Tom Gundersen a416570ea2 schutzbot: add CI integration
The CI is in two stages, for each supported distro.

First the RPMs are generated from the spec file in the repo for the
given distro and architecture.

Once all the RPM builds have succeeded successfully, a test machine is
provisioned with osbulid-composer installed, and koji API enabled.

The repository containing the RPMs of the code being tested is also
enabled on the test machine, and the cli client is installed.

Finally, the test/integration.sh script is executed, which currently
does nothing.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-09-10 00:05:44 +02:00
container container: support for koji web 2020-09-07 20:38:12 +02:00
plugins plugin/cli: eager check of target input 2020-09-09 15:56:35 +02:00
schutzbot schutzbot: add CI integration 2020-09-10 00:05:44 +02:00
test schutzbot: add CI integration 2020-09-10 00:05:44 +02:00
.editorconfig .editorconfig: added 2020-09-05 16:34:41 +02:00
.gitignore initial import 2020-09-02 19:15:25 +02:00
compose.py Make image_type and distro required arguments 2020-09-08 16:13:48 +02:00
koji-osbuild.spec.in spec/cli: depend on koji 2020-09-10 00:05:44 +02:00
LICENSE LICENSE: add ASL 2.0 2020-09-06 16:02:54 +02:00
make-tags.sh make-tags: remove i686 from build tag 2020-09-05 19:27:55 +02:00
meson.build schutzbot: add CI integration 2020-09-10 00:05:44 +02:00
meson_options.txt Support for generating rpms via meson 2020-09-08 16:58:06 +02:00
osbuild-local.conf kerberos: add osbuild-local.conf 2020-09-05 16:32:50 +02:00
README.md README.md: add general description 2020-09-09 16:12:26 +02:00
run-builder.sh run-builder: inspect network to get gateway IP 2020-09-09 14:35:58 +02:00
run-koji-container.sh container: support for koji web 2020-09-07 20:38:12 +02:00

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

# 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