// NetConf describes a network.
type NetConf struct {
CNIVersion string `json:"cniVersion,omitempty"`
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Capabilities map[string]bool `json:"capabilities,omitempty"`
IPAM IPAM `json:"ipam,omitempty"`
DNS DNS `json:"dns"`
RawPrevResult map[string]interface{} `json:"prevResult,omitempty"`
}
conflist格式, 其中plugins元素是NetConf格式:
// NetConfList describes an ordered list of networks.
type NetConfList struct {
CNIVersion string `json:"cniVersion,omitempty"`
Name string `json:"name,omitempty"`
DisableCheck bool `json:"disableCheck,omitempty"`
Plugins []*NetConf `json:"plugins,omitempty"`
}
配置文件加载顺序
https://code.k8s.io/pkg/kubelet/dockershim/network/cni/cni.go func getDefaultCNINetwork
foreach从/etc/cni/net.d/ 加载
".conf", ".conflist", ".json"
后缀的文件,按名字排序,选择满足以下条件的第一个:conf或者json格式:
conflist格式, 其中plugins元素是NetConf格式:
例子: