cni-plugin

Framework to implement CNI (container networking) plugins in Rust


Keywords
networking, container, cni, cni-plugin, container-networking
Licenses
Apache-2.0/MIT

Documentation

Crate release version Crate license: Apache 2.0 or MIT MSRV: latest stable CI status

CNI Plugins

A library for writing CNI plugins in Rust, and some plugins built with it.

Obtain plugins

Note that these plugins should not be considered solid implementations. They work, and I use them, and eventually they'll surely evolve into robust software, but for now consider them beta quality, and alpha stability.

Flavours

The cni-plugins library can be built with a feature release-logs that enables verbose logging to a file in release builds, which usually is reserved for debug (development) builds. Warning/error logs are always copied to stderr.

It's up to each plugin to carry through the feature, but all in this repo do. The pre-build binary releases available below also come in these two flavours, with the -verbose suffix for productions builds with verbose logging to file.

Logs are appended to /var/log/cni/name-of-plugin.log in production, and to name-of-plugin.log in the working directory in development.

From binary release

The release tab on GitHub.

Builds are available for x86-64 Linux, but adding architectures is often trivial, so please ask if needed.

From source

Clone this repo, install the Rust toolchain, and build with:

# Standard production binary
cargo build --release

# Log-enabled production binary
cargo build --release --features release-logs

# Debug binary
cargo build