Fedora CoreOS preview released: fire the Ignition
Following the acquisition of CoreOS last year, Red Hat announced it would integrate CoreOS into its ecosystem. This was the birth of Fedora CoreOS, a great announcement, but no real build… until now. Fedora CoreOS is finally out, albeit as a preview. Let’s take a look at what it has to offer.
Fedora CoreOS: Containers + Linux + Fedora
The Fedora CoreOS team is excited to announce the first preview release of Fedora CoreOS, a new Fedora edition built specifically for running containerized workloads securely and at scale. It’s the successor to both Fedora Atomic Host and CoreOS Container Linux. Fedora CoreOS combines the provisioning tools, automatic update model, and philosophy of Container Linux with the packaging technology, OCI support, and SELinux security of Atomic Host.Fedora Magazine
Fedora CoreOS is a host operating system geared towards containers. Its main difference with its older brother, Fedora, is that it is an immutable operating system. Once provisioned the system is set to run and does not need frequent routine maintenance from a system administrator. The embodiment of the “pet vs cattle” metaphor.
The operating system solely exist to operate the machine and run containers on top of it. The main advantage from this approach is that there are fewer moving parts, that require less maintenance and expose an overall narrower attack surface. On top of that there is performance, a full-fledged general-purpose operating system may have hundreds of processes unrelated to containers that run concurrently and fight for CPU cycles, whilst a container host operating system usually has fewer processes to free up CPU and memory resources.
How to get started
Whether you run in the cloud, virtualized, or on bare metal, a Fedora CoreOS machine always begins from the same place: a generic OS image. Then, during the first boot, Fedora CoreOS uses Ignition to provision the system. Ignition reads an Ignition config from cloud user data or a remote URL, and uses it to create disk partitions and file systems, users, files and systemd units.
To provision a machine:
- Write a Fedora CoreOS Config (FCC), a YAML document that specifies the desired configuration of a machine. FCCs support all Ignition functionality, and also provide additional syntax (“sugar”) that makes it easier to specify typical configuration changes.
- Use the Fedora CoreOS Config Transpiler to validate your FCC and convert it to an Ignition config.
- Launch a Fedora CoreOS machine and pass it the Ignition config. If the machine boots successfully, provisioning has completed without errors.
The precedent paragraph is courtesy of Fedora Magazine. Unfortunately there is still a lack of documentation regarding new CoreOS but this will be addressed in the future. For the moment you can get started and if you already know your way around Ignition, you will find yourself right at home.
A few more things
- It its still a preview, use it with care.
Currently booting through PXE or LiveCD is not supported.
- The system will install a telemetry mechanism (there is a way to opt-out), but currently it doesn’t even work.
- Documentation is lacking.
- Atomic Host will continue to live for Fedora 29 lifecycle at least.
- To migrate from Container Linux you will need to provision the machine anew.