THIS IS A PROOF OF CONCEPT REPOSITORY. MAIN CAN BE BROKEN AT ANY POINT AND MANY THINGS ARE SUBJECT TO CHANGE. WE'RE DISCUSSING DESIGN IN ISSUES AND PULL REQUESTS
We are still sketching out this potential approach to generating manifests and thus this repository is very much a work in progress.
This is the "Omnifest Toolkit", also known as otk
. A YAML transpiler to
take omnifest inputs and translate them into osbuild
manifests.
You can find otk
's documentation in the /doc subdirectory. This README contains a small summary of directly useful information.
€ python3 -m venv venv
€ . venv/bin/activate
€ pip install -e ".[dev]"
€ otk compile example/fedora/minimal-40-x86_64.yaml
# ...
# See `otk --help` for help.
There is documentation about the format and the available directives.
Read the examples to see what omnifests look like.
To check our code for basic problems we use pre-commit
The tool itself will be installed by the pip
command above (see Usage) after that you
should run
pre-commit install
After this the system automatically checks upon commit, or you can run it against the whole repository including all the tests with:
make test
To run the tests, you have to install the package (see Usage)
and call pytest
A list of current problems or things that just aren't that nice yet:
- How should we structure a distribution, the fedora really isn't that pretty yet.
- Defining the protocol of JSON that is sent between an
otk.external
and the main process. They'll likely need the entire tree.
- Omnifests are valid YAML, no preprocessing is done on them.
- No introspection of the tree.
- No language-specific quirks in the directives (e.g.
eval
).
- Website: https://www.osbuild.org
- Bug Tracker: https://github.com/osbuild/otk/issues
- Matrix: #image-builder on fedoraproject.org
- Mailing List: image-builder@redhat.com
- Changelog: https://github.com/osbuild/otk/releases