CRI-O No Longer Available Through rpm-ostree?


I am trying to create a Kubernetes cluster using cri-o as the container runtime but have been unable to get cri-o installed through the module repos. This has worked for me before, so I am not sure what I may be missing to get it installed.

I’ve created a file named cri-o.module in the /etc/dnf/modules.d directory with the following:


I then ran the following:

sudo rpm-ostree install crio -n

This is the output:

checking out tree a44c3b4... done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora fedora-modular updates-modular updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2021-02-23T00:49:00Z solvables: 4
rpm-md repo 'updates' (cached); generated: 2021-10-21T16:44:55Z solvables: 28671
rpm-md repo 'fedora' (cached); generated: 2021-04-23T10:47:57Z solvables: 63586
rpm-md repo 'fedora-modular' (cached); generated: 2021-04-23T10:25:38Z solvables: 2050
rpm-md repo 'updates-modular' (cached); generated: 2021-10-21T17:35:01Z solvables: 2193
rpm-md repo 'updates-archive' (cached); generated: 2021-10-21T17:21:08Z solvables: 39940
error: Packages not found: crio

I have tried different versions of cri-o (1.19, 1.18 etc.) but get always get the same error. I do see the package in the modular repo, but for some reason rpm-ostree does not. I’m fairly new to FCOS and to rpm-ostree in general, but as I mentioned, this has worked for me in the past.

What am I missing?

1 Like

Hi, this is likely fallout from

Basically until that PR rpm-ostree actually didn’t understand modules; what you wrote in /etc/dnf/modules.d was ignored.

It looks like you’ll now need to do e.g.:

$ rpm-ostree ex module enable cri-o:1.19
$ rpm-ostree install cri-o

(For some reason, rpm-ostree ex module install cri-o:1.19 fails to find a default profile, which must be a bug)

The modularity support is still classified as experiemental, but I hope we can mark it stable relatively soon - feedback (like this!) is appreciated!

Modularity support was improved recently

Can you try something like

rpm-ostree ex module install cri-o:1.20/default

See tests/kolainst: Check layering of `cri-o:1.20/default` by jlebon · Pull Request #3123 · coreos/rpm-ostree · GitHub

Thanks @walters and @dustymabe both methods work.

Can either of you help me understand the concept of enabling versus just layering? Specifically, @walters you have me enable and then install via the typical rpm-ostree where @dustymabe method just adds the layer for cri-o which is similar to what I did prior to the changes.

Also, I’m curious as to where I can read to better understand the desired end state to how you will handle modules? I’m guessing nothing is formally documented and I’ll need to troll the PRs? :grin:

I think of enabling like adding a repo to which you can pull packages from and the install being the actual pull+layer. The command I provided does both the enablement and the layering as a convenience IIUC.

Yeah I’m not sure our documentation has been updated for module support.

Thanks for trying out the modularity support! I added some documentation in docs/admin-handbook: Add docs about modularity support by jlebon · Pull Request #3191 · coreos/rpm-ostree · GitHub.

Thanks @jlebon, I appreciate your efforts!