Buckaroogeek (talk | contribs) (Created page with "{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.<br/> '''Copy the source to a ''new page'' before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.'''}} {{admon/tip | Guidance | For details on how to fill out this form, see the [https://docs.fedoraproject.org/en-US/program_management/change...") |
Buckaroogeek (talk | contribs) (Initial draft) |
||
Line 1: | Line 1: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
Line 12: | Line 6: | ||
== Summary == | == Summary == | ||
Cri-o and cri-tools | 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 == | == Owner == | ||
Line 48: | Line 42: | ||
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. | 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". | 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 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. | 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. | ||
Line 58: | Line 52: | ||
== Benefit to Fedora == | == 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 completes the changes needed to uncouple Fedora releases and Kubernetes versions. | |||
== Scope == | == Scope == | ||
* Proposal owners: | * 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) | |||
* Policies and guidelines: N/A (not needed for this Change) | |||
* Trademark approval: N/A (not needed for this Change) | * Trademark approval: N/A (not needed for this Change) | ||
* Alignment with the Fedora Strategy: | * Alignment with the Fedora Strategy: This proposal enhances Fedora's strengths in Technology and Innovation as it allows 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 == | == 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. | |||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 114: | Line 74: | ||
<!-- This is an optional step for system-wide changes to avail of. If you would like to build an initial proof of concept of your change and have a member of Fedora QA help you write and/or run some initial basic tests on your code, please email tests@fedoraproject.org and include the link to your change proposal. This step is *optional*. --> | <!-- This is an optional step for system-wide changes to avail of. If you would like to build an initial proof of concept of your change and have a member of Fedora QA help you write and/or run some initial basic tests on your code, please email tests@fedoraproject.org and include the link to your change proposal. This step is *optional*. --> | ||
Do you require 'QA Blueprint' support? | Do you require 'QA Blueprint' support? N <!-- Optional Step for System-Wide Changes only --> | ||
== How To Test == | == How To Test == | ||
# 1. Install a versioned cri-o or cri-tools package on a fresh instance of Fedora. Install should be error free. | |||
# 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. | |||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
== User Experience == | == User Experience == | ||
The user experience should remain unchanged except for the need to select a specific version of cri-o or cri-tools. | |||
== Dependencies == | == 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. | |||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 162: | Line 105: | ||
== Documentation == | == Documentation == | ||
The Kubernetes section of Fedora Quick Docs (https://docs.fedoraproject.org/en-US/quick-docs/using-kubernetes/) can be expanded as needed. | |||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> |
Revision as of 15:42, 3 May 2024
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
- Name: Peter Hunt
- Email: pehunt@redhat.com
- Name: Brad Smith
- Email: bradley.g.smith@gmail.com
Current status
- Targeted release: Fedora Linux 41
- Last updated: 2024-05-03
- [Announced]
- [<will be assigned by the Wrangler> Discussion thread]
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
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 completes the changes needed to uncouple Fedora releases and Kubernetes 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 allows 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. Install a versioned cri-o or cri-tools package on a fresh instance of Fedora. Install should be error free.
- 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)