package libcni

import "github.com/containernetworking/cni/libcni"

Index

Variables

var (
	CacheDir = "/var/lib/cni"
)

Functions

func ConfFiles

func ConfFiles(dir string, extensions []string) ([]string, error)

Types

type CNI

type CNI interface {
	AddNetworkList(ctx context.Context, net *NetworkConfigList, rt *RuntimeConf) (types.Result, error)
	CheckNetworkList(ctx context.Context, net *NetworkConfigList, rt *RuntimeConf) error
	DelNetworkList(ctx context.Context, net *NetworkConfigList, rt *RuntimeConf) error

	AddNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) (types.Result, error)
	CheckNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) error
	DelNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) error
	GetNetworkCachedResult(net *NetworkConfig, rt *RuntimeConf) (types.Result, error)

	ValidateNetworkList(ctx context.Context, net *NetworkConfigList) ([]string, error)
	ValidateNetwork(ctx context.Context, net *NetworkConfig) ([]string, error)
}

type CNIConfig

type CNIConfig struct {
	Path []string
	// contains filtered or unexported fields
}

func NewCNIConfig

func NewCNIConfig(path []string, exec invoke.Exec) *CNIConfig

NewCNIConfig returns a new CNIConfig object that will search for plugins in the given paths and use the given exec interface to run those plugins, or if the exec interface is not given, will use a default exec handler.

func (*CNIConfig) AddNetwork

func (c *CNIConfig) AddNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) (types.Result, error)

AddNetwork executes the plugin with the ADD command

func (*CNIConfig) AddNetworkList

func (c *CNIConfig) AddNetworkList(ctx context.Context, list *NetworkConfigList, rt *RuntimeConf) (types.Result, error)

AddNetworkList executes a sequence of plugins with the ADD command

func (*CNIConfig) CheckNetwork

func (c *CNIConfig) CheckNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) error

CheckNetwork executes the plugin with the CHECK command

func (*CNIConfig) CheckNetworkList

func (c *CNIConfig) CheckNetworkList(ctx context.Context, list *NetworkConfigList, rt *RuntimeConf) error

CheckNetworkList executes a sequence of plugins with the CHECK command

func (*CNIConfig) DelNetwork

func (c *CNIConfig) DelNetwork(ctx context.Context, net *NetworkConfig, rt *RuntimeConf) error

DelNetwork executes the plugin with the DEL command

func (*CNIConfig) DelNetworkList

func (c *CNIConfig) DelNetworkList(ctx context.Context, list *NetworkConfigList, rt *RuntimeConf) error

DelNetworkList executes a sequence of plugins with the DEL command

func (*CNIConfig) GetNetworkCachedResult

func (c *CNIConfig) GetNetworkCachedResult(net *NetworkConfig, rt *RuntimeConf) (types.Result, error)

GetNetworkCachedResult returns the cached Result of the previous previous AddNetwork() operation for a network, or an error.

func (*CNIConfig) GetNetworkListCachedResult

func (c *CNIConfig) GetNetworkListCachedResult(list *NetworkConfigList, rt *RuntimeConf) (types.Result, error)

GetNetworkListCachedResult returns the cached Result of the previous previous AddNetworkList() operation for a network list, or an error.

func (*CNIConfig) GetVersionInfo

func (c *CNIConfig) GetVersionInfo(ctx context.Context, pluginType string) (version.PluginInfo, error)

GetVersionInfo reports which versions of the CNI spec are supported by the given plugin.

func (*CNIConfig) ValidateNetwork

func (c *CNIConfig) ValidateNetwork(ctx context.Context, net *NetworkConfig) ([]string, error)

ValidateNetwork checks that a configuration is reasonably valid. It uses the same logic as ValidateNetworkList) Returns a list of capabilities

func (*CNIConfig) ValidateNetworkList

func (c *CNIConfig) ValidateNetworkList(ctx context.Context, list *NetworkConfigList) ([]string, error)

ValidateNetworkList checks that a configuration is reasonably valid. - all the specified plugins exist on disk - every plugin supports the desired version.

Returns a list of all capabilities supported by the configuration, or error

type NetworkConfig

type NetworkConfig struct {
	Network *types.NetConf
	Bytes   []byte
}

func ConfFromBytes

func ConfFromBytes(bytes []byte) (*NetworkConfig, error)

func ConfFromFile

func ConfFromFile(filename string) (*NetworkConfig, error)

func InjectConf

func InjectConf(original *NetworkConfig, newValues map[string]interface{}) (*NetworkConfig, error)

func LoadConf

func LoadConf(dir, name string) (*NetworkConfig, error)

type NetworkConfigList

type NetworkConfigList struct {
	Name         string
	CNIVersion   string
	DisableCheck bool
	Plugins      []*NetworkConfig
	Bytes        []byte
}

func ConfListFromBytes

func ConfListFromBytes(bytes []byte) (*NetworkConfigList, error)

func ConfListFromConf

func ConfListFromConf(original *NetworkConfig) (*NetworkConfigList, error)

ConfListFromConf "upconverts" a network config in to a NetworkConfigList, with the single network as the only entry in the list.

func ConfListFromFile

func ConfListFromFile(filename string) (*NetworkConfigList, error)

func LoadConfList

func LoadConfList(dir, name string) (*NetworkConfigList, error)

type NoConfigsFoundError

type NoConfigsFoundError struct {
	Dir string
}

func (NoConfigsFoundError) Error

func (e NoConfigsFoundError) Error() string

type NotFoundError

type NotFoundError struct {
	Dir  string
	Name string
}

func (NotFoundError) Error

func (e NotFoundError) Error() string

type RuntimeConf

type RuntimeConf struct {
	ContainerID string
	NetNS       string
	IfName      string
	Args        [][2]string
	// A dictionary of capability-specific data passed by the runtime
	// to plugins as top-level keys in the 'runtimeConfig' dictionary
	// of the plugin's stdin data.  libcni will ensure that only keys
	// in this map which match the capabilities of the plugin are passed
	// to the plugin
	CapabilityArgs map[string]interface{}

	// A cache directory in which to library data.  Defaults to CacheDir
	CacheDir string
}

A RuntimeConf holds the arguments to one invocation of a CNI plugin excepting the network configuration, with the nested exception that the `runtimeConfig` from the network configuration is included here.

Source Files

api.go conf.go

Version
v0.7.0
Published
Apr 26, 2019
Platform
js/wasm
Imports
11 packages
Last checked
9 hours ago

Tools for package owners.