Installation

This document will guide you through the process of installing Singularity-CRI on a Linux host.

Overview

Singularity-CRI is nothing more than Singularity-specific implementation of Kubernetes CRI.

It is currently under development and passes 71/74 validation tests. Note that used test suite is taken from v1.13.0 tag. Detailed report can be found here.

Before you begin

If you have an earlier version of Singularity-CRI installed, you should remove it before executing the installation commands. You will also need to install some dependencies as described below.

Install Dependencies

  1. Install git
  2. Install Singularity 3.1+ with OCI support
  3. Install Go 1.11+
  4. Install inotify to enable GPU device plugin
  5. Install socat if you want to enable fort-forwarding, e.g
$ sudo apt-get install socat

Install from source

The following commands will install Singularity-CRI from the GitHub repo to the /usr/local/bin.

The master branch contains the latest, bleeding edge version of Singularity-CRI. This is the default branch when you clone the source code, so you don’t have to check out any new branches to install it. The master branch changes quickly and may be unstable. Thus installing from tag is the preferred way and is described below.

Since Singularity-CRI is now built with go modules there is no need to create standard go workspace. If you still prefer keeping source code under GOPATH make sure GO111MODULE=on is set.

The following assumes you want set up Singularity-CRI outside GOPATH.

$ git clone https://github.com/sylabs/singularity-cri.git && \
  cd singularity-cri && \
  git checkout tags/v1.0.0-beta.5 -b v1.0.0-beta.5 && \
  make && \
  sudo make install

After these commands Singularity-CRI will be installed in the /usr/local/bin directory.

Refer to configuration section to see how Singularity-CRI can be configured.

Remove an old version

When you run install, the command lists files as they are installed. They must be removed in order to completely remove Singularity-CRI from your host.

For convenience we created uninstall command, so you can run the following to cleanup installation:

$ sudo make uninstall