I’ve just joined the community this week and I am still somewhat unsure about how Universal Blue and Fedora Atomic work. I work as a software engineer and I do have knowledge of containers and cloud concepts. I understand the layers involved for the OS and the userspace, although how all of this works is still a bit unclear to me.
Anyway, what I would like to do is have my custom image based on Aurora (or perhaps another Universal Blue image). From what I understand, once I have an image, I can rebase my OS with rpm-ostree rebase <IMAGE-URL>. So a typical setup process for a new computer would be to first install Aurora from the official image, then run that rpm-ostree command to “migrate” to my custom image. Is this correct?
As for building my custom image, I’ve read about BlueBuild and I’ve also seen the image templates. In addition, this guide seems helpful, but it is for the official Universal Blue images.
Could someone guide me in the right direction? Maybe some Git repository as an example or some guide(s) I’ve missed.
IF you want to create a custom image based on uBlue image, then I would recommend the image template repo. Just fork that and then create the containerfile to get started.
The repo has github actions preset so you can start building your images in github without any big hassle. Just remember to do the signing part of the README and you should be good to go.
Just as inffy said, you can start by forking the image-template repo and managing the Containerfile as you see fit. The actions are all set up but you might want to make some adjustments yourself.
Another option is to use the BlueBuild Template. Personally I found this easier to work with as I wasn’t very familiar with Containerfiles.
You can define which images you want to base your custom image on, such as Bluefin/Aurora or Bazzite or even the UBlue base images.
To eventually migrate to your custom image, yeah, you will need to rebase twice: first to an unsigned image and then to the signed image. The instructions are in the template READMEs.