No description
Find a file
Christian Kellner 9e98f10afc test/unit: extract common code
Create a new plugintest.PluginTest class that shares the plugin
loading code that is common to all plugin testing. Adapt the
existing (hub, builder) tests.
Also correct the name for test_builder.TestHubPlugin to
TestBuilderPlugin.
2020-09-14 13:06:52 +01:00
.github/workflows ci: run unit tests 2020-09-13 13:20:19 +02:00
container container/hub: sync with script via file 2020-09-10 18:41:13 +01:00
plugins plugin/builder: properly raise exceptions 2020-09-14 10:00:56 +02:00
schutzbot test: create a compose via koji 2020-09-10 18:41:13 +01:00
test test/unit: extract common code 2020-09-14 13:06:52 +01:00
.editorconfig .editorconfig: added 2020-09-05 16:34:41 +02:00
.gitignore gitignore: ignore __pycache__ 2020-09-13 13:20:19 +02:00
.pylintrc pylintrc: copied from osbuilid 2020-09-11 23:18:04 +01: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 dns realm map for osbuild-local.conf 2020-09-10 18:41:13 +01:00
README.md README.md: add general description 2020-09-09 16:12:26 +02:00
run-builder.sh run-builder: use jq instead of inspect --format 2020-09-10 18:41:13 +01:00
run-koji-container.sh run-koji-container: be more verbose 2020-09-10 18:41:13 +01:00
run-tests.sh run-test.sh: simple script to execute unit tests 2020-09-13 13:20:19 +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