-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WX-769 disks
compatibility for TES backend
#6991
Changes from 2 commits
07282b5
7c7bcc6
16dadcf
4d2fb71
9de9059
c82ae1d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -239,6 +239,8 @@ lazy val tesBackend = (project in backendRoot / "tes") | |
.dependsOn(ftpFileSystem) | ||
.dependsOn(drsFileSystem) | ||
.dependsOn(azureBlobFileSystem) | ||
// TES backend provides a compatibility layer to run WDLs with PAPI runtime attributes [WX-769] | ||
.dependsOn(googlePipelinesCommon) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I know we discussed moving this disk-parsing stuff out to a common library, and also that you were running into some build issues - did that end up being harder than expected? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The broad choices were:
At standup I referred to issues with (1), once I got (2) to work I was satisfied. (3) is possible but expands scope quite a bit. |
||
.dependsOn(backend % "test->test") | ||
.dependsOn(common % "test->test") | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
**TES Backend** | ||
## TES Backend | ||
|
||
The TES backend submits jobs to a server that complies with the protocol described by the [GA4GH schema](https://github.com/ga4gh/task-execution-schemas). | ||
|
||
|
@@ -19,7 +19,7 @@ echo $? > rc | |
|
||
`<container_call_root>` would be equal to the runtime attribute `dockerWorkingDir` or `/cromwell-executions/<workflow_uuid>/call-<call_name>/execution` if this attribute is not supplied. | ||
|
||
**Configuring** | ||
### Configuring | ||
|
||
Configuring the TES backend is straightforward; one must only provide the TES API endpoint for the service. | ||
|
||
|
@@ -40,18 +40,18 @@ backend { | |
} | ||
``` | ||
|
||
**Supported File Systems** | ||
### Supported File Systems | ||
|
||
Currently this backend only works with files on a Local or Shared File System. | ||
|
||
**Docker** | ||
### Docker | ||
|
||
This backend supports the following optional [Runtime Attributes](../RuntimeAttributes) and [Workflow Options](../wf_options/Overview/) for working with Docker: | ||
|
||
* `docker`: Docker image to use such as "Ubuntu". | ||
* `dockerWorkingDir`: defines the working directory in the container. | ||
|
||
**CPU, Memory and Disk** | ||
### CPU, Memory and Disk | ||
|
||
This backend supports CPU, memory and disk size configuration through the use of the following [Runtime Attributes](../RuntimeAttributes) and [Workflow Options](../wf_options/Overview/): | ||
|
||
|
@@ -61,16 +61,29 @@ This backend supports CPU, memory and disk size configuration through the use of | |
* Type: String (ex: "4 GB" or "4096 MB") | ||
* `disk` defines the amount of disk to use. | ||
* Type: String (ex: "1 GB" or "1024 MB") | ||
* `disks` accepts a GCP-style disk declaration and attempts to translate it for use on TES | ||
* See table below for supported translations | ||
* `preemptible` defines whether or not to use preemptible VMs. | ||
* Type: Boolean (ex: "true" or "false") | ||
* Integers are accepted and will be converted to boolean (true if > 0) | ||
|
||
If they are not set, the TES backend may use default values. | ||
|
||
**Azure** | ||
#### GCP `disks` to TES `disk` compatibility | ||
|
||
| GCP `disks` value | Supported | TES translation | Remark | | ||
|---------------------------------------|-----------|-----------------|-----------------------------------| | ||
| `local-disk 25 HDD` | ✅ | 25 GB disk | | | ||
| `local-disk 25 SSD` | ✅ | 25 GB disk | Disk type info is dropped | | ||
| `/some/mnt 25 SSD` | ❌ | | Custom mount points not supported | | ||
| `local-disk 25 HDD, /some/mnt 50 SSD` | ❌ | | Multiple disks are not supported | | ||
|
||
Note: if both `disk` and `disks` attributes are specified, the TES backend will automatically use the value in `disk` and not attempt to translate `disks`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you think the GCP disk format is very strongly "GCP-flavored" and non-generic in WDL-world? I could see framing this as "the TES backend supports the following two disk specification formats" rather than "we will translate your GCP workflows." There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The "Recognized Runtime attributes and Backends" table on this page claims that only GCP supports Since I've already got all of this in my head, I think I'll update this page a bit more since it is about to receive a lot of traffic from TES people wanting to use |
||
|
||
### Azure | ||
[Azure](Azure) is an implementation of Cromwell that uses the TES interface for orchestrating the tasks on Azure. | ||
|
||
**TESK** | ||
### TESK | ||
|
||
[TESK](https://github.com/EMBL-EBI-TSI/TESK) is an implementation of the TES interface that uses Kubernetes and FTP. | ||
When running Cromwell with a TESK backend, you will want to customize the way Cromwell process globs, as kubernetes will not work well with hard links in a lot of cases which is the default behavior in Cromwell. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thousand points for remembering to update the changelog!