Jump to: navigation, search


OpenStack Containers Networking ("Kuryr")

Developer Doc
Source code
Bug tracker

Kuryr Mission Statement

Bridge between containers frameworks networking models to OpenStack networking abstraction

What is Kuryr?

OpenStack and Neutron are no longer the new kid in the block, Neutron has matured and its popularity in OpenStack deployments over nova-network is increasing, it has a very rich ecosystem of plugins and drivers which provide networking solutions and services (like LBaaS, VPNaaS and FWaaS). All of which implement the Neutron abstraction and hopefully can be interchange by the cloud deployers.

What we noticed in regards to containers networking, and specifically in environments that are mixed for containers and OpenStack is that every networking solution tries to reinvent and enable networking for containers but this time with Docker API (or any other abstraction) OpenStack Magnum, for example, has to introduce an abstraction layer for different libnetwork drivers depending on the Container Orchestration Engine used. It would be ideal if Kuryr could be the default for Magnum COEs

The idea behind Kuryr, is to be able to leverage the abstraction and all the hard work that was put in Neutron and its plugins and services and use that to provide production grade networking for containers use cases. Instead of each independent Neutron plugin or solution trying to find and close the gaps, we can concentrate the efforts and focus in one spot - Kuryr.

Kuryr aims to be the “integration bridge” between the two communities, Docker and Neutron and propose and drive changes needed in Neutron (or in Docker) to be able to fulfill the use cases needed specifically to containers networking.

It is important to note that Kuryr is NOT a networking solution by itself nor does it attempt to become one. The Kuryr effort is focused to be the courier that delivers Neutron networking and services to Docker.

More Info:

Kuryr Policies

Kuryr team follows standard OpenStack procedure for new features proposal. Detailed information can be found on the Blueprints wiki For simple features, blueprint in launchpad should be used to summarize the feature and provide design considerations. If feature is complex it may be required to submit design specification

Request for Feature Enhancements

Kuryr team decided to use Feature Enhancements Requests (RFE) process as it is used by Neutron project. RFE wiki

Feature Definition of Done

In order to include new feature into Kuryr repository, it should fulfill the following criteria:

  • The code was approved by at least 2 core code reviewers.
  • The code is covered by unit tests.
  • The functional tests are included.
  • The release notes are included.
  • The user facing API impact is documented.

Related projects

  • Neutron

Neutron is an OpenStack project to provide "networking as a service" . Kuryr leverage Neutron abstraction in order to create virtual networks for containers and containers orchestration engines.

  • Magnum

Magnum is an OpenStack project to deploy contains, both at Virtual Machine or Physics Machine. Kuryr will work together with magnum and bind Neutron ports to containers that deployed by magnum.

  • Kolla
  • Astara
  • Docker / Docker Swarm
  • Kubernetes
  • Mesos