I propose a first, basic and straight forward article to explain basic concepts of Fedora IoT like OSTree, RPM-OSTree, OSTree-remotes and how it all works to build a first minimal custom Fedora IoT based OS on a local workstation. From there many more articles picking different details are possible.
Just as a initial list of ideas for a series of follow-up articles:
-
Manually constructing commits / manipulation of the FS
-
How to serve an OSTree remote with NGINX (file-serving configuration example / recommendations)
-
Tooling (osbuild, cosa, rose)
-
CI/CD for a Fedora IoT Remix on Gitlab CI
-
How to build flashable RAW images
-
How to build bootable Anaconda images
-
How to test commits / images with QEMU
-
Using deltas to speed up download times of updates
Sections
-
Broad introduction
-
Terminology
-
Pre-requisites / Tools
-
Setting up folders, repo(s) and sources
-
Building a Fedora IoT based Remix commit
-
Exploring / Playing around
-
Summary of what we did and what we learned
An exemplatory article on my personal blog: https://openalchem.ist/essays/building-a-fedora-iot-ostree
Documentation:
Details
First I’d like to introduce everyone to the Fedora IoT eco-system from a technical perspective. Maybe a first mention of docs, community and other useful references and / or resources could be interesting. The reader should now be informed what Fedora IoT is and that we’ll be building an OS now or that at the end we’ll have an OS build on our workstation.
Next some crucial terminology should be explained. What is OSTree as a project and as a tool. What is RPM-OSTree and why do we use it additionally? Maybe also what an OSTree remote is as a concept, althought we won’t actually work with remotes in this article, only with local repositories. Maybe we should also point out the difference between a git repostiory and an OSTree one because both use similar terminology and we might later want to use a git repo to track our ostree commit sources.
We need some tools to work with which we now explain how to install and use (basic usage examples).
We’ll need some folders and files to work with. Either we use an example git repo to clone for this to make it easier or provide some basics in the article.
With folders, files and OSTree repo(s) in place we can now go through the creation of a commit, basically a custom OS filesystem, based on the latest Fedora IoT branches.
After we build a commit we can explore the filesystem for a bit, explaining and showing some of the details that happend while building etc.
Last but not least we sum up what we did and what we learned.
We might also want to explain the build process in detail before actually building, don’t know when to do that at best. Are there other infos missing, that make it more targeted / suited for the Fedora (IoT) community?