 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- func GetPodIP(execer utilexec.Interface, nsenterPath, netnsPath, interfaceName string) (net.IP, error)
- type Host
- type NamespaceGetter
- type NetworkPlugin
- type NoopNetworkPlugin
- func (plugin *NoopNetworkPlugin) Capabilities() utilsets.Int
- func (plugin *NoopNetworkPlugin) Event(name string, details map[string]interface{})
- func (plugin *NoopNetworkPlugin) GetPodNetworkStatus(namespace string, name string, id kubecontainer.ContainerID) (*PodNetworkStatus, error)
- func (plugin *NoopNetworkPlugin) Init(host Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, ...) error
- func (plugin *NoopNetworkPlugin) Name() string
- func (plugin *NoopNetworkPlugin) SetUpPod(namespace string, name string, id kubecontainer.ContainerID, ...) error
- func (plugin *NoopNetworkPlugin) Status() error
- func (plugin *NoopNetworkPlugin) TearDownPod(namespace string, name string, id kubecontainer.ContainerID) error
 
- type NoopPortMappingGetter
- type PluginManager
- func (pm *PluginManager) Event(name string, details map[string]interface{})
- func (pm *PluginManager) GetPodNetworkStatus(podNamespace, podName string, id kubecontainer.ContainerID) (*PodNetworkStatus, error)
- func (pm *PluginManager) PluginName() string
- func (pm *PluginManager) SetUpPod(podNamespace, podName string, id kubecontainer.ContainerID, ...) error
- func (pm *PluginManager) Status() error
- func (pm *PluginManager) TearDownPod(podNamespace, podName string, id kubecontainer.ContainerID) error
 
- type PodNetworkStatus
- type PortMappingGetter
Constants ¶
const DefaultInterfaceName = "eth0"
    TODO: Consider making this value configurable.
const DefaultPluginName = "kubernetes.io/no-op"
    const NET_PLUGIN_EVENT_POD_CIDR_CHANGE = "pod-cidr-change"
    Called when the node's Pod CIDR is known when using the controller manager's --allocate-node-cidrs=true option
