Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-7874

Convert slaveRunTaskLabelDecorator and masterRunTaskLabelDecorator to non-blocking API



    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • modules


      Our use case: we need a non-blocking way to notify our secret management system during task launching sequence on agent. This mechanism needs to work for both DockerContainerizer and MesosContainerizer, and both custom executor and command executor, with proper access to labels on TaskInfo.

      As of 1.3.0, the hooks in hook.hpp pretty inconsistent on these combination cases.

      The closest option on is slavePreLaunchDockerTaskExecutorDecorator, however it has a couple of problems:

      1. For DockerContainerizer + custom executor, it strips away TaskInfo and sends a `None()` instead;
      2. This hook is not called on MesosContainerizer at all. I guess it's because people can implement an isolator? However, it creates extra work for module authors and operators.

      The other option is slaveRunTaskLabelDecorator, but it has own problems:
      1. Error are silently swallowed so module cannot stop the task running sequence;
      2. It's a blocking version, which means we cannot wait for another subprocess's or RPC result.

      I'm inclined to fix the two problems on slavePreLaunchDockerTaskExecutorDecorator, but open to other suggestions.




            zhitao Zhitao Li
            zhitao Zhitao Li
            Till Toenshoff Till Toenshoff
            2 Vote for this issue
            4 Start watching this issue