[ 
https://issues.apache.org/jira/browse/MESOS-4240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-4240:
--------------------------
    Description: 
The rationale behind this change is that many of the image specifications 
(e.g., Docker/Appc) are not just for filesystems. They also specify runtime 
configurations (e.g., environment variables, volumes, etc) for the container.

Provisioner should return those runtime configurations to the Mesos 
containerizer and Mesos containerizer will delegate the isolation of those 
runtime configurations to the relevant isolator.

Here is what it will be look like eventually. We could do those changes in 
phases:
1) Provisioner will return a ProvisionInfo which includes a 'rootfs' and image 
specific runtime configurations (could be the Docker/Appc manifest).
2) Then, the Mesos containerizer will generate a ContainerConfig (a protobuf 
which includes rootfs, sandbox, docker/appc manifest, similar to OCI's host 
independent config.json) and pass that to each isolator in 'prepare'. Imaging 
in the future, a DockerRuntimeIsolator takes the docker manifest from 
ContainerConfig and prepare the container.
3) The isolator's prepare function will return a ContainerLaunchInfo (contains 
environment variables, namespaces, etc.) which will be used by Mesos 
containerize to launch containers. Imaging that information will be passed to 
the launcher in the future.

We can do the renaming (ContainerPrepareInfo -> ContainerLaunchInfo) later.



  was:
The rationale behind this change is that many of the image specifications 
(e.g., Docker/Appc) are not just for filesystems. They also specify runtime 
configurations (e.g., environment variables, volumes, etc) for the container.

Provisioner should return those runtime configurations to the Mesos 
containerizer and Mesos containerizer will delegate the isolation of those 
runtime configurations to the relevant isolator.

Here is what it will be look like eventually. We could do those changes in 
phases:
1) Provisioner will return a ProvisionInfo which includes an optional 'rootfs' 
and image specific runtime configurations (could be the Docker/Appc manifest).
2) Then, the Mesos containerizer will generate a ContainerConfig (a protobuf 
which includes rootfs, sandbox, docker/appc manifest, similar to OCI's host 
independent config.json) and pass that to each isolator in 'prepare'. Imaging 
in the future, a DockerRuntimeIsolator takes the docker manifest from 
ContainerConfig and prepare the container.
3) The isolator's prepare function will return a ContainerLaunchInfo (contains 
environment variables, namespaces, etc.) which will be used by Mesos 
containerize to launch containers. Imaging that information will be passed to 
the launcher in the future.

We can do the renaming (ContainerPrepareInfo -> ContainerLaunchInfo) later.




> Pull provisioner from linux filesystem isolator to Mesos containerizer.
> -----------------------------------------------------------------------
>
>                 Key: MESOS-4240
>                 URL: https://issues.apache.org/jira/browse/MESOS-4240
>             Project: Mesos
>          Issue Type: Task
>            Reporter: Jie Yu
>            Assignee: Gilbert Song
>
> The rationale behind this change is that many of the image specifications 
> (e.g., Docker/Appc) are not just for filesystems. They also specify runtime 
> configurations (e.g., environment variables, volumes, etc) for the container.
> Provisioner should return those runtime configurations to the Mesos 
> containerizer and Mesos containerizer will delegate the isolation of those 
> runtime configurations to the relevant isolator.
> Here is what it will be look like eventually. We could do those changes in 
> phases:
> 1) Provisioner will return a ProvisionInfo which includes a 'rootfs' and 
> image specific runtime configurations (could be the Docker/Appc manifest).
> 2) Then, the Mesos containerizer will generate a ContainerConfig (a protobuf 
> which includes rootfs, sandbox, docker/appc manifest, similar to OCI's host 
> independent config.json) and pass that to each isolator in 'prepare'. Imaging 
> in the future, a DockerRuntimeIsolator takes the docker manifest from 
> ContainerConfig and prepare the container.
> 3) The isolator's prepare function will return a ContainerLaunchInfo 
> (contains environment variables, namespaces, etc.) which will be used by 
> Mesos containerize to launch containers. Imaging that information will be 
> passed to the launcher in the future.
> We can do the renaming (ContainerPrepareInfo -> ContainerLaunchInfo) later.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to