Skip to main content

Kurchu, the assembler (of Fedora/CentOS content)

Kurchu (కూర్చు) is a tool to assemble Fedora/CentOS resources to create artifact collections.

Introduction

When creating Linux distribution artifacts, a set of inputs, processing steps, and outputs need to be defined. This is typically defined as a set of configuration definitions as input, gathering repositories and building images as processing steps, and pushing it to a unified tree as an output.

Kurchu is one of those tools aimed at doing this with Fedora/CentOS resources. If you're familiar with Pungi, this operates in a similar space.

The goal of Kurchu is to provide a straightforward and declarative way to create artifact collections (which are called "composes") to host and even redistribute. This is in contrast to Pungi, which uses a custom script configuration engine to programmatically define how to construct a compose.

Design Overview

Kurchu offers three main steps (or phases in Pungi terms):

  • Gather
  • Compile
  • Furnish

Each step is defined independently from each other, and Kurchu can run with only some of the steps defined. It will skip undefined steps.

Gather step

The "gather" step is intended to gather inputs for the later steps. Currently, this is designed around capturing repository content to store for future steps.

Crucially, Kurchu can gather composes produced by Pungi, Bodhi (the Fedora updates system and EPEL compose tool), and the On-Demand Compose Service (the system used to create CentOS/RHEL composes).

In addition to gathering composes, it can also gather regular YUM repositories. This can be useful for incorporating add-on content into a complete content set.

Compile step

The "compile" step is intended to produce builds of operating system images. It will support orchestrating image builds remotely in a build system environment (such as Koji). The only currently planned image build tool to support is kiwi in Koji, but others could be added as needed.

Furnish step

The "furnish" step is intended to take all the outputs from earlier steps and publish it for external consumption. This may include compose metadata from Kurchu itself.

Dependencies

Build and install

Additional system-wide run-time dependencies

  • git
  • koji (with kiwi CLI plugin)
  • lftp
  • tree
  • s3cmd

Development

How to run

Install Poetry and use it to install dependencies with poetry install, then run:

poetry run kurchu

Licensing

This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, under version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Metadata

Release files for kurchu 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kurchu 0.4.3
File Size Uploaded
kurchu-0.4.3.tar.gz 20.5 kB Details

Release files / kurchu-0.4.3.tar.gz

Download URL kurchu-0.4.3.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f3a69b91fb8f5c1c04dcaeb794a0f597c75a698daf2a8145e7c23f87b8277512
BLAKE2b-256 checksum
How to use checksums
2ef80f8fd3a8d1902f1db1e842112797105488aeaa5b928a07c9dae99be1d364
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.4.3 This release

1 release file

0.4.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page