Crate cni_plugin[][src]

Library to write CNI plugins.

Quick start

use cni_plugin::{Cni, logger};
logger::install(env!("CARGO_PKG_NAME"));
match Cni::load() {
    Cni::Add { container_id, ifname, netns, path, config } => {}
    Cni::Del { container_id, ifname, netns, path, config } => {}
    Cni::Check { container_id, ifname, netns, path, config } => {}
    Cni::Version(_) => unreachable!()
}

or:

use cni_plugin::{Cni, Inputs, logger};
logger::install(env!("CARGO_PKG_NAME"));

let Inputs {
    command, container_id, ifname, netns, path, config
} = Cni::load().into_inputs().unwrap();

Modules

config

Configuration structures.

delegation

Plugin delegation.

error

When CNI goes bad.

ip_range

The IpRange type and helpers for IP pools.

logger

The standard logger and utilities.

macaddr

MAC address (de)serialisation.

reply

Reply types and helpers.

Structs

Inputs

An alternate representation of plugin inputs.

Enums

Cni

The main entrypoint to this plugin and the enum which contains plugin input.

Command

Identifies the command given to a plugin.