Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Support additional Docker configuration options. #375
Comments
mcovarr
was assigned
by geoffjentry
Jan 12, 2016
|
@slnovak Thanks for bringing this up. As an aside we're looking at ways to bringing our issue/ticket tracking from our internal server over to github, it'll probably be a little while but once it's in it should make things a lot less opaque for folks such as yourself. @mcovarr can you look through this and create ticket(s) as appropriate? |
|
Thanks @geoffjentry and @mcovarr. Keep me in the loop if this is something that can be put into one of the upcoming sprints, otherwise I might see if I can find some time to submit a PR to implement this. |
|
@slnovak It'll depend on how soon upcoming is for you :) Over the next few weeks there are a couple of broad products sitting on top of Cromwell going live so I expect the bug tickets to be coming in fast and furious. We've been discussing our direction after the dust settles there and one of the priorities will be community requests. We'd certainly welcome a PR but if you have the time to wait a month or so it should hopefully be something we could get to. |
|
Thanks @slnovak! Just FYI I've internally ticketed your two points separately. |
|
|
|
I believe the config backend system in Cromwell 0.21+ now allows for everything that's asked for here. |
|
@mcovarr if that is so, could we document the how-to somehow? Or at least comment it into this issue thread? In the mean time, I'm adding this to the user driven rotation backlog. |
cjllanwarne
added the
User Requested Improvement
label
Oct 17, 2016
cjllanwarne
added this to the
Q4 User Driven Development (& Bug Fixes)
milestone
Oct 17, 2016
mcovarr
referenced
this issue
Jan 6, 2017
Closed
Cromwell expects docker images to be run as root user #472
mcovarr
added a commit
to broadinstitute/wdl
that referenced
this issue
Jan 9, 2017
|
|
mcovarr |
c967f98
|
|
Much like the sample config presented in #472, the config backend system should allow for passing memory and cpu options something like this:
But environment variables are a bit trickier. There doesn't currently seem to be a nice way in WDL of composing a string like |
mcovarr
referenced
this issue
in broadinstitute/wdl
Jan 10, 2017
Merged
prefix() proposal. Closes broadinstitute/cromwell#375 #84
mcovarr
added a commit
to broadinstitute/wdl
that referenced
this issue
Jan 13, 2017
|
|
mcovarr |
302b16d
|
mcovarr
closed this
in broadinstitute/wdl@8ec60c2
Jan 17, 2017
mcovarr
added a commit
to broadinstitute/wdl
that referenced
this issue
Jan 17, 2017
|
|
mcovarr |
944ebea
|
mcovarr
added a commit
to broadinstitute/wdl4s
that referenced
this issue
Jan 18, 2017
|
|
mcovarr |
3d4a2a0
|
|
Given a Local config like:
Docker environment variables could be passed with a WDL like:
Having to use a separate task to stringify an array of String kv environment pairs is a little clunky, but it looks like the way the |
slnovak commentedJan 12, 2016
Hi,
TL;DR
Cromwell should allow for the configuration of Docker resource / environment flags at run-time.
I have a use-case where I'd like to run Cromwell jobs in a cluster environment via Docker Swarm. Since Swarm doesn't require any additional configuration outside of standard
docker runcommands, it's trivial to distribute Cromwell jobs across Swarm nodes.However, Swarm provides a series of filters and constrains that control how the scheduler distributes containers to nodes. For example, I might be interested in limiting the execution of a Cromwell job to a specific region / datacenter. This requires you to specify filters in the
docker runcommand with the environment flag,-e. For example, to run a container on Swarm nodes that run in theus-eastregion:Obviously, this configuration should not be managed in the WDL document. Instead, it would be great for the Cromwell command-line tool and REST API to support additional runtime options for specifying Docker environment variables. For example:
As for the API, the POST action to
/api/workflows/:versionwould allow for multiple Docker env strings.The other feature I would like to request is translating
memoryandcpuconfiguration options (at the task level) to Docker via--memoryand--cpuset-cpusdocker runflags, respectively. These options are currently only used for the JES backend, but it seems as though they can also be used for the Local backend if Docker is specified.So, to summarize:
-eflags to be specified for all tasks in a given workflow.memoryandcpuoptions in a WDL document to be translated to--memoryand--cpuset-cpusin thedocker runcommand.Please let me know if there's anything I can do to help this move forward.
Cheers!🍻