From Fedora Project Wiki


Multiple Versioned CRI-O and CRI-Tools Packages

Summary

The installed versions of CRI-O and CRI-Tools are supposed to match the version of Kubernetes that they are deployed with. FESCo recently approved multiple, versioned packages for Kubernetes (https://fedoraproject.org/wiki/Changes/VersionedKubernetesPackages). This Change Request, if approved, will allow Fedora to also provide matchin versions of CRI-O and CRI-Tools for Kubernetes administrators that use Fedora as the base machine OS.

Owner

Current status

Detailed Description

Both CRI-O (https://src.fedoraproject.org/rpms/cri-o, upstream: https://github.com/cri-o/cri-o) and CRI-Tools (https://src.fedoraproject.org/rpms/cri-tools, upstream: https://github.com/kubernetes-sigs/cri-tools) are designed to version match the version of Kubernetes they are deployed with. Version matching is a guarantee to Kubernetes administrators that these components use the same API version of the target Kubernetes installation.

Starting in Fedora 41, users will be able to install any supported version of Kubernetes (typically 3 concurrent, supported versions) using, for example, "dnf install kubernetes1.30". This Change, if approved would allow the user to also install CRI-O and/or CRI-Tools with the same version, i.e. "dnf install cri-o1.30 kubernetes1.30" or "dnf install cri-tools1.30" to work with any version 1.30 CRI (Container Runtime Interface) implementation.

CRI-O is a well-regarded CRI implementation. Each Kubernetes cluster requires a CRI implementation such as cri-o to function. Alternatives include containerd or Docker Engine among others.

CRI-Tools contains the crictl command line interface tool that provides a CLI for CRI-compatible container runtimes. This allows the CRI runtime developers to debug their runtime without needing to set up Kubernetes components.

Feedback

TBD

Benefit to Fedora

Enthusiasts and kubernetes administrators and developers will have access to the full stack of properly versioned components to install and manage a Kubernetes cluster directly from Fedora repositories. All supported versions of Kubernetes and related components such as CRI-O and CRI-Tools will be available in each of the supported releases of Fedora, starting with Fedora 41.

The past practice of tying a specific version of Kubernetes to a release of Fedora created an unnecessary tight coupling between Fedora and Kubernetes for cluster administrators and developers. In order to change the version of either Kubernetes or Fedora, the version of the other component also needed to change. This proposal provides changes that finalize the uncoupling of Fedora releases and Kubernetes cluster versions.

Scope

  • Proposal owners: Request appropriate src.fedoraproject.org repositories from Fedora engineering and maintain those repositories.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: This proposal enhances Fedora's strengths in Technology and Innovation as it enhances the use of Fedora to function as the machine OS for any supported version of Kubernetes and as the administrator's workstation for all supported Kubernetes clusters regardless of where the cluster is deployed.

Upgrade/compatibility impact

The shift from the existing model to the versioned model could create friction for current users of CRI-O or CRI-Tools on Fedora. Proper use of Provides and Obsoletes in the spec files as well as a supporting communication plan will help to reduce those complications.


Early Testing (Optional)

Do you require 'QA Blueprint' support? N

How To Test

  1. 1. Install a versioned CRI-O or CRI-Tools package on a fresh instance of Fedora. Install should be error free.
  2. 2. On an existing Fedora machine, replace a non-versioned CRI-O or CRI-Tools package with a versioned package. There should not be any errors.


User Experience

The user experience should remain unchanged except for the need to select a specific version of CRI-O or CRI-Tools.



Dependencies

No direct dependencies. If Kubernetes is installed and used then CRI-O and Kubernetes should have the same major:minor version. As a command line tool, the version of CRI-Tools will be selected by the user based on their specific requirements and needs.


Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

The Kubernetes section of Fedora Quick Docs (https://docs.fedoraproject.org/en-US/quick-docs/using-kubernetes/) can be expanded as needed.

N/A (not a System Wide Change)

Release Notes