Gathers Fedora/CentOS resources to create artifact collections
Project description
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/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kurchu-0.4.3.tar.gz
.
File metadata
- Download URL: kurchu-0.4.3.tar.gz
- Upload date:
- Size: 20.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f3a69b91fb8f5c1c04dcaeb794a0f597c75a698daf2a8145e7c23f87b8277512
|
|
MD5 |
9b753146ee6d0275e083fc1302fc78da
|
|
BLAKE2b-256 |
2ef80f8fd3a8d1902f1db1e842112797105488aeaa5b928a07c9dae99be1d364
|