[
https://issues.apache.org/jira/browse/AURORA-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14531123#comment-14531123
]
brian wickman commented on AURORA-1288:
---------------------------------------
The rough outline would be to create the concept of a pystachio Unstructured
type -- this would be the equivalent of a scala Any type -- which means it
takes anything that is a Struct subclass. We'd then change the Job struct in
src/main/python/apache/aurora/config/schema/base.py to change task =
Required(Task) to task = Required(Unstructured). This means that we could take
a thermos-defined Task or YourCustomExecutorTask and plumb it through the
client via AuroraConfigLoader instead of pulling Thermos schemas in directly
from base.py.
There are not *that* many touch-points for job.task throughout the client, but
the ones that exist are significant, and abstracting them to be not
thermos-specific will require some effort. The biggest one that comes to mind
is moving resources=Resources from Task to Job, where it belongs, which, while
a tiny code change, is a huge deprecation cycle on our end. If you look in
src/main/python/apache/aurora/config/thrift.py, most of that is generalizable
to any task type. It's only the last few lines where we do Thermos-specific
validation and generate a Thermos-specific ExecutorConfig that will need to be
pluggable based upon the task type.
> Design for supporting custom executor
> -------------------------------------
>
> Key: AURORA-1288
> URL: https://issues.apache.org/jira/browse/AURORA-1288
> Project: Aurora
> Issue Type: Task
> Reporter: Meghdoot Bhattacharya
>
> The goal is to capture the list of changes in the client and the scheduler
> required to support any executor other than thermos. This will help non
> thermos use cases to adopt aurora easily.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)