Skip to main content

CWL runner for Kubernetes

Project description


CWL on Kubernetes



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 role in your project to allow managing Pods:

     oc create role pod-manager-role --verb=create,delete,list,watch --resource=pods
  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
  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


  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.

Files for calrissian, version 0.3.1
Filename, size File type Python version Upload date Hashes
Filename, size calrissian-0.3.1-py2.py3-none-any.whl (20.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size calrissian-0.3.1-py3.6.egg (41.8 kB) File type Egg Python version 3.6 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page