Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CNI proposal #36

Merged
merged 1 commit into from
May 23, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 0 additions & 65 deletions proposals/CNI Proposal

This file was deleted.

79 changes: 79 additions & 0 deletions proposals/cni.adoc
Original file line number Diff line number Diff line change
@@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


**external dependencies:** None
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are vendored libraries.


**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.