Windows Containers support; Windows Compute port

Registered by Michał Kostrzewa

Rationale and Scope
---------------------------
Windows Server 2016 comes with support for containers and docker. Pros and cons of using containers are well known. This also sets up Contrail for possible Hyper-V support in the future.

The scope is to port Compute node to Windows (Agent and vRouter) and integrate with Windows docker and Windows Containers.

Implementors
-------------------
Rajagopalan Sivaramakrishnan (<email address hidden>)
Sagar Chitnis (<email address hidden>)
CodiLime dev team (<email address hidden>)

Target Release
---------------------
For release 1: 5.0
For release 2+: tbd

User-visible changes
----------------------------
On Linux, none.
On Windows, one can use Windows docker command line tools to spawn Windows containers and connect them to Contrail networks. (orchestration is not in scope of release 1)
For deployment, MSI installers are provided.

Internal changes
-----------------------
3 components are affected:

1. Windows docker driver is added. It is roughly equivalent to Nova Agent, but runs as a Windows service and implements docker driver APIs. It communicates with config, Agent and HNS (Host Network Service - Windows container management service). Written in Golang.

2. vRouter Agent. Parts of the codebase are not cross platform. Changes involve rewriting those and fixing related bugs.

3. vRouter Forwarding Extension. Implements vRouter kernel module functionality in terms of a Hyper-V Forwarding Extension, which is basically a kernel mode "plugin" for Windows virtual switch.

Linux communication channels between (2) and (3) are also ported using Named Pipes (for ksync and pkt0) and Windows shared memory (for flow).

More info is available under spec url.

Blueprint information

Status:
Started
Approver:
Raja Sivaramakrishnan
Priority:
Undefined
Drafter:
Michał Kostrzewa
Direction:
Needs approval
Assignee:
Michał Kostrzewa
Definition:
Approved
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Michał Kostrzewa

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.