Table of Contents
This repository implements pfcon
-- a controlling service that acts as the interface to a process manager pman
service. Primarily, pfcon
provides "compute resource" services to a ChRIS backend.
Most simply, a local zip file can be pushed to a remote pfcon
, then after unpacking the data some process is run on it in the remote space using the controlled pman
service. The resultant data can then be downloaded back as a zip file to the local space.
It can be used to query and control the following (for example):
- state: Is job <XYZ> still running?
Visit the pfcon http API call examples wiki page to see examples of http calls accepted by pfcon
server.
Additionally a Python3 client for this server's web API is provided here: https://github.com/FNNDSC/python-pfconclient
Currently tested platforms:
Ubuntu 18.04+ and MAC OS X 10.14+ and Fedora 31+
Additional instructions for FedoraDocker 18.06.0+
Note: On a Linux machine make sure to add your computer user to the docker
group. Consult this page: https://docs.docker.com/engine/install/linux-postinstall/
On MAC OS Docker Desktop includes a standalone Kubernetes server and client. Consult this page: https://docs.docker.com/desktop/kubernetes/
On Linux there is a simple MicroK8s installation. Consult this page: https://microk8s.io
Then create the required alias:
A single-machine deployment is provided.
Modify the .env
files in the swarm/prod/secrets
directory appropriately.
Start production pfcon:
Tear down production pfcon:
A single-machine deployment using Kubernetes' "hostPath" storage is provided. In addition a multi-machine deployment for an external NFS drive is provided using NFS persistent volume.
Modify the .env
files in the kubernetes/prod/base/secrets
directory appropriately.
Start production pfcon:
Tear down production pfcon
Start production pfcon:
Tear down production pfcon