Fedora CoreOS graduates to public use
Fedora CoreOS is the successor to Atomic Host and CoreOS Container Linux. Following the acquisition of CoreOS in 2018, Red Hat announced it would integrate CoreOS into its ecosystem. This was the birth of Fedora CoreOS. On 17th Jan 2020 Fedora CoreOS is released for public use.
Fedora CoreOS at a glance
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.
Here are a few highlights:
- Features automatic updates with staged deployments and phased rollouts.
- Built on Fedora 31:
- Linux 5.4
- systemd 243
- Ignition 2.1
- Supports OCI and Docker Containers using Podman 1.7 and Moby 18.09 .
- Cgroups v1 are enabled by default, v2 configurable.
- Uses Fedora CoreOS Config (FCC) to define how a machine should be provisioned.
- FCC is transpiled to Ignition through Fedora CoreOS Config Transpiler.
- Available for majors virtualization platforms (VMware, QEMU, OpenStack), bare metal, PXE and major cloud vendors.
Is Fedora CoreOS stable yet?
According to developers, not yet. Fedora is a cutting-edge distribution. The challenges that building an operating system that deals with a fast-changing technology like containers imply will likely put Fedora CoreOS in a tight spot for quite some time. Nevertheless developers say they are focused on not breaking the system, but automatic updates and the technologies involved may not be crash-proof in the long run, as such breaking changes and regression may happen, hence use Fedora CoreOS with care.
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.