Skip to content

Commit

Permalink
Merge pull request cri-o#7924 from kannon92/installation-instructions
Browse files Browse the repository at this point in the history
add a more clear pointer to what is supported for packaging
  • Loading branch information
openshift-merge-bot[bot] committed Mar 25, 2024
2 parents 941938a + 39b3003 commit 93b05e5
Show file tree
Hide file tree
Showing 2 changed files with 142 additions and 150 deletions.
136 changes: 136 additions & 0 deletions install-legacy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# Legacy Installation Instructions

## openSUSE

```shell
sudo zypper install cri-o
```

## Fedora 31 or later

```shell
sudo dnf module enable cri-o:$VERSION
sudo dnf install cri-o
```

For Fedora, we only support setting minor versions. i.e: `VERSION=1.18`,
and do not support pinning patch versions: `VERSION=1.18.3`

Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:

```shell
sudo dnf install containernetworking-plugins
```

## Other yum based operating systems

To install on the following operating systems, set the environment variable ```$OS```
to the appropriate value from the following table:

| Operating system | $OS |
| ---------------- | ----------------- |
| Centos 9 Stream | `CentOS_9_Stream` |
| Centos 8 | `CentOS_8` |
| Centos 8 Stream | `CentOS_8_Stream` |
| Centos 7 | `CentOS_7` |

And then run the following as root:

<!-- markdownlint-disable MD013 -->
```shell
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

or if you are using a subproject release:

curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${SUBVERSION}:/${VERSION}/$OS/devel:kubic:libcontainers:stable:cri-o:${SUBVERSION}:${VERSION}.repo

yum install cri-o
```
<!-- markdownlint-enable MD013 -->
Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:
```shell
yum install containernetworking-plugins
```
## APT based operating systems
Note: this tutorial assumes you have curl and gnupg installed
To install on the following operating systems, set the environment variable ```$OS```
to the appropriate value from the following table:
| Operating system | $OS |
| ------------------ | ----------------- |
| Debian 12 | `Debian_12` |
| Debian 11 | `Debian_11` |
| Debian 10 | `Debian_10` |
| Raspberry Pi OS 11 | `Raspbian_11` |
| Raspberry Pi OS 10 | `Raspbian_10` |
| Ubuntu 22.04 | `xUbuntu_22.04` |
| Ubuntu 21.10 | `xUbuntu_21.10` |
| Ubuntu 21.04 | `xUbuntu_21.04` |
| Ubuntu 20.10 | `xUbuntu_20.10` |
| Ubuntu 20.04 | `xUbuntu_20.04` |
| Ubuntu 18.04 | `xUbuntu_18.04` |
If installing cri-o-runc (recommended), you'll need to install libseccomp >= 2.4.1.
**NOTE: This is not available in distros based on Debian 10(buster) or below,
so buster backports will need to be enabled:**
<!-- markdownlint-disable MD013 -->
```shell
echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/backports.list
apt update
apt install -y -t buster-backports libseccomp2 || apt update -y -t buster-backports libseccomp2
```
And then run the following as root:
```shell
echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
mkdir -p /usr/share/keyrings
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg
apt-get update
apt-get install cri-o cri-o-runc
```
<!-- markdownlint-enable MD013 -->
**Note: We include cri-o-runc because Ubuntu and Debian include their own packaged
version of runc.**
While this version should work with CRI-O, keeping the packaged versions of CRI-O
and runc in sync ensures they work together.
If you'd like to use the distribution's runc, you'll have to add the file:
```toml
[crio.runtime.runtimes.runc]
runtime_path = ""
runtime_type = "oci"
runtime_root = "/run/runc"
```
to `/etc/crio/crio.conf.d/`
Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:
```shell
apt-get install containernetworking-plugins
```
156 changes: 6 additions & 150 deletions install.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,7 @@ It is assumed you are running a Linux machine.
- [CRI-O Installation Instructions](#cri-o-installation-instructions)
- [Table of Contents](#table-of-contents)
- [Install packaged versions of CRI-O](#install-packaged-versions-of-cri-o)
- [Supported versions](#supported-versions)
- [Installation Instructions](#installation-instructions)
- [openSUSE](#opensuse)
- [Fedora 31 or later](#fedora-31-or-later)
- [Other yum based operating systems](#other-yum-based-operating-systems)
- [APT based operating systems](#apt-based-operating-systems)
- [Build and install CRI-O from source](#build-and-install-cri-o-from-source)
- [Runtime dependencies](#runtime-dependencies)
- [Build and Run Dependencies](#build-and-run-dependencies)
Expand All @@ -44,23 +39,15 @@ It is assumed you are running a Linux machine.
- [Starting CRI-O](#starting-cri-o)
- [Using CRI-O](#using-cri-o)
- [Updating CRI-O](#updating-cri-o)
- [openSUSE](#opensuse-1)
- [Fedora 31 or later](#fedora-31-or-later-1)
- [Other yum based operating systems](#other-yum-based-operating-systems-1)
- [APT based operating systems](#apt-based-operating-systems-1)
- [openSUSE](#opensuse)
- [Fedora 31 or later](#fedora-31-or-later)
- [Other yum based operating systems](#other-yum-based-operating-systems)
- [APT based operating systems](#apt-based-operating-systems)

<!-- TOC end -->

## Install packaged versions of CRI-O

**The following instructions apply to CRI-O versions `< 1.29`. Please follow
the instructions in the [cri-o/packaging repository](https://github.com/cri-o/packaging)
for newer versions.**

CRI-O builds for native package managers using [openSUSE's OBS](https://build.opensuse.org)

### Supported versions

CRI-O follows the [Kubernetes support cycle](https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions)
of three minor releases.
CRI-O also attempts to package for the following operating systems:
Expand Down Expand Up @@ -95,140 +82,9 @@ If there's a version or operating system that is missing, please [open an issue]

### Installation Instructions

#### openSUSE

```shell
sudo zypper install cri-o
```

#### Fedora 31 or later

```shell
sudo dnf module enable cri-o:$VERSION
sudo dnf install cri-o
```

For Fedora, we only support setting minor versions. i.e: `VERSION=1.18`,
and do not support pinning patch versions: `VERSION=1.18.3`

Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:

```shell
sudo dnf install containernetworking-plugins
```

#### Other yum based operating systems

To install on the following operating systems, set the environment variable ```$OS```
to the appropriate value from the following table:

| Operating system | $OS |
| ---------------- | ----------------- |
| Centos 9 Stream | `CentOS_9_Stream` |
| Centos 8 | `CentOS_8` |
| Centos 8 Stream | `CentOS_8_Stream` |
| Centos 7 | `CentOS_7` |

And then run the following as root:
For 1.29 and above, please follow the instructions in the [CRI-O packaging repository.](https://github.com/cri-o/packaging/blob/main/README.md).

<!-- markdownlint-disable MD013 -->
```shell
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

or if you are using a subproject release:

curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${SUBVERSION}:/${VERSION}/$OS/devel:kubic:libcontainers:stable:cri-o:${SUBVERSION}:${VERSION}.repo

yum install cri-o
```
<!-- markdownlint-enable MD013 -->
Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:
```shell
yum install containernetworking-plugins
```
#### APT based operating systems
Note: this tutorial assumes you have curl and gnupg installed
To install on the following operating systems, set the environment variable ```$OS```
to the appropriate value from the following table:
| Operating system | $OS |
| ------------------ | ----------------- |
| Debian 12 | `Debian_12` |
| Debian 11 | `Debian_11` |
| Debian 10 | `Debian_10` |
| Raspberry Pi OS 11 | `Raspbian_11` |
| Raspberry Pi OS 10 | `Raspbian_10` |
| Ubuntu 22.04 | `xUbuntu_22.04` |
| Ubuntu 21.10 | `xUbuntu_21.10` |
| Ubuntu 21.04 | `xUbuntu_21.04` |
| Ubuntu 20.10 | `xUbuntu_20.10` |
| Ubuntu 20.04 | `xUbuntu_20.04` |
| Ubuntu 18.04 | `xUbuntu_18.04` |
If installing cri-o-runc (recommended), you'll need to install libseccomp >= 2.4.1.
**NOTE: This is not available in distros based on Debian 10(buster) or below,
so buster backports will need to be enabled:**
<!-- markdownlint-disable MD013 -->
```shell
echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/backports.list
apt update
apt install -y -t buster-backports libseccomp2 || apt update -y -t buster-backports libseccomp2
```
And then run the following as root:
```shell
echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
mkdir -p /usr/share/keyrings
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg
apt-get update
apt-get install cri-o cri-o-runc
```
<!-- markdownlint-enable MD013 -->
**Note: We include cri-o-runc because Ubuntu and Debian include their own packaged
version of runc.**
While this version should work with CRI-O, keeping the packaged versions of CRI-O
and runc in sync ensures they work together.
If you'd like to use the distribution's runc, you'll have to add the file:
```toml
[crio.runtime.runtimes.runc]
runtime_path = ""
runtime_type = "oci"
runtime_root = "/run/runc"
```
to `/etc/crio/crio.conf.d/`
Note: as of 1.24.0, the `cri-o` package no longer depends on
`containernetworking-plugins` package.
Removing this dependency allows users to install their own CNI plugins without
having to remove files first.
If users want to use the previously provided CNI plugins, they should also run:
```shell
apt-get install containernetworking-plugins
```
For 1.28 and earlier, please read our [legacy installation document](./install-legacy.md).

## Build and install CRI-O from source

Expand Down

0 comments on commit 93b05e5

Please sign in to comment.