Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fabricebrito committed Nov 20, 2023
1 parent be52e6f commit 5c51dd7
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 8 deletions.
2 changes: 1 addition & 1 deletion conformance/ConformanceTestsJob-1.2.1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
command: ["chmod", "777", "/output"]
volumeMounts:
- mountPath: /output
name: conformance-output-data
name: conformance-test-output
containers:
- name: tests-1-2-1
imagePullPolicy: IfNotPresent
Expand Down
4 changes: 2 additions & 2 deletions conformance/ConformanceTestsJob-1.2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
command: ["chmod", "777", "/output"]
volumeMounts:
- mountPath: /output
name: conformance-output-data
name: conformance-test-output
containers:
- name: tests-1-2
imagePullPolicy: IfNotPresent
Expand Down Expand Up @@ -53,6 +53,6 @@ spec:
persistentVolumeClaim:
claimName: conformance-test-data
readOnly: true
- name: conformance-output-data
- name: conformance-test-output
persistentVolumeClaim:
claimName: conformance-test-output
2 changes: 1 addition & 1 deletion conformance/Dockerfile.conformance
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.7
FROM python:3.10.0-slim-buster
LABEL maintainer="[email protected]"

# cwltool requires nodejs
Expand Down
29 changes: 25 additions & 4 deletions conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,25 +132,46 @@ kubectl --namespace="$NAMESPACE_NAME" create -f StageConformanceTestsData.yaml

**This step can probably be simplified, but as conformance tests are in development it's too early to optimize**

Calrissian does not include cwltest, so build a container that installs it with:
Build a container that installs `calrissian` and `cwltest` with:

```
minikube image build .. -t ghcr.io/calrissian/conformance:latest -f conformance/Dockerfile.conformance
```

This will build `calrissian:conformance` from the current source tree. You may need to tag that differently if pushing to a registry. If so, update the `image: ` in [ConformanceTestsJob-1.2.yaml](ConformanceTestsJob-1.2.yaml)
This will build `calrissian:conformance` from the current source tree and this image is available in the minikube cluster node.

### Running Conformance Tests

[ConformanceTestsJob-1.2.yaml](ConformanceTestsJob-1.2.yaml) uses `cwltest` from cwltool to run conformance tests with `--tool calrissian` and Calrissian's required arguments after `--`.
[ConformanceTestsJob-1.2.yaml](ConformanceTestsJob-1.2.yaml) uses `cwltest` from cwltool to run conformance tests with `--tool calrissian` and Calrissian's required arguments after `--`, e.g.:

```
...
command: ["cwltest"]
args:
- "--test"
- "/conformance/common-workflow-language-1.0.2/v1.0/conformance_test_v1.0.yaml"
- "--tool"
- "calrissian"
- "--badgedir"
- "/output/badges-1.0.2"
- "--verbose"
- "--"
- "--max-ram"
- "8G"
- "--max-cores"
- "4"
- "--default-container"
- "debian:stretch-slim"
...
```

#### CWL 1.0

```
kubectl --namespace="$NAMESPACE_NAME" create -f ConformanceTestsJob-1.0.yaml
kubectl --namespace="$NAMESPACE_NAME" wait --for=condition=Ready\
--selector=job-name=conformance-tests-1-0 pods
kubectl --namespace="$NAMESPACE_NAME" logs -f jobs/conformance-tests-1-0
kubectl --namespace="$NAMESPACE_NAME" logs -f jobs/conformance-tests-1-0 > ../docs/conformance/1.0/result-1-0.txt
```

#### CWL 1.1
Expand Down
17 changes: 17 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Calrissian

CWL on Kubernetes

## Overview

Calrissian is a [CWL](https://www.commonwl.org) implementation designed to run inside a Kubernetes cluster. Its goal is to be highly efficient and scalable, taking advantage of high capacity clusters to run many steps in parallel.

## Cluster Requirements

Calrissian requires a [Kubernetes](https://kubernetes.io) cluster, configured to provision [PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) with the `ReadWriteMany` access mode.

## Scalability / Resource Requirements

Calrissian is designed to issue tasks in parallel if they are independent, and thanks to Kubernetes, should be able to run very large parallel workloads.

When running `calrissian`, you must provide a limit the the number of CPU cores (`--max-cores`) and RAM megabytes (`--max-ram`) to use concurrently. Calrissian will use CWL [ResourceRequirements](https://www.commonwl.org/v1.0/CommandLineTool.html#ResourceRequirement) to track usage and stay within the limits provided. We highly recommend using accurate ResourceRequirements in your workloads, so that they can be scheduled efficiently and are less likely to be terminated or refused by the cluster.

0 comments on commit 5c51dd7

Please sign in to comment.