Kernel Git Repository Information
There are many source-git and dist-git repositories that are used to construct Red Hat kernels. Some of these repositories are used for testing (CKI), but most of these repositories are used for code that is shipped to customers. Red Hat kernel git repositories use ‘main’ in place of git’s default ‘master’ branch.
source-git repositories
The source-git repositories house the main code base, while the dist-git repositories maintain everything for source RPMs including the specs and lookaside cache. See the dist-git repo for more information on how this works.
Public source-git repositories can be used by Red Hat contributors, Community Contributors, and all Partner Engineer contributors. Private source-git repositories are restricted to Red Hat contributors and Partner contributors. The dist-git repositories are updated via automations so public interaction with them typically can not occur.
The general model of these repositories is that the main branch tracks the current minor development, and other branches track old minor development (commonly referred to as ‘z-stream’). Some repositories may also contain Real Time kernel branches that are tagged with “-rt”.
For example, the rhel-8 repository contains branches and the main branch (as of writing this section) is for 8.5 development
remotes/origin/8.0 + remotes/origin/8.1 + remotes/origin/8.2 + remotes/origin/8.2-rt + remotes/origin/8.3 + remotes/origin/8.3-rt + remotes/origin/8.4 + remotes/origin/8.4-rt + remotes/origin/HEAD -> origin/main + remotes/origin/main + remotes/origin/main-rt
Public
-
CentOS-Stream 10 kernel for general and future RHEL10 development
-
CentOS-Stream 9 kernel for general and future RHEL9 development
-
CentOS-Stream 8 kernel for future RHEL8 development
-
Kernel tools – a collection of useful tools and scripts including git-backport tool
Private
Private repositories contain Red Hat private information and partner data and are restricted to Red Hat employees only. These repositories will never be made public.
-
-
See CentOS-Stream for tree location for main development. The CentOS-Stream 10 repository should be used for general development. The RHEL-10 tree contains only z-stream branches.
-
-
-
Future tree for RHEL-9 development. See CentOS-Stream for tree location for main development. The CentOS-Stream 9 repository should be used for general development. The RHEL-9 tree only contains z-stream branches.
-
-
-
Private, but various sanitized versions exist through CentOS-Stream or the partner program.
-
-
RHEL-alt-7 (archived)
-
Embargoed – with additional restricted access.
-
In some cases, these are Red Hat internal only. Used to resolve CVE and other partner-related embargoed issues.
-
Private Sandbox
Useful to test webhooks, internal scripts, user process, user’s scripts, etc.
dist-git repositories
Public source-git repositories can be used by Red Hat contributors, Community Contributors, and all Partner Engineer contributors. Private source-git repositories are restricted to Red Hat contributors and Partner contributors. The dist-git repositories are updated via automations so public interaction with them typically can not occur.
| Name | Location | Type |
|---|---|---|
CentOS-Stream 8 and above |
Public |
|
RHEL 7.9 and above |
Private (internal) |
|
All dist-git repos |
Private (internal) |
Notes;
-
pkgs.devel.redhat.com is still in use, but not typically interacted with. It contains all dist-git repos including as far back as RHEL 3.
-
Mirroring occurs between y-stream dist-git branches between CentOS-Stream and RHEL dist-git.
CI repositories
The kernel workflow relies heavily on CI automation which is implemented in various repositories under the CKI namespace.
| Name | Type | Description |
|---|---|---|
public |
All CKI code repositories |
|
public |
Main repository of the CKI pipeline implementation. When in doubt, use this to report issues. |
|
public group, specific projects restricted |
Pipeline runs and logs. People don’t need to access the projects directly but through merge request links unless setting things up. |
DataWarehouse
DataWarehouse is the CKI database and dashboard. It includes build and test information for all non-embargoed CKI runs. Data for public kernels (upstream, CentOS Stream) is publicly readable, access to RHEL kernel data requires sign in with Red Hat SSO.
| Name | Type | Description |
|---|---|---|
Public |
CKI database and dashboard. |
Test Repositories
The centos-stream/tests/kernel namespace contains various repositories related to kernel testing, the most prominent of which are listed below. Each of these repositories allow public contributions via merge request, which must be approved by a member of the Red Hat CKI team. All merge requests are gated on a standard set of linting checks, in addition to verifying that internal contributors do not commit code exposing internal URLs not permitted by the info/allowed-hosts.txt file.
| Name | Type | Description |
|---|---|---|
Public |
Test code for the kernel and its associated userspace components |
|
Public |
A collection of YAML and Jinja2 templates describing the tests CKI project runs on Linux kernels, conditions for running them, and where to run them. |
|
Public definitions, internal pipelines |
A collection of Gitlab CI pipeline definitions that are used by Red Hat quality engineers to test the kernel beyond the scope of CKI. While the definitions are publicly viewable, all pipeline execution are internal-only. |