Spec for adding OpenDaylight support in kuryr-k8s

Partially Implements blueprint kuryr-k8s-odl-integration

Change-Id: I27309b2fbd45874e8b6fa0d81851c5007ddc88c2
This commit is contained in:
Luis Tomas Bolivar 2017-07-27 16:51:50 +02:00
parent b29c54c0f5
commit c0f0277da6
2 changed files with 102 additions and 0 deletions

View File

@ -33,6 +33,7 @@ Design Specs
specs/pike/contrail_support
specs/pike/fuxi_kubernetes
specs/pike/sriov
specs/pike/odl_support
Indices and tables
==================

View File

@ -0,0 +1,101 @@
=========================================
Kuryr Kubernetes OpenDayLight Integration
=========================================
https://blueprints.launchpad.net/kuryr-kubernetes/+spec/kuryr-k8s-odl-integration
This spec proposes how to integrate OpenDaylight with Kuryr-Kubernetes.
OpenDaylight is a highly available, modular, extensible, scalable and
multi-protocol controller infrastructure built for SDN deployments on modern
heterogeneous multi-vendor networks.
OpenStack can use OpenDaylight as its network management provider through the
Modular Layer 2 (ML2) north-bound plug-in. OpenDaylight manages the network
flows for the OpenStack compute nodes via the OVSDB south-bound plug-in.
Integrating these will allow Kuryr to be used to bridge (both baremetal and
nested) containers and VM networking in a OpenDaylight-based OpenStack
deployment.
Problem Description
===================
There is no explicit support for OpenDaylight at Kuryr-Kubernetes, as well as
there are no CI jobs being executed to ensure future Kuryr-Kubernetes features
will not break current support.
The goal of this blueprint is two fold:
1. Provide Kuryr with the correct driver so that a Kubernetes-hosted container
can use Kuryr-Kubernetes to correctly interface with an OpenDaylight-based
network. In this configuration, OpenDaylight take place of the ML2/OVS
L2/L3 functionality, etc. that normally comes with using Neutron as the
default implementation.
2. Create a CI gate to ensure OpenDaylight support upon new commits.
Use Cases
---------
Kuryr will act as the container networking interface for OpenDaylight. This
work will cover the Kubernetes-hosted container interaction with VMs in an
OpenStack virtual network. This means we have to have a way to plug, unplug
and bridge the containers into the OpenDaylight-based Neutron networks.
Use Case 1: Enable container-based workloads to communicate with OpenStack
hosted VM workloads in OpenDaylight SDN environments, both side by side and
nested deployments (i.e., containers inside OpenStack VMs).
Use Case 2: Allow Kubernetes workloads to leverage advanced OpenDaylight based
networking
Use Case 3: Enable Kuberentes to create virtual networks with OpenDaylight
via neutron/networking-odl.
Proposed Change
===============
There are no expected changes at the Kuryr cni or controller drivers.
However there may be other changes to ensure nested support. The first one is
related to the trunk ports support at ODL that has been fixed in [0].
The second one is related to networking-odl and the subport status updates.
Subport status does not transition to ACTIVE and Kuryr cni waits for this
annotation made by the drivers to start the containers.
The other gap to cover is related to create a gate so that ODL support is
continuosly checked upon new commits.
Community Impact
----------------
This spec invites the community to collaborate on a unified solution to support
OpenDaylight integration within Kuryr-Kubernetes, as well as setting up the
basics CI gate that will help to maintain the support, as well as to increase
the test coverage.
Implementation
==============
Assignee(s)
-----------
Luis Tomás
Daniel Mellado
Work Items
----------
* Check correct support from current driver.
* Implement odl kuryr drivers for baremetal, nested and pool -- if needed.
* Ensure proper trunk ports support from ODL side -- also including
networking-odl.
* Add gate to install OpenDaylight components
* Generate installation and configuration documentation
References
==========
[0] https://bugs.opendaylight.org/show_bug.cgi?id=8880