Skip to main content

CWL runner for Kubernetes

Project description

calrissian

CWL on Kubernetes

CircleCI

Overview

Calrissian is a CWL implementation designed to run individual steps as Pods in a kubernetes cluster

It is in development and includes a simple workflow (revsort single / array) to reverse and sort the contents of text files.

Preparing Openshift

The openshift/ directory contains YAML files that demonstrate the basic functionality. To configure Openshift, do the following:

  1. Create a project in openshift (e.g. calrissian-demo-project). Note that namespaces must be unique, so if calrissian-demo-project is already in use on the cluster, you will need to choose a different name.

     oc new-project calrissian-demo-project
    
  2. Create a pair of roles in your project to allow managing kubernetes pods and logs:

     oc create role pod-manager-role --verb=create,delete,list,watch --resource=pods
     oc create role log-reader-role --verb=get,list --resource=pods/log
    
  3. Bind your project's default service account access to these roles. Calrissian running inside the cluster will use this service account to make Kubernetes API calls.

     oc create rolebinding pod-manager-default-binding --role=pod-manager-role --serviceaccount=calrissian-demo-project:default
     oc create rolebinding log-reader-default-binding --role=log-reader-role --serviceaccount=calrissian-demo-project:default
    
  4. Create the BuildConfig - this allows Openshift to build the source code into a Docker image and starts a build automatically. If you wish to build a different branch or repo, edit this file.

     oc create -f openshift/BuildConfig.yaml
    
  5. Create the VolumeClaims - these are the storage locations that will be shared between pods, and must support read-write many access.

     oc create -f openshift/VolumeClaims.yaml
    

Running the example

With the VolumeClaims and Build processes in place, you can run the example with 2 jobs. These jobs use the docker image built by the BuildConfig, so they cannot be run until the build completes.

  1. Stage the input data and workflow onto the input-data volume with the StageInputDataJob.

     oc create -f openshift/StageInputDataJob.yaml
    
  2. Run the workflow engine with the CalrissianJob

     oc create -f openshift/CalrissianJob-revsort.yaml
    
  3. Job pods can be monitored from the openshift web interface or via command-line

     oc logs -f job/calrissian-revsort-array
    

Notes

  1. Calrissian will delete completed jobs for individual steps, but you may want to delete the calrissian-revsort-array job manually after running it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

calrissian-0.5.0-py3.6.egg (45.5 kB view details)

Uploaded Egg

calrissian-0.5.0-py2.py3-none-any.whl (21.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file calrissian-0.5.0-py3.6.egg.

File metadata

  • Download URL: calrissian-0.5.0-py3.6.egg
  • Upload date:
  • Size: 45.5 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for calrissian-0.5.0-py3.6.egg
Algorithm Hash digest
SHA256 7b7fae9006925eb47941e08971c679166f541408725baf19afc28bcdd9f72a80
MD5 046c79883fe26adcab700562ae1954f1
BLAKE2b-256 e790e96cf6e9991ce489f5bee1e0268cecba77037cf6ec188bdc2df977e63fb4

See more details on using hashes here.

File details

Details for the file calrissian-0.5.0-py2.py3-none-any.whl.

File metadata

  • Download URL: calrissian-0.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for calrissian-0.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0357c74026a070da66f4e3fde977818a811525c2ae7b849c3610dd609a5bea9b
MD5 84cda83ba28847e9f0cfcafadfd8be51
BLAKE2b-256 f66acdfd1b5b60a5c00f0273b6b61c2f7fe7670b02130c1ccede92a84315e446

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page