Skip to content

Configuration

TESK API reads its settings from application.properties, which any of the ways that Spring Boot supports can override. Environment variables are the usual way: a property's name in upper case, with _ for . and - (e.g., TESK_API_K8S_NAMESPACE for tesk.api.k8s.namespace). In Kubernetes, set them in the deployment (spec.template.spec.containers[0].env); the Helm chart of TESK sets the common ones from its values.

Settings

Environment variable Meaning
SPRING_PROFILES_ACTIVE noauth (default): no authentication or authorisation. auth: both on; see Access control.
TESK_API_K8S_NAMESPACE Kubernetes namespace of all the jobs that TESK API creates. Default: default.
TESK_API_TASKMASTER_IMAGE_NAME Image of the taskmaster. Default: eu.gcr.io/tes-wes/taskmaster.
TESK_API_TASKMASTER_IMAGE_VERSION Tag of the taskmaster image. Default: v0.10.0.
TESK_API_TASKMASTER_FILER_IMAGE_NAME Image of the filer, passed on to the taskmaster, which creates the inputs and outputs filers with it. Default: eu.gcr.io/tes-wes/filer.
TESK_API_TASKMASTER_FILER_IMAGE_VERSION Tag of the filer image. Default: v0.10.0.
TESK_API_TASKMASTER_SERVICE_ACCOUNT_NAME Service account of the taskmaster jobs; it needs the rights to manage jobs, pods and persistent volume claims (e.g., the built-in edit role). Default: default.
TESK_API_TASKMASTER_DEBUG true: more verbose taskmaster logs (in the FULL view of a task). Default: false.
TESK_API_TASKMASTER_FTP_SECRET_NAME Name of a Kubernetes secret with the credentials of an FTP account, passed to the taskmaster as environment variables, for uploading outputs to that FTP server. Default: none.
TESK_API_TASKMASTER_ENVIRONMENT_* Passed to the taskmaster as environment variables, without the prefix (TESK_API_TASKMASTER_ENVIRONMENT_XXX becomes XXX). The taskmaster knows, among others, TRANSFER_PVC_NAME, HOST_BASE_PATH and CONTAINER_BASE_PATH (exchange of inputs and outputs through a shared file system instead of FTP), and EXECUTOR_BACKOFF_LIMIT and FILER_BACKOFF_LIMIT (how often executor and filer jobs retry failed pods).
TESK_API_TASKMASTER_EXECUTOR_SECRET_NAME Name of a Kubernetes secret to mount into every executor as a volume (all its files). Default: none.
TESK_API_TASKMASTER_EXECUTOR_SECRET_MOUNT_PATH Where that secret is mounted. Default: /secret.
TESK_API_SERVICE_INFO_LOCATION The YAML file of service info. Default: the built-in classpath:service-info.yaml.
TESK_API_SERVICE_INFO_PUBLIC With the auth profile: true (default) lets GET and HEAD /service-info answer without a token; false makes them need a valid token (no group membership). No effect with noauth, where all endpoints are open. Since 1.2.0.
SECURITY_OAUTH2_RESOURCE_USER_INFO_URI User info endpoint of the OpenID Connect provider, which validates tokens; see Access control. Default: ELIXIR AAI.
TESK_API_AUTHORISATION_* Authorisation by group membership; see Access control.
TESK_API_SWAGGER_OAUTH_* The OpenID Connect client of the Swagger UI; see Access control.

Service info

GET /service-info (see API) answers with the content of the YAML file that TESK_API_SERVICE_INFO_LOCATION points to, e.g. file:/etc/tesk/service-info.yaml from a ConfigMap. The built-in file describes a test environment, so give your deployment its own: the ID, name, organisation, contact, documentation URL, environment and storage locations are yours to fill in. Service info is public by default, also with the auth profile; if it names anything that only your users should see, set TESK_API_SERVICE_INFO_PUBLIC to false (in the Helm chart of TESK: auth.service_info_public).