Documentation ¶
Index ¶
- Constants
- func UnescapePluginName(in string) string
- type Host
- 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 componentconfig.HairpinMode) 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 PodNetworkStatus
Constants ¶
View Source
const DefaultInterfaceName = "eth0"
TODO: Consider making this value configurable.
View Source
const DefaultPluginName = "kubernetes.io/no-op"
View Source
const ( // Indicates the plugin handles Kubernetes bandwidth shaping annotations internally NET_PLUGIN_CAPABILITY_SHAPING int = 1 )
Plugin capabilities
View Source
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
View Source
const NET_PLUGIN_EVENT_POD_CIDR_CHANGE_DETAIL_CIDR = "pod-cidr"
Variables ¶
This section is empty.
Functions ¶
func UnescapePluginName ¶
Types ¶
type Host ¶
type Host interface { // Get the pod structure by its name, namespace GetPodByName(namespace, name string) (*api.Pod, bool) // GetKubeClient returns a client interface GetKubeClient() clientset.Interface // GetContainerRuntime returns the container runtime that implements the containers (e.g. docker/rkt) GetRuntime() kubecontainer.Runtime }
Host is an interface that plugins can use to access the kubelet.
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 componentconfig.HairpinMode) 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, podInfraContainerID kubecontainer.ContainerID) error // TearDownPod is the method called before a pod's infra container will be deleted TearDownPod(namespace string, name string, podInfraContainerID kubecontainer.ContainerID) error // Status is the method called to obtain the ipv4 or ipv6 addresses of the container GetPodNetworkStatus(namespace string, name string, podInfraContainerID kubecontainer.ContainerID) (*PodNetworkStatus, error) // NetworkStatus 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 componentconfig.HairpinMode) (NetworkPlugin, error)
InitNetworkPlugin inits the plugin that matches networkPluginName. Plugins must have unique names.
type NoopNetworkPlugin ¶
type NoopNetworkPlugin struct { }
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 componentconfig.HairpinMode) error
func (*NoopNetworkPlugin) Name ¶
func (plugin *NoopNetworkPlugin) Name() string
func (*NoopNetworkPlugin) SetUpPod ¶
func (plugin *NoopNetworkPlugin) SetUpPod(namespace string, name string, id kubecontainer.ContainerID) 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 PodNetworkStatus ¶
type PodNetworkStatus struct { unversioned.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"
Directories ¶
Path | Synopsis |
---|---|
Package exec scans and loads networking plugins that are installed under /usr/libexec/kubernetes/kubelet-plugins/net/exec/ The layout convention for a plugin is: plugin-name/ (plugins have to be directories first) plugin-name/plugin-name (executable that will be called out, see Vendoring Note for more nuances) plugin-name/<other-files> where, 'executable' has the following requirements: - should have exec permissions - should give non-zero exit code on failure, and zero on success - the arguments will be <action> <pod_namespace> <pod_name> <docker_id_of_infra_container> whereupon, <action> will be one of: - init, called when the kubelet loads the plugin - setup, called after the infra container of a pod is created, but before other containers of the pod are created - teardown, called before the pod infra container is killed - status, called at regular intervals and is supposed to return a json formatted output indicating the pod's IPAddress(v4/v6).
|
Package exec scans and loads networking plugins that are installed under /usr/libexec/kubernetes/kubelet-plugins/net/exec/ The layout convention for a plugin is: plugin-name/ (plugins have to be directories first) plugin-name/plugin-name (executable that will be called out, see Vendoring Note for more nuances) plugin-name/<other-files> where, 'executable' has the following requirements: - should have exec permissions - should give non-zero exit code on failure, and zero on success - the arguments will be <action> <pod_namespace> <pod_name> <docker_id_of_infra_container> whereupon, <action> will be one of: - init, called when the kubelet loads the plugin - setup, called after the infra container of a pod is created, but before other containers of the pod are created - teardown, called before the pod infra container is killed - status, called at regular intervals and is supposed to return a json formatted output indicating the pod's IPAddress(v4/v6). |
Click to show internal directories.
Click to hide internal directories.