Spec for adding contrail support in kuryr-k8s

Change-Id: Ib6dd9138d0f85d218724cd18272bc978b171698a
Implements: blueprint kuryr-k8s-contrail-integration
This commit is contained in:
Darla Ahlert 2017-03-13 11:42:06 -05:00 committed by Antoni Segura Puimedon
parent a802c424b4
commit be6f9b576e
1 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,80 @@
=========================================
Kuryr Kubernetes OpenContrail Integration
=========================================
https://blueprints.launchpad.net/kuryr-kubernetes/+spec/kuryr-k8s-contrail-integration
This spec proposes how to integrate OpenContrail with Kuryr-Kubernetes.
OpenContrail is an open source project that provides network virtuaization
functionality to OpenStack. Integrating these will allow Kuryr to be used to
bridge container-VM networking in a Contrail-based OpenStack deployment.
Problem Description
===================
OpenContrail is one of the largest SDN platforms, but it currently does not
work with Kuryr-Kubernetes. The goal of this blueprint is to provide Kuryr with
the correct driver so that a Kubernetes-hosted container can use
Kuryr-Kubernetes to correctly interface with an OpenContrail-based network. In
this configuration, OpenContrail will take place of the Open Virtual Switch,
L2/L3 functionality, etc. that normally comes with using Neutron as the default
implementation.
Use Cases
---------
Kuryr will act as the container networking interface for OpenContrail. This
patch set will allow a bare-metal, Kubernetes-hosted container to interact with
VMs in an OpenStack virtual network. This means we have to have a way to plug,
unplug and bridge the container.
Use Case 1: Enable container based work loads to communicate with OpenStack
hosted VM workloads in Contrail SDN environments
Use Case 2: Allow Kubernetes workloads to leverage advanced OpenContrail based
networking
Use Case 3: Enable Kuberentes to create virtual networks via Contrail
Proposed Change
===============
This change will add a driver to Kuryr-Kubernetes that has all of the
functionality of the CNI specifically for OpenContrail. The driver will feature
the plug() and unplug() commands that grant the container network access.
Community Impact
----------------
This spec invites the community to collaborate on a unified solution to support
contrail integration within Kuryr-Kubernetes.
Implementation
==============
Assignee(s)
-----------
Darla Ahlert
Steve Kipp
Work Items
----------
1. Implement an os-vif bare bones plugin similar to [1] only worrying about
plug and unplug. We will implement this within Kuryr-Kubernetes for now and
eventually merge this to openstack/os-vif.
2. Look into serialization for OpenContrail and use [2] as a reference,
if needed.
3. Look into binding for OpenContrail similar to OVS binding [3]
4. Implement unit tests for added code
5. Add gate to install OpenContrail components
Added Paths for New Code:
kuryr-kubernetes/cni/os-vif/opencontrail.py
References
==========
[1] https://github.com/openstack/os-vif/blob/master/vif_plug_ovs/ovs.py
[2] https://github.com/openstack/kuryr-kubernetes/blob/794ec706c5fbe0da6e49bf20ba2439d8eb39ae7e/kuryr_kubernetes/os_vif_util.py#L258-L281
[3] https://github.com/openstack/kuryr-kubernetes/blob/794ec706c5fbe0da6e49bf20ba2439d8eb39ae7e/kuryr_kubernetes/cni/binding/bridge.py