F42 Change Proposal: Move Fedora CoreOS updates from OSTree to OCI (self-contained)

Move Fedora CoreOS updates from OSTree to OCI

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Wiki
Announced

:link: Summary

Change Fedora CoreOS to receive updates from Quay instead of the Fedora OSTree repository.

:link: Owner

:link: Detailed Description

Currently, Fedora CoreOS hosts pull updates from the OSTree repository. With this change, the hosts will pull updates from the Quay.io container registry instead. At first, this should be a transparent change. We will notably keep using rpm-ostree for updates (and not yet bootc).

This is preliminary work to switching to bootc to manage the system and will enable us to deliver the following changes in the future:

  • Moving from rpm-ostree to bootc, which only supports OCI.
  • Better support for mirroring updates in disconnected setups.
  • Moving away from maintaining a Cincinnati server towards having the graph live in an OCI registry alongside the update payload. This also allows users to maintain their own update graphs.
  • Users will be able to create their own customized versions of Fedora CoreOS by building a derived container image.

:link: Feedback

None yet.

:link: Benefit to Fedora

Alignment with the work happening in the Bootable Containers initiative.

:link: Scope

  • Proposal owners:

    • Publish an upgrade graph containing the digest pullspec for each FCOS release. This mirrors the current update graph containing the same information, but pointing at OSTree commit checksums.
    • Change new nodes on next to use OCI from the start.
    • After a number of FCOS releases, ship a migration script to switch existing next nodes to use OCI.
    • Repeat the last two steps for testing, and then stable.
    • Down the line, stop publishing new OSTree commits to the OSTree repo. This will not happen until at least f43.
  • Other developers: N/A (not needed for this Change)

  • Release engineering: N/A (not needed for this Change)

  • Policies and guidelines: N/A (not needed for this Change)

  • Trademark approval: N/A (not needed for this Change)

  • Alignment with the Fedora Strategy:

    • Part of the work to align with Bootable Containers

:link: Upgrade/compatibility impact

We will issue a barrier release to migrate users to switch to OCI images.

:link: How To Test

Once the changes are ready, it will be possible to test it on the next stream before it gets rolled out there. This can be done by switching a next node from the OSTree remote to the OCI remote:

rpm-ostree rebase ostree-remote-image:fedora:registry:quay.io/fedora/fedora-coreos:$NEXT_VERSION

where $NEXT_VERSION is a tag for a next release that’s not the latest. Then, watch Zincati fetch the latest next release using OCI.

:link: User Experience

This change won’t be visible to users running auto-updates, except cosmetic changes in rpm-ostree status output.

:link: Contingency Plan

Revert the change to switch back to the OSTree repo. Both will be active until the Fedora 43 release.

:link: Documentation

We will update the Fedora CoreOS documentation alongside the transition. This is currently tracked in: Move from OSTree to OCI for updates · Issue #1823 · coreos/fedora-coreos-tracker · GitHub.

:link: Release Notes

Last edited by @amoloney 2025-01-15T22:37:28Z

Last edited by @amoloney 2025-01-15T22:37:28Z

1 Like

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

I have been hacking at various aspects of immutable fedora in my personal time and I am very excited about bootc and how much more accessible it makes operating system customization for me.

2 Likes

This change proposal has now been submitted to FESCo with ticket #3359 for voting.

To find out more, please visit our Changes Policy documentation.

1 Like

This change has been accepted by FESCo for Fedora Linux 42. A full list of approved changes to date can be found on the Change Set Page.

To find out more about how our changes policy works, please visit our docs site.

1 Like