OpenStack Containers Networking ("Kuryr")
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.
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.
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 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.
- Docker / Docker Swarm