Clean up CNI proposal for wider RFC

Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
This commit is contained in:
Chris Aniszczyk 2017-05-04 09:53:28 -05:00
parent 732fb1466e
commit ca211abf22
2 changed files with 79 additions and 65 deletions

View File

@ -1,65 +0,0 @@
# Name of project: Container Networking Interface
# Description
The CNI (Container Network Interface) project consists of a specification and libraries for writing plugins to configure network interfaces
in Linux containers, along with a number of supported plugins. CNI concerns itself only with network connectivity of containers and removing
allocated resources when the container is deleted. Because of this focus, CNI has a wide range of support and the specification is simple to
implement. CNI consists of 3 separate comonents:
* CNI Specification: defines an straightforward API between runtimes and network plugins for container network setup/teardown. No more, no less.
* Plugins: provide network setup for a variety of use-cases and serve as reference examples of plugins conforming to the CNI specification
* Library: provide a Go implementation of the CNI specification that runtimes can use to more easily consume CNI
NOTE: CNI Specification is independently versioned from the CNI library and plugins in the repository (e.g. the versions of releases). The plugins are being pulled out into a separate repository
**Sponsor/Advisor from TOC:** Ken Owens
**preferred maturity level:** Incubating
**License:** Apache License v2.0
**Source control repositories:** https://github.com/containernetworking/cni
**external dependencies:** None
**Initial Committers:** https://github.com/containernetworking/cni/graphs/contributors
**infrastructure requests (CI / CNCF Cluster):** None
**communication channels (slack, irc, mailing lists):**
* Email: cni-dev
* IRC: #containernetworking channel on freenode.org
* Slack: containernetworking.slack.com
**issue tracker (GitHub by default):** Github - https://github.com/containernetworking/cni/issues
**website (current version will move to project.cncf.io):** https://github.com/containernetworking
**release methodology and mechanics:**
*TBD*
**social media accounts**
**community size and any existing sponsorship**
* 56 Contributors
* 591 Stars
* 17 releases
## Container runtimes
rkt - container engine
Kurma - container runtime
Kubernetes - a system to simplify container operations
Cloud Foundry - a platform for cloud applications
Mesos - a distributed systems kernel
## 3rd party plugins
Project Calico - a layer 3 virtual network
Weave - a multi-host Docker network
Contiv Networking - policy networking for various use cases
SR-IOV
Cilium - BPF & XDP for containers
Infoblox - enterprise IP address management for containers
Multus - a Multi plugin
Romana - Layer 3 CNI plugin supporting network policy for Kubernetes
CNI-Genie - generic CNI network plugin

79
proposals/cni.adoc Normal file
View File

@ -0,0 +1,79 @@
# Container Networking Interface (CNI)
**Project Name:** cni
**Description**
The CNI (Container Network Interface) project consists of a specification and libraries for writing plugins to configure network interfaces
in Linux containers, along with a number of supported plugins. CNI concerns itself only with network connectivity of containers and removing
allocated resources when the container is deleted. Because of this focus, CNI has a wide range of support and the specification is simple to
implement. CNI consists of 3 separate comonents:
* CNI Specification: defines an straightforward API between runtimes and network plugins for container network setup/teardown. No more, no less.
* Plugins: provide network setup for a variety of use-cases and serve as reference examples of plugins conforming to the CNI specification
* Library: provide a Go implementation of the CNI specification that runtimes can use to more easily consume CNI
NOTE: CNI Specification is independently versioned from the CNI library and plugins in the repository (e.g. the versions of releases). The plugins are being pulled out into a separate repository
**Sponsor/Advisor from TOC:** Ken Owens
**Preferred maturity level:** Incubating
**License:** Apache License v2.0
**Source control repositories:** https://github.com/containernetworking/cni
**external dependencies:** None
**Initial Committers:** https://github.com/containernetworking/cni/blob/master/MAINTAINERS
**Infrastructure requests (CI / CNCF Cluster):** None
**Communication channels (slack, irc, mailing lists):**
* Email: [cni-dev](https://groups.google.com/forum/#!forum/cni-dev)
* IRC: #containernetworking channel on freenode.org
* Slack: https://containernetworking.slack.com
**Issue tracker (GitHub by default):** Github - https://github.com/containernetworking/cni/issues
**Website:** https://github.com/containernetworking
**Release methodology and mechanics:**
https://github.com/containernetworking/cni/blob/master/ROADMAP.md
**Social media accounts:** N/A
**Community size and any existing sponsorship**
* 56 Contributors
* 591 Stars
* 17 releases
**Adopters:**
* rkt - container engine
* Kurma - container runtime
* Kubernetes - a system to simplify container operations
* Cloud Foundry - a platform for cloud applications
* Mesos - a distributed systems kernel
There is also a large ecosystem of third party plug-ins:
* Project Calico - a layer 3 virtual network
* Weave - a multi-host Docker network
* Contiv Networking - policy networking for various use cases
* SR-IOV
* Cilium - BPF & XDP for containers
* Infoblox - enterprise IP address management for containers
* Multus - a Multi plugin
* Romana - Layer 3 CNI plugin supporting network policy for Kubernetes
* CNI-Genie - generic CNI network plugin
**Statement on alignment with CNCF mission**:
CNI defines initial guidelines for a network interface specification focused on
connectivity and portability of cloud native application patterns.
It is already supported by many cloud native and container runtimes discussed
in the adopters section of this document.