The API server of TESK, an implementation of the GA4GH Task
Execution Service (TES) API for Kubernetes,
brought to you by ELIXIR On-Cloud. TESK API
accepts TES tasks, runs each of them as Kubernetes jobs (a taskmaster, which
runs the task's executors and the filers for its inputs and outputs), and
reports their state and logs from those jobs and their pods; it needs no
database. Access can be limited to users with tokens from an OpenID Connect
provider and by group membership. It is a Spring Boot application, published
as the image elixircloud/tesk-api and deployed with the Helm chart of
TESK.
Read the documentation (the "TESK API" section of the TESK
documentation) for the API, the configuration, access control, deployment,
upgrades and development. Its sources are in docs/.
With Docker installed, and a
Kubernetes cluster in your kubeconfig file (KUBECONFIG, or
~/.kube/config; e.g., a local one with kind),
start TESK API on your machine only (it runs without authentication by
default, with the rights of your kubeconfig; with rootless Docker, use
--user 0:0 instead, see
Deployment):
docker run --rm --publish 127.0.0.1:8080:8080 --user "$(id -u):0" \
--volume "${KUBECONFIG:-${HOME}/.kube/config}:/home/tesk/.kube/config:ro" \
elixircloud/tesk-api:latestThe API is then served at http://localhost:8080/ga4gh/tes/v1/ (add --env TESK_API_SWAGGER_UI_ENABLED=true for a Swagger UI at
http://localhost:8080):
curl http://localhost:8080/ga4gh/tes/v1/service-infoTo deploy TESK to a cluster, use the Helm chart of TESK.
TESK API builds and runs on Java 8. To build it and run the unit and integration tests (no cluster needed):
./mvnw clean verifySee Development in the documentation for the image, CI, the docs build and releases.
If you use TESK API, please cite it with the metadata in
CITATION.cff: on GitHub, "Cite this repository" in the
sidebar of the repository formats it as APA or BibTeX.
Contributions are welcome! See the organisation's contributing guide, and mind our code of conduct.