Yes, it’s a container like an app container you would deploy on docker or kubernetes.
It starts with a dockerfile with a FROM fedora
, the difference is there’s an entire OS in there, with a kernel and everything. Then an action runs podman build
on that container every day, which is then shoved into an OCI registry (in this case ghcr.io).
Then instead of each client doing package updates via a package manager it effectively does the equivalent of a podman pull
on your laptop, and then stages the update for deployment on the device. Everything is running on the bare metal on the device, the cloud native part is the build process, pipeline, and delivery. Then rinse and repeat for updates.
It’s a bit like rancherOS except using podman.
The methodology IS cloud native, we didn’t invent this. 😼 People will update their terminology, we’re not doing anything new, Linux in infrastructure went through this a decade ago. It’s an update in vocabulary because it’s a shift away from the traditional distro model and has more in common with the rest of industry (k8s, docker, etc) than a desktop. The desktop is just the payload.
We know some people will complain but whatever, it’s our job to help people understand the tech and there are proper definitions for this stuff - The whole “immutables” or whatever slang people are making up doesn’t really make sense but we can’t control what people think, we can just do our thing and keep pushing out updates.
RancherOS doesn’t exist anymore, but a difference here is everything on the machine runs on the metal except whatever workload you have. Here’s people who do a way better job explaining it:
Our systems share the same tooling as Fedora CoreOS so this is probably a better example. You can make custom server images – we build on top of that too, similar to Bazzite but for server nerds: https://github.com/ublue-os/ucore - basically if you can script it, you can make an OS image out of it. Here’s bootc upstream where people are hanging out: https://github.com/containers/bootc/discussions
Hope this helps!