-
Notifications
You must be signed in to change notification settings - Fork 63
Installation Quick Start (WIP)
Shifter consists of several components that together allow a normal user to instantiate an environment of their choice.
-
Image Gateway - This is Python-based RESTful web service. It handles pulling images from different sources (e.g. Dockerhub or private Docker registry), repacking them in a format that can be used by udiRoot, and transferring the image to a shared file system. The Gateway requires a Redis server and Mongo server to dispatch requests and store metadata about the images. A sepearate worker process must also run for each target system. This worker can run on the same node as the gateway or can run on a service node associated with the HPC system.
-
udiRoot - This runs on the nodes where the environment will be instantiated and processes will execute. For an HPC system, this could be the login nodes and compute nodes. This piece is a compiled program that must be installed with setuid root privileges. It requires this privileges to construct the environment and then drops privileges once it is finished.
-
shifterimg - A command-line tool that interacts with the Image Gateway to pull and list images.
The udiRoot and shifgerimg tools should be installed and visible on the user part of the system. The Image Gateway and related components can be installed on a separate system, but where it is installed will impact how the gateway can transfer the packaged images to the global file system.
The image gateway can be installed manually or it can be installed using docker-compose and docker if that is available on the system.
The basic steps are:
- cd imagegw/src
- copy the imagemanager.json file into a configuration directory and edit it.
udiRoot and shifterimg must be compiled for the target platform. It also has a few requirements to build. This include basic development tools (e.g. autoconf, make, gcc), json-c library, and munge. Shifter will build a new version of the mount command. If your distribution has a relatively modern version of mount, you can copy that into the deps area to avoid building mount.