containernetworking/cni

Container Network Interface - networking for Linux containers

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 53 minutes ago
Added to GitGenius on October 17th, 2024
Created on April 5th, 2015
Open Issues & Pull Requests: 156 (+0)
Number of forks: 1,163
Total Stargazers: 6,101 (+0)
Total Subscribers: 214 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 9.1 days
Mean response time: 260.4 days
90th percentile: 560.9 days
Tracked items: 21

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 117
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,896 days
Stale 30+ days: 117
Stale 90+ days: 112

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • component/plugins (26)
  • kind/enhancement (24)
  • component/spec (20)
  • kind/bug (12)
  • kind/question (11)
  • kind/design (10)
  • kind/documentation (8)
  • area/ipv6 (7)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The Container Network Interface (CNI) is a Cloud Native Computing Foundation project that provides a specification and libraries for writing plugins to configure network interfaces in Linux containers. The repository serves as the core implementation hub for CNI, containing the Go source code for a library that integrates CNI into applications, an example command-line tool called cnitool for executing CNI plugins, and the formal specification that defines how container networking should work. The project's primary focus is deliberately narrow: it addresses only network connectivity of containers and the removal of allocated resources when containers are deleted, which has enabled CNI to achieve broad adoption across diverse container platforms.

The repository is written in Go and maintains a plugin architecture that allows developers to create networking solutions tailored to specific environments. Rather than attempting to solve all networking problems with a single approach, CNI defines a common interface between network plugins and container execution, allowing the same specification to work across different container runtimes and orchestrators. The project includes documentation through its SPEC.md file and maintains reference plugins in a separate repository at containernetworking/plugins, a split that occurred in May 2017 to better organize the project's scope.

CNI has achieved significant adoption across the container ecosystem. Major container runtimes and orchestrators using CNI include Kubernetes, OpenShift, Cloud Foundry, Apache Mesos, Amazon ECS, Singularity, and OpenSVC. The project also supports numerous third-party plugins from organizations including Project Calico, Cilium, Contiv Networking, Multus, Romana, and many others, demonstrating the specification's flexibility for implementing various networking models from overlay networks to SDN integration.

The repository's contributor network overlaps with microsoft/vscode, kubernetes/website, and rust-lang/rust, suggesting cross-project collaboration among maintainers.

The project maintains active community engagement through biweekly meetings held on Mondays at 10:00 US/Eastern on Jitsi, with meeting notes documented in a separate repository. The project welcomes contributions including bug reports, code improvements, and documentation enhancements, with guidelines provided in the CONTRIBUTING.md file. The CNI specification is language-agnostic, though the repository provides Go language libraries for implementation. The project's design philosophy emphasizes simplicity and pluggability, making it straightforward for developers to create new CNI plugins for existing container networking projects or to build entirely new container networking solutions from scratch using CNI as a framework.