{"id":18746681,"url":"https://github.com/cri-o/packaging","last_synced_at":"2026-03-15T12:56:32.863Z","repository":{"id":195721479,"uuid":"693295319","full_name":"cri-o/packaging","owner":"cri-o","description":"CRI-O deb and rpm packages.","archived":false,"fork":false,"pushed_at":"2026-03-05T07:59:05.000Z","size":789,"stargazers_count":47,"open_issues_count":3,"forks_count":15,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-03-05T12:42:42.437Z","etag":null,"topics":["cri-o","deb","rpm"],"latest_commit_sha":null,"homepage":"https://cri-o.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cri-o.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-18T18:34:08.000Z","updated_at":"2026-03-05T07:59:01.000Z","dependencies_parsed_at":"2023-10-24T17:32:56.840Z","dependency_job_id":"4c03717c-809e-47f1-a314-6119cdd578e3","html_url":"https://github.com/cri-o/packaging","commit_stats":null,"previous_names":["cri-o/packaging"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cri-o/packaging","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cri-o%2Fpackaging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cri-o%2Fpackaging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cri-o%2Fpackaging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cri-o%2Fpackaging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cri-o","download_url":"https://codeload.github.com/cri-o/packaging/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cri-o%2Fpackaging/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30541933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T12:15:27.454Z","status":"ssl_error","status_checked_at":"2026-03-15T12:15:26.919Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cri-o","deb","rpm"],"created_at":"2024-11-07T16:26:30.591Z","updated_at":"2026-03-15T12:56:32.856Z","avatar_url":"https://github.com/cri-o.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CRI-O Packaging\n\n[![Publish package](https://img.shields.io/badge/publish-package-blue?logo=task\u0026logoColor=white)](https://github.com/cri-o/packaging/actions/workflows/obs.yml)\n[![OBS workflow](https://github.com/cri-o/packaging/actions/workflows/obs.yml/badge.svg)](https://github.com/cri-o/packaging/actions/workflows/obs.yml)\n[![Schedule workflow](https://github.com/cri-o/packaging/actions/workflows/schedule.yml/badge.svg)](https://github.com/cri-o/packaging/actions/workflows/schedule.yml)\n[![Test workflow](https://github.com/cri-o/packaging/actions/workflows/test.yml/badge.svg)](https://github.com/cri-o/packaging/actions/workflows/test.yml)\n\nThe intention of this project is to encapsulate CRI-O's packaging efforts into a\ndedicated repository, following official Kubernetes guidelines by using the\n[openSUSE Build Service (OBS)](https://build.opensuse.org).\n\n\u003c!-- toc --\u003e\n\n- [Project Layout](#project-layout)\n  - [Stable Versions](#stable-versions)\n  - [Prereleases](#prereleases)\n- [Usage](#usage)\n  - [Available Streams](#available-streams)\n    - [Stable](#stable)\n      - [Deprecated](#deprecated)\n    - [Prerelease](#prerelease)\n      - [Deprecated](#deprecated-1)\n    - [Define the Kubernetes version and used CRI-O stream](#define-the-kubernetes-version-and-used-cri-o-stream)\n  - [Distributions using \u003ccode\u003erpm\u003c/code\u003e packages](#distributions-using-rpm-packages)\n    - [Add the Kubernetes repository](#add-the-kubernetes-repository)\n    - [Add the CRI-O repository](#add-the-cri-o-repository)\n    - [Install package dependencies from the official repositories](#install-package-dependencies-from-the-official-repositories)\n    - [Install the packages](#install-the-packages)\n  - [Distributions using \u003ccode\u003edeb\u003c/code\u003e packages](#distributions-using-deb-packages)\n    - [Install the dependencies for adding repositories](#install-the-dependencies-for-adding-repositories)\n    - [Add the Kubernetes repository](#add-the-kubernetes-repository-1)\n    - [Add the CRI-O repository](#add-the-cri-o-repository-1)\n    - [Install the packages](#install-the-packages-1)\n- [After Installation](#after-installation)\n  - [Configure a Container Network Interface (CNI) plugin](#configure-a-container-network-interface-cni-plugin)\n  - [Start CRI-O](#start-cri-o)\n  - [Bootstrap a cluster](#bootstrap-a-cluster)\n- [Publishing](#publishing)\n- [Using the static binary bundles directly](#using-the-static-binary-bundles-directly)\n- [Uninstall the static binary bundles](#uninstall-the-static-binary-bundles)\n- [CRI-O bundles as OCI artifacts](#cri-o-bundles-as-oci-artifacts)\n- [More to read](#more-to-read)\n\u003c!-- /toc --\u003e\n\n## Project Layout\n\nCRI-O uses the same basic layout in OBS as Kubernetes project [`isv:kubernetes`](https://build.opensuse.org/project/show/isv:kubernetes),\nbut lives in a dedicated umbrella project called [`isv:cri-o`](https://build.opensuse.org/project/show/isv:cri-o).\n\nThis project contains a bunch of other [subprojects](https://build.opensuse.org/project/subprojects/isv:cri-o).\n\n\u003e [!CAUTION]\n\u003e We switched from `https://pkgs.k8s.io/addons:/cri-o` to a new subproject\n\u003e `https://download.opensuse.org/repositories/isv:/cri-o` to work independently\n\u003e from the pkgs.k8s.io CDN. Please switch over if you haven't already (see the\n\u003e examples below).\n\n### Stable Versions\n\n\u003e [!NOTE]\n\u003e This list may contain yet-to-be-released versions of CRI-O. See\n\u003e [CRI-O releases](https://github.com/cri-o/cri-o/releases) for the latest stable release.\n\n- [`isv:cri-o:stable`](https://build.opensuse.org/project/show/isv:cri-o:stable): Stable Packages (Umbrella)\n  - [`isv:cri-o:stable:v1.36`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.36): `v1.36.z` tags (Stable)\n    - [`isv:cri-o:stable:v1.36:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.36:build): `v1.36.z` tags (Builder)\n  - [`isv:cri-o:stable:v1.35`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.35): `v1.35.z` tags (Stable)\n    - [`isv:cri-o:stable:v1.35:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.35:build): `v1.35.z` tags (Builder)\n  - [`isv:cri-o:stable:v1.34`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.34): `v1.34.z` tags (Stable)\n    - [`isv:cri-o:stable:v1.34:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.34:build): `v1.34.z` tags (Builder)\n  - [`isv:cri-o:stable:v1.33`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.33): `v1.33.z` tags (Stable)\n    - [`isv:cri-o:stable:v1.33:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.33:build): `v1.33.z` tags (Builder)\n  - **End of life:**\n    - [`isv:cri-o:stable:v1.32`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.32): `v1.32.z` tags (Stable)\n      - [`isv:cri-o:stable:v1.32:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.32:build): `v1.32.z` tags (Builder)\n    - [`isv:cri-o:stable:v1.31`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.31): `v1.31.z` tags (Stable)\n      - [`isv:cri-o:stable:v1.31:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.31:build): `v1.31.z` tags (Builder)\n    - [`isv:cri-o:stable:v1.30`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.30): `v1.30.z` tags (Stable)\n      - [`isv:cri-o:stable:v1.30:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.30:build): `v1.30.z` tags (Builder)\n    - [`isv:cri-o:stable:v1.29`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.29): `v1.29.z` tags (Stable)\n      - [`isv:cri-o:stable:v1.29:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.29:build): `v1.29.z` tags (Builder)\n    - [`isv:cri-o:stable:v1.28`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.28): `v1.28.z` tags (Stable)\n      - [`isv:cri-o:stable:v1.28:build`](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.28:build): `v1.28.z` tags (Builder)\n\n### Prereleases\n\n- [`isv:cri-o:prerelease`](https://build.opensuse.org/project/show/isv:cri-o:prerelease): Prerelease Packages (Umbrella)\n  - [`isv:cri-o:prerelease:main`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:main): [`main`](https://github.com/cri-o/cri-o/commits/main) branch (Prerelease)\n    - [`isv:cri-o:prerelease:main:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:main:build): [`main`](https://github.com/cri-o/cri-o/commits/main) branch (Builder)\n  - [`isv:cri-o:prerelease:v1.36`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.36): [`release-1.36`](https://github.com/cri-o/cri-o/commits/release-1.36) branch (Prerelease)\n    - [`isv:cri-o:prerelease:v1.36:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.36:build): [`release-1.36`](https://github.com/cri-o/cri-o/commits/release-1.36) branch (Builder)\n  - [`isv:cri-o:prerelease:v1.35`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.35): [`release-1.35`](https://github.com/cri-o/cri-o/commits/release-1.35) branch (Prerelease)\n    - [`isv:cri-o:prerelease:v1.35:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.35:build): [`release-1.35`](https://github.com/cri-o/cri-o/commits/release-1.35) branch (Builder)\n  - [`isv:cri-o:prerelease:v1.34`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.34): [`release-1.34`](https://github.com/cri-o/cri-o/commits/release-1.34) branch (Prerelease)\n    - [`isv:cri-o:prerelease:v1.34:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.34:build): [`release-1.34`](https://github.com/cri-o/cri-o/commits/release-1.34) branch (Builder)\n  - [`isv:cri-o:prerelease:v1.33`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.33): [`release-1.33`](https://github.com/cri-o/cri-o/commits/release-1.33) branch (Prerelease)\n    - [`isv:cri-o:prerelease:v1.33:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.33:build): [`release-1.33`](https://github.com/cri-o/cri-o/commits/release-1.33) branch (Builder)\n  - **End of life:**\n    - [`isv:cri-o:prerelease:v1.32`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.32): [`release-1.32`](https://github.com/cri-o/cri-o/commits/release-1.32) branch (Prerelease)\n      - [`isv:cri-o:prerelease:v1.32:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.32:build): [`release-1.32`](https://github.com/cri-o/cri-o/commits/release-1.32) branch (Builder)\n    - [`isv:cri-o:prerelease:v1.31`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.31): [`release-1.31`](https://github.com/cri-o/cri-o/commits/release-1.31) branch (Prerelease)\n      - [`isv:cri-o:prerelease:v1.31:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.31:build): [`release-1.31`](https://github.com/cri-o/cri-o/commits/release-1.31) branch (Builder)\n    - [`isv:cri-o:prerelease:v1.30`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.30): [`release-1.30`](https://github.com/cri-o/cri-o/commits/release-1.30) branch (Prerelease)\n      - [`isv:cri-o:prerelease:v1.30:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.30:build): [`release-1.30`](https://github.com/cri-o/cri-o/commits/release-1.30) branch (Builder)\n    - [`isv:cri-o:prerelease:v1.29`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.29): [`release-1.29`](https://github.com/cri-o/cri-o/commits/release-1.29) branch (Prerelease)\n      - [`isv:cri-o:prerelease:v1.29:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.29:build): [`release-1.29`](https://github.com/cri-o/cri-o/commits/release-1.29) branch (Builder)\n    - [`isv:cri-o:prerelease:v1.28`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.28): [`release-1.28`](https://github.com/cri-o/cri-o/commits/release-1.28) branch (Prerelease)\n      - [`isv:cri-o:prerelease:v1.28:build`](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.28:build): [`release-1.28`](https://github.com/cri-o/cri-o/commits/release-1.28) branch (Builder)\n\nThe `prerelease` projects are mainly used for `release-x.y` branches as well as\nthe `main` branch of CRI-O. The `stable` projects are used for tagged releases.\nThe `build` projects are the builders for each project to be published, while\nthe main repositories for them are on top. For example, the builder project for\n`main` is:\n\n- `isv:cri-o:prerelease:main:build`\n\nBut end-users will consume:\n\n- `isv:cri-o:prerelease:main`\n\nAll packages are based on the static binary bundles provided by the CRI-O CI.\n\n## Usage\n\n### Available Streams\n\n#### Stable\n\n[![v1.36](https://img.shields.io/badge/stable-v1.36-yellow?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.36)\n[![v1.35](https://img.shields.io/badge/stable-v1.35-brightgreen?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.35)\n[![v1.34](https://img.shields.io/badge/stable-v1.34-brightgreen?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.34)\n[![v1.33](https://img.shields.io/badge/stable-v1.33-brightgreen?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.33)\n\n##### Deprecated\n\n[![v1.32](https://img.shields.io/badge/end%20of%20life-v1.32-red?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.32)\n[![v1.31](https://img.shields.io/badge/end%20of%20life-v1.31-red?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.31)\n[![v1.30](https://img.shields.io/badge/end%20of%20life-v1.30-red?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.30)\n[![v1.29](https://img.shields.io/badge/end%20of%20life-v1.29-red?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.29)\n[![v1.28](https://img.shields.io/badge/end%20of%20life-v1.28-red?logo=github)](https://build.opensuse.org/project/show/isv:cri-o:stable:v1.28)\n\n#### Prerelease\n\n[![main](https://img.shields.io/badge/prerelease-main-blue?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:main)\n[![release-1.36](https://img.shields.io/badge/prerelease-release--1.36-blue?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.36)\n[![release-1.35](https://img.shields.io/badge/prerelease-release--1.35-blue?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.35)\n[![release-1.34](https://img.shields.io/badge/prerelease-release--1.34-blue?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.34)\n[![release-1.33](https://img.shields.io/badge/prerelease-release--1.33-blue?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.33)\n\n##### Deprecated\n\n[![release-1.32](https://img.shields.io/badge/end%20of%20life-release--1.32-red?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.32)\n[![release-1.31](https://img.shields.io/badge/end%20of%20life-release--1.31-red?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.31)\n[![release-1.30](https://img.shields.io/badge/end%20of%20life-release--1.30-red?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.30)\n[![release-1.29](https://img.shields.io/badge/end%20of%20life-release--1.29-red?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.29)\n[![release-1.28](https://img.shields.io/badge/end%20of%20life-release--1.28-red?logo=git\u0026logoColor=white)](https://build.opensuse.org/project/show/isv:cri-o:prerelease:v1.28)\n\n#### Define the Kubernetes version and used CRI-O stream\n\n```bash\nKUBERNETES_VERSION=v1.35\nCRIO_VERSION=v1.35\n```\n\n### Distributions using `rpm` packages\n\n#### Add the Kubernetes repository\n\n```bash\ncat \u003c\u003cEOF | tee /etc/yum.repos.d/kubernetes.repo\n[kubernetes]\nname=Kubernetes\nbaseurl=https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/rpm/\nenabled=1\ngpgcheck=1\ngpgkey=https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/rpm/repodata/repomd.xml.key\nEOF\n```\n\n#### Add the CRI-O repository\n\n```bash\ncat \u003c\u003cEOF | tee /etc/yum.repos.d/cri-o.repo\n[cri-o]\nname=CRI-O\nbaseurl=https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/rpm/\nenabled=1\ngpgcheck=1\ngpgkey=https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/rpm/repodata/repomd.xml.key\nEOF\n```\n\n#### Install package dependencies from the official repositories\n\n```bash\ndnf install -y container-selinux\n```\n\n#### Install the packages\n\n```bash\ndnf install -y cri-o kubelet kubeadm kubectl\n```\n\n### Distributions using `deb` packages\n\n#### Install the dependencies for adding repositories\n\n```bash\napt-get update\napt-get install -y software-properties-common curl\n```\n\n#### Add the Kubernetes repository\n\n```bash\ncurl -fsSL https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/Release.key |\n    gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg\n\necho \"deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/ /\" |\n    tee /etc/apt/sources.list.d/kubernetes.list\n```\n\n#### Add the CRI-O repository\n\n```bash\ncurl -fsSL https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/Release.key |\n    gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg\n\necho \"deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/ /\" |\n    tee /etc/apt/sources.list.d/cri-o.list\n```\n\n#### Install the packages\n\n```bash\napt-get update\napt-get install -y cri-o kubelet kubeadm kubectl\n```\n\n## After Installation\n\nThe following steps are common for both `rpm` and `deb` based distributions.\n\n### Configure a Container Network Interface (CNI) plugin\n\nCRI-O is capable of working with different [CNI plugins](https://github.com/containernetworking/cni),\nwhich may require a custom configuration. The CRI-O package ships a default\n[IPv4 and IPv6 (dual stack) configuration](templates/latest/cri-o/bundle/10-crio-bridge.conflist.disabled)\nfor the [`bridge`](https://www.cni.dev/plugins/current/main/bridge) plugin,\nwhich is disabled by default. The configuration can be enabled by renaming the\ndisabled configuration file in `/etc/cni/net.d`:\n\n```bash\nmv /etc/cni/net.d/10-crio-bridge.conflist.disabled /etc/cni/net.d/10-crio-bridge.conflist\n```\n\nThe bridge plugin is suitable for single-node clusters in CI and testing\nenvironments. Different CNI plugins are recommended to use CRI-O in production.\n\n### Start CRI-O\n\n```bash\nsystemctl start crio.service\n```\n\n### Bootstrap a cluster\n\n```bash\nswapoff -a\nmodprobe br_netfilter\nsysctl -w net.ipv4.ip_forward=1\n\nkubeadm init\n```\n\n## Publishing\n\nThe [`obs` GitHub action workflow](https://github.com/cri-o/packaging/actions/workflows/obs.yml)\ncan be used to manually trigger release for a CRI-O tag, a `release-x.y` branch\nor `main`. There is a [daily cron scheduled for release branches](.github/workflows/schedule.yml),\nbut it is also possible to trigger the package creation at a certain point in time. The\n`obs` pipeline will:\n\n1. Build a static binary bundle which contains all necessary files.\n   1 Upload the bundle to the CNCF [Google Cloud Storage Bucket][bucket] as well\n   as the [GitHub container image registry as OCI\n   artifacts](https://github.com/cri-o/packaging/pkgs/container/bundle).\n1. Push the bundle and [spec file](templates/latest/cri-o/cri-o.spec) into the\n   corresponding `build` project.\n1. Wait for the OBS builders to finish.\n1. Run package installation and usage tests for [Kubernetes](scripts/test-kubernetes)\n   and [available architectures](scripts/test-architectures) for various Distributions.\n1. Publish the packages into the top level project.\n\n## Using the static binary bundles directly\n\nWe always recommend to use `deb` and `rpm` packages over the static binary\nbundle, but for some reason packages may not be a good fit. Every run in the\n`obs` GitHub workflow will publish a static binary bundle on our [Google Cloud\nStorage Bucket][bucket], which contains all necessary binaries and\nconfigurations.\n\n[bucket]: https://console.cloud.google.com/storage/browser/cri-o/artifacts\n\nThis means that the latest available CRI-O `main` commit can be installed via\nour convenience script:\n\n```console\n\u003e curl https://raw.githubusercontent.com/cri-o/packaging/main/get | bash\n```\n\nThe script automatically verifies the uploaded sigstore signatures as well, if\nthe local system has [`cosign`](https://github.com/sigstore/cosign) available in\nits `$PATH`. The same applies to the [SPDX](https://spdx.org) based bill of\nmaterials (SBOM), which gets automatically verified if the\n[bom](https://sigs.k8s.io/bom) tool is in `$PATH`.\n\nBesides `amd64`, we also support the `arm64`, `ppc64le` and `s390x` bit\narchitectures. This can be selected via the script, too:\n\n```shell\ncurl https://raw.githubusercontent.com/cri-o/packaging/main/get | bash -s -- -a arm64\n```\n\nIt is also possible to select a specific git SHA or tag by:\n\n```shell\ncurl https://raw.githubusercontent.com/cri-o/packaging/main/get | bash -s -- -t v1.35.0\n```\n\nThe above script resolves to the download URL of the static binary bundle\ntarball matching the format:\n\n```text\nhttps://storage.googleapis.com/cri-o/artifacts/cri-o.$ARCH.$REV.tar.gz\n```\n\nWhere `$ARCH` can be `amd64`, `arm64`, `ppc64le` or `s390x` and `$REV`\ncan be any git SHA or tag.\n\nWe also provide a Software Bill of Materials (SBOM) in the [SPDX\nformat](https://spdx.org) for each bundle. The SBOM is available at the same URL\nlike the bundle itself, but suffixed with `.spdx`:\n\n```text\nhttps://storage.googleapis.com/cri-o/artifacts/cri-o.$ARCH.$REV.tar.gz.spdx\n```\n\n## Uninstall the static binary bundles\n\n```console\n\u003e curl https://raw.githubusercontent.com/cri-o/packaging/main/get | bash -s -- -u\n```\n\n## CRI-O bundles as OCI artifacts\n\nThe [`obs` GitHub action workflow](https://github.com/cri-o/packaging/actions/workflows/obs.yml)\npublishes OCI artifacts within [GitHub container image\nregistry](https://github.com/cri-o/packaging/pkgs/container/bundle). This means\nthat the whole bundle can be retrieved by consuming the OCI artifacts from\ntools like [Podman](https://podman.io) or [ORAS](https://oras.land). All\nartifacts are pushed as multi-architecture OCI image indexes, which means that\nthe corresponding tool can download the right architecture on the target\nplatform immediately. The following tags are available:\n\n- `latest`, `main`: References the latest available commit on the CRI-O `main`\n  branch, for example:\n  - [`ghcr.io/cri-o/bundle:main`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:main)\n  - [`ghcr.io/cri-o/bundle:latest`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:latest)\n\n- A specific tag:\n  - [`ghcr.io/cri-o/bundle:v1.33.0`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.33.0)\n  - [`ghcr.io/cri-o/bundle:v1.32.4`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.32.4)\n  - [`ghcr.io/cri-o/bundle:v1.31.8`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.31.8)\n  - [`ghcr.io/cri-o/bundle:v1.30.13`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.30.13)\n\n- A certain commit in long and short (7 characters) format:\n  - [`ghcr.io/cri-o/bundle:17ac08c0c9976930f7d66896307bf46249223b1c`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:17ac08c0c9976930f7d66896307bf46249223b1c)\n  - [`ghcr.io/cri-o/bundle:17ac08c`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:17ac08c)\n\n- The latest minor version, release branch or development version:\n  - [`ghcr.io/cri-o/bundle:v1.32`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.32)\n  - [`ghcr.io/cri-o/bundle:release-1.32`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:release-1.32)\n  - [`ghcr.io/cri-o/bundle:v1.32.0-dev`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.32.3-dev)\n\n- The architecture derivates of the above:\n  - [`ghcr.io/cri-o/bundle:main-arm64`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:main-arm64)\n  - [`ghcr.io/cri-o/bundle:latest-ppc64le`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:latest-ppc64le)\n  - [`ghcr.io/cri-o/bundle:17ac08c0c9976930f7d66896307bf46249223b1c-s390x`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:17ac08c0c9976930f7d66896307bf46249223b1c-s390x)\n  - [`ghcr.io/cri-o/bundle:17ac08c-amd64`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:17ac08c-amd64)\n  - [`ghcr.io/cri-o/bundle:v1.32-amd64`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.32-amd64)\n  - [`ghcr.io/cri-o/bundle:release-1.32-arm64`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:release-1.32-arm64)\n  - [`ghcr.io/cri-o/bundle:v1.32.0-dev-s390x`](https://explore.ggcr.dev/?image=ghcr.io/cri-o/bundle:v1.32.3-dev-s390x)\n\nAll artifacts are annotated by corresponding metadata to allow proper\nidentification:\n\n```console\n\u003e oras manifest fetch ghcr.io/cri-o/bundle:main | jq .annotations\n{\n  \"org.cncf.cri-o.branch\": \"main\",\n  \"org.cncf.cri-o.commit\": \"2fe75a93f6526cf5c649476692cdecfc982e13e8\",\n  \"org.cncf.cri-o.project\": \"main\",\n  \"org.cncf.cri-o.version\": \"v1.33.0-dev\",\n  \"org.opencontainers.image.created\": \"2025-05-06T01:37:13Z\"\n}\n```\n\nThe artifacts are also signed by [sigstore](https://www.sigstore.dev/):\n\n```console\n\u003e cosign verify \\\n        --certificate-identity https://github.com/cri-o/packaging/.github/workflows/obs.yml@refs/heads/main \\\n        --certificate-oidc-issuer https://token.actions.githubusercontent.com \\\n        ghcr.io/cri-o/bundle:main\n\n…\n```\n\nThe corresponding Software Bill of Materials (SBOM) is attached to the related\nartifact:\n\n```console\n\u003e oras discover --platform linux/amd64 ghcr.io/cri-o/bundle:main\n\nghcr.io/cri-o/bundle@sha256:71c6fbca2330d73faeda5632bc8e1f137ecefc0faee644013009fd3104db146b\n└── application/vnd.cncf.spdx.file.v1\n    └── sha256:ca4ca75e9999997e5ab753bd606f81115678f67891611906d9a0ecfad42dfe07\n        └── [annotations]\n            ├── org.cncf.cri-o.project: main\n            ├── org.cncf.cri-o.version: v1.33.0-dev\n            ├── org.opencontainers.image.created: \"2025-04-25T01:37:00Z\"\n            ├── org.cncf.cri-o.branch: main\n            └── org.cncf.cri-o.commit: 17ac08c0c9976930f7d66896307bf46249223b1c\n\n\u003e oras pull $(oras discover --platform linux/amd64 --format json ghcr.io/cri-o/bundle:main | jq -r .referrers[0].reference)\n…\n```\n\n## More to read\n\nThe following resources are great to understand the motivation behind the latest\n`deb` and `rpm` packaging efforts within the CRI-O and Kubernetes community:\n\n- **CRI-O is moving towards pkgs.k8s.io**:\n\n  https://k8s.io/blog/2023/10/10/cri-o-community-package-infrastructure\n\n- **Kubernetes Legacy Package Repositories Will Be Frozen On September 13, 2023**:\n\n  https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/\n\n- **pkgs.k8s.io: Introducing Kubernetes Community-Owned Package Repositories**:\n\n  https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/\n\n- **Installing Kubernetes via `kubeadm`**:\n\n  https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#dpkg-k8s-package-repo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcri-o%2Fpackaging","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcri-o%2Fpackaging","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcri-o%2Fpackaging/lists"}