blob: 3df64c993b075338b845a212bceb5bbde414f8bd [file] [log] [blame] [view]
Mesos Fetcher
=============
Mesos has support for downloading resources into the sandbox through the
use of the [Mesos Fetcher](http://mesos.apache.org/documentation/latest/fetcher/)
Aurora supports passing URIs to the Mesos Fetcher dynamically by including
a list of URIs in job submissions.
How to use
----------
The scheduler flag `-enable_mesos_fetcher` must be set to true.
Currently only the scheduler side of this feature has been implemented
so a modification to the existing client, or a custom Thrift client are required
to make use of this feature.
If using a custom Thrift client, the list of URIs must be included in TaskConfig
as the `mesosFetcherUris` field.
Each Mesos Fetcher URI has the following data members:
|Property | Description|
|---------|------|
|value (required) |Path to the resource needed in the sandbox.|
|extract (optional)|Extract files from packed or compressed archives into the sandbox.|
|cache (optional) | Use caching mechanism provided by Mesos for resources.|
Note that this structure is very similar to the one provided for downloading
resources needed for a [custom executor](../operations/configuration.md).
This is because both features use the Mesos fetcher to retrieve resources into
the sandbox. However, one, the custom executor feature, has a static set of URIs
set in the server side, and the other, the Mesos Fetcher feature, is a dynamic set
of URIs set at the time of job submission.
Security Implications
---------------------
There are security implications that must be taken into account when enabling this feature.
**Enabling this feature may potentially enable any job submitting user to perform a privilege escalation.**
Until a more through solution is created, one step that has been taken to mitigate this issue
is to statically mark every user submitted URI as non-executable. This is in contrast to the set of URIs
set in the custom executor feature which may mark any URI as executable.
If the need arises to mark a downloaded URI as executable, please consider using the custom executor feature.