const NET_PLUGIN_EVENT_POD_CIDR_CHANGE_DETAIL_CIDR = "pod-cidr"
    const UseDefaultMTU = 0
    UseDefaultMTU is a marker value that indicates the plugin should determine its own MTU It is the zero value, so a non-initialized value will mean "UseDefault"
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Host ¶
type Host interface {
	// NamespaceGetter is a getter for sandbox namespace information.
	NamespaceGetter
	// PortMappingGetter is a getter for sandbox port mapping information.
	PortMappingGetter
}
    Host is an interface that plugins can use to access the kubelet. TODO(#35457): get rid of this backchannel to the kubelet. The scope of the back channel is restricted to host-ports/testing, and restricted to kubenet. No other network plugin wrapper needs it. Other plugins only require a way to access namespace information and port mapping information , which they can do directly through the embedded interfaces.
type NamespaceGetter ¶
type NamespaceGetter interface {
	// GetNetNS returns network namespace information for the given containerID.
	// Runtimes should *never* return an empty namespace and nil error for
	// a container; if error is nil then the namespace string must be valid.
	GetNetNS(containerID string) (string, error)
}
    NamespaceGetter is an interface to retrieve namespace information for a given podSandboxID. Typically implemented by runtime shims that are closely coupled to CNI plugin wrappers like kubenet.
type NetworkPlugin ¶
type NetworkPlugin interface {
	// Init initializes the plugin.  This will be called exactly once
	// before any other methods are called.
	Init(host Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, mtu int) error
	// Called on various events like:
	// NET_PLUGIN_EVENT_POD_CIDR_CHANGE
	Event(name string, details map[string]interface{})
	// Name returns the plugin's name. This will be used when searching
	// for a plugin by name, e.g.
	Name() string
	// Returns a set of NET_PLUGIN_CAPABILITY_*
	Capabilities() utilsets.Int
	// SetUpPod is the method called after the infra container of
	// the pod has been created but before the other containers of the
	// pod are launched.
	SetUpPod(namespace string, name string, podSandboxID kubecontainer.ContainerID, annotations, options map[string]string) error
	// TearDownPod is the method called before a pod's infra container will be deleted
	TearDownPod(namespace string, name string, podSandboxID kubecontainer.ContainerID) error
	// GetPodNetworkStatus is the method called to obtain the ipv4 or ipv6 addresses of the container
	GetPodNetworkStatus(namespace string, name string, podSandboxID kubecontainer.ContainerID) (*PodNetworkStatus, error)
	// Status returns error if the network plugin is in error state
	Status() error
}
    Plugin is an interface to network plugins for the kubelet
func InitNetworkPlugin ¶
func InitNetworkPlugin(plugins []NetworkPlugin, networkPluginName string, host Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, mtu int) (NetworkPlugin, error)
InitNetworkPlugin inits the plugin that matches networkPluginName. Plugins must have unique names.
type NoopNetworkPlugin ¶
type NoopNetworkPlugin struct {
	Sysctl utilsysctl.Interface
}
    func (*NoopNetworkPlugin) Capabilities ¶
func (plugin *NoopNetworkPlugin) Capabilities() utilsets.Int
func (*NoopNetworkPlugin) Event ¶
func (plugin *NoopNetworkPlugin) Event(name string, details map[string]interface{})
func (*NoopNetworkPlugin) GetPodNetworkStatus ¶
func (plugin *NoopNetworkPlugin) GetPodNetworkStatus(namespace string, name string, id kubecontainer.ContainerID) (*PodNetworkStatus, error)
func (*NoopNetworkPlugin) Init ¶
func (plugin *NoopNetworkPlugin) Init(host Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, mtu int) error
func (*NoopNetworkPlugin) Name ¶
func (plugin *NoopNetworkPlugin) Name() string
func (*NoopNetworkPlugin) SetUpPod ¶
func (plugin *NoopNetworkPlugin) SetUpPod(namespace string, name string, id kubecontainer.ContainerID, annotations, options map[string]string) error
func (*NoopNetworkPlugin) Status ¶
func (plugin *NoopNetworkPlugin) Status() error
func (*NoopNetworkPlugin) TearDownPod ¶
func (plugin *NoopNetworkPlugin) TearDownPod(namespace string, name string, id kubecontainer.ContainerID) error
type NoopPortMappingGetter ¶
type NoopPortMappingGetter struct{}
    func (*NoopPortMappingGetter) GetPodPortMappings ¶
func (*NoopPortMappingGetter) GetPodPortMappings(containerID string) ([]*hostport.PortMapping, error)
type PluginManager ¶
type PluginManager struct {
	// contains filtered or unexported fields
}
    The PluginManager wraps a kubelet network plugin and provides synchronization for a given pod's network operations. Each pod's setup/teardown/status operations are synchronized against each other, but network operations of other pods can proceed in parallel.
func NewPluginManager ¶
func NewPluginManager(plugin NetworkPlugin) *PluginManager
func (*PluginManager) Event ¶
func (pm *PluginManager) Event(name string, details map[string]interface{})
func (*PluginManager) GetPodNetworkStatus ¶
func (pm *PluginManager) GetPodNetworkStatus(podNamespace, podName string, id kubecontainer.ContainerID) (*PodNetworkStatus, error)
func (*PluginManager) PluginName ¶
func (pm *PluginManager) PluginName() string
func (*PluginManager) SetUpPod ¶
func (pm *PluginManager) SetUpPod(podNamespace, podName string, id kubecontainer.ContainerID, annotations, options map[string]string) error
func (*PluginManager) Status ¶
func (pm *PluginManager) Status() error
func (*PluginManager) TearDownPod ¶
func (pm *PluginManager) TearDownPod(podNamespace, podName string, id kubecontainer.ContainerID) error
type PodNetworkStatus ¶
type PodNetworkStatus struct {
	metav1.TypeMeta `json:",inline"`
	// IP is the primary ipv4/ipv6 address of the pod. Among other things it is the address that -
	//   - kube expects to be reachable across the cluster
	//   - service endpoints are constructed with
	//   - will be reported in the PodStatus.PodIP field (will override the IP reported by docker)
	IP net.IP `json:"ip" description:"Primary IP address of the pod"`
}
    PodNetworkStatus stores the network status of a pod (currently just the primary IP address) This struct represents version "v1beta1"
type PortMappingGetter ¶
type PortMappingGetter interface {
	// GetPodPortMappings returns sandbox port mappings information.
	GetPodPortMappings(containerID string) ([]*hostport.PortMapping, error)
}
    PortMappingGetter is an interface to retrieve port mapping information for a given podSandboxID. Typically implemented by runtime shims that are closely coupled to CNI plugin wrappers like kubenet.