All Projects → FNNDSC → pman

FNNDSC / pman

Licence: MIT license
A process management system written in python

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to pman

ChRIS ultron backEnd
Backend for ChRIS
Stars: ✭ 28 (+100%)
Mutual labels:  openshift, pipelines
openshift-starter-guides
Getting Started with OpenShift for Developers Workshop
Stars: ✭ 35 (+150%)
Mutual labels:  openshift, pipelines
painless-continuous-delivery
A cookiecutter for projects with continuous delivery baked in.
Stars: ✭ 46 (+228.57%)
Mutual labels:  openshift, pipelines
mlx
Machine Learning eXchange (MLX). Data and AI Assets Catalog and Execution Engine
Stars: ✭ 132 (+842.86%)
Mutual labels:  openshift, pipelines
openshift-prometheus
Repository for all things related to Prometheus on OpenShift
Stars: ✭ 53 (+278.57%)
Mutual labels:  openshift
openshift-sync-plugin
Synchronizes OpenShift BuildConfig objects as Jenkins jobs and synchronizes job status into OpenShift Build objects
Stars: ✭ 16 (+14.29%)
Mutual labels:  openshift
preprocessy
Python package for Customizable Data Preprocessing Pipelines
Stars: ✭ 34 (+142.86%)
Mutual labels:  pipelines
spring-boot-configmaps-demo
Demo application to show Spring Boot configuration using ConfigMaps
Stars: ✭ 31 (+121.43%)
Mutual labels:  openshift
openshift-quickstart
Developer Workshops related to the Java development on OpenShift
Stars: ✭ 19 (+35.71%)
Mutual labels:  openshift
okd4-upi-lab-setup
Building an OKD 4 Home Lab
Stars: ✭ 72 (+414.29%)
Mutual labels:  openshift
cookbook-openshift3
Chef Cookbook for Openshift
Stars: ✭ 27 (+92.86%)
Mutual labels:  openshift
openshift101
OpenShift 101 on IBM Cloud tutorial: https://ibm.github.io/openshift101/
Stars: ✭ 27 (+92.86%)
Mutual labels:  openshift
torchx
TorchX is a universal job launcher for PyTorch applications. TorchX is designed to have fast iteration time for training/research and support for E2E production ML pipelines when you're ready.
Stars: ✭ 165 (+1078.57%)
Mutual labels:  pipelines
s2i-build
Github Action to build an OCI-compatible container image from source code.
Stars: ✭ 26 (+85.71%)
Mutual labels:  openshift
sarjitsu
dockerized setup for visualizing System Activity Report (SAR) data.
Stars: ✭ 20 (+42.86%)
Mutual labels:  openshift
tracking-python3
In this repository I will give some implementation of single and multiple object tracking algorithms. These include meanShift, CamShift, Boosting, MIL, KCF, TLD , GoTurn, and MedianFlow. Additionally I will show you how to grab frames at a very high FPS from camera and videos.
Stars: ✭ 98 (+600%)
Mutual labels:  pyhton3
azure-aks-kubernetes-masterclass
Azure AKS Kubernetes Masterclass
Stars: ✭ 319 (+2178.57%)
Mutual labels:  pipelines
oshinko-cli
Command line interface for spark cluster management app
Stars: ✭ 13 (-7.14%)
Mutual labels:  openshift
scale-ci-deploy
Automation for OpenShift Deployments - install, scaling and upgrades
Stars: ✭ 14 (+0%)
Mutual labels:  openshift
kraken
Chaos and resiliency testing tool for Kubernetes and OpenShift
Stars: ✭ 161 (+1050%)
Mutual labels:  openshift

ChRIS logo pman

Version MIT License ci

pman, which once stood for process manager, is a Flask application providing an API for creating jobs with various schedulers e.g. Kubernetes, Docker Swarm, and SLURM. It basically translates its own JSON interface to requests for the various supported backends.

pman is tightly-coupled to pfcon. pman and pfcon are typially deployed as a pair, providing the pfcon service.

Development

This section describes how to set up a local instance of pman working against swarm.

Using Docker Compose

The easiest way to run a code hot-reloading server for development is using docker-compose.

docker swarm init --advertise-addr 127.0.0.1
docker compose up -d

Using Docker Swarm

To run a full test using docker stack deploy, run the test harness test_swarm.sh.

./test_swarm.sh

Configuration

pman is configured by environment variables. Refer to the source code in pman/config.py for exactly how it works.

Environment Variable Description
SECRET_KEY Flask secret key
CONTAINER_ENV one of: "swarm", "kubernetes", "cromwell"
STORAGE_TYPE one of: "host", "nfs"
STOREBASE where job data is stored, see below
NFS_SERVER NFS server address, required when STORAGE_TYPE=nfs
JOB_LOGS_TAIL (int) maximum size of job logs
REMOVE_JOBS If set to "no" then pman will not delete jobs (debug)

STOREBASE

  • If STORAGE_TYPE=host, then STOREBASE represents the path on the container host.
  • If STORAGE_TYPE=nfs, then STOREBASE should be an exported NFS share

Kubernetes-Specific Options

Applicable when CONTAINER_ENV=kubernetes

Environment Variable Description
JOB_NAMESPACE Kubernetes namespace for created jobs
SECURITYCONTEXT_RUN_AS_USER Job container UID (NFS permissions workaround)
SECURITYCONTEXT_RUN_AS_GROUP Job container GID (NFS permissions workaround)

SLURM-Specific Options

Applicable when CONTAINER_ENV=cromwell

Environment Variable Description
CROMWELL_URL Cromwell URL
TIMELIMIT_MINUTES SLURM job time limit

For how it works, see https://github.com/FNNDSC/pman/wiki/Cromwell

Limitations

The system administrator is expected to have an existing solution for having a "shared volume" visible on the same path to every node in the cluster (which is typically how NFS is used). The path on each host to this share should be provided as the value for STOREBASE.

Currently, only HostPath and NFS volumes are supported. pfcon and pman do not support (using nor creating) other kinds of PVCs.

TODO

  • Example for how to interact with pman directly (w/o pfcon)
  • Dev environment and testing for Kubernetes and SLURM.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].