Skip to main content

ChRIS on Podman

danger

This page is WIP.

Introduction

Podman is a rootless, daemon-less*, and somewhat more vendor neutral alternative to Docker.

Podman has two ways of supporting Kubernetes YAMLs: directly using the podman kube play command, or by running Kubernetes in Podman using KinD. The podman kube play command has some limitations but avoids the overhead of running kubelet and containerd in Podman containers.

*Even though daemonlessness is a primary selling point of Podman, often times a damon is nonetheless necessary, as is the case with running ChRIS using Podman.

System Requirements

Podman version 4.3 or above is required. We aim to support "out-of-the-box" setups of rootless Podman (using slirp4netns and aardvark-dns). ChRIS on Podman has previously been tried and worked on: Fedora Silverblue 37, Ubuntu 22.04, and Arch Linux.

Notes about installing Podman on Arch Linux.

On Arch Linux, please consult the wiki: https://wiki.archlinux.org/title/Podman

Here's what worked for me (possibly helpful, definitely outdated info)

sudo pacman -Syu podman aardvark-dns
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER
warning

Podman version 4.6.2 does not work due to a bug. If pman is reporting the error

crun: write to /proc/self/oom_score_adj: Permission denied: OCI permission denied

Try downgrading crun to version 1.8.7. (On Arch Linux, run sudo pacman -U /var/cache/pacman/pkg/crun-1.8.7-1-x86_64.pkg.tar.zst)

Dependencies

In addition to Podman, you also need to have Helm installed.

Configuration

ChRIS runs containers of its own, so you need to run a Podman socket. On systemd GNU/Linux, run

systemctl --user start podman.service

Create a values.yaml configuration file:

git clone https://github.com/FNNDSC/charts.git fnndsc-charts
cd fnndsc-charts/podman
./init.sh > values.yaml

Usage

First, set your working directory to the fnndsc-charts repo cloned above.

Startup

helm template chris ./charts/chris -f podman/values.yaml | podman kube play --replace -

Shutdown

helm template chris ./charts/chris -f podman/values.yaml | podman kube down -

Shutdown and Delete Data

helm template chris ./charts/chris -f podman/values.yaml | podman kube down --force -

Use Podman Desktop

You need to generate the Kubernetes YAML first:

helm template chris ./charts/chris -f podman/values.yaml > chris.yaml

TODO TODO TODO

ChRIS_ui

TODO TODO TODO