Documentation ¶
Overview ¶
Package node contains the OpenShift SDN networking code that runs on the nodes
Index ¶
- Constants
- Variables
- func GetLinkDetails(ip string) (netlink.Link, *net.IPNet, error)
- func New(c *OsdnNodeConfig) (network.NodeInterface, error)
- func NewMultiTenantPlugin() osdnPolicy
- func NewNetworkPolicyPlugin() osdnPolicy
- func NewOVSController(ovsif ovs.Interface, pluginId int, useConnTrack bool, localIP string) *ovsController
- func NewSingleTenantPlugin() osdnPolicy
- func RegisterMetrics()
- type Chain
- type NodeIPTables
- type OsdnNode
- func (plugin *OsdnNode) AddHostSubnetRules(subnet *networkapi.HostSubnet)
- func (plugin *OsdnNode) AddServiceRules(service *kapi.Service, netID uint32)
- func (plugin *OsdnNode) DeleteHostSubnetRules(subnet *networkapi.HostSubnet)
- func (plugin *OsdnNode) DeleteServiceRules(service *kapi.Service)
- func (node *OsdnNode) GetLocalPods(namespace string) ([]kapi.Pod, error)
- func (plugin *OsdnNode) SetupEgressNetworkPolicy() error
- func (plugin *OsdnNode) SetupSDN() (bool, error)
- func (node *OsdnNode) Start() error
- func (node *OsdnNode) SubnetStartNode() error
- func (plugin *OsdnNode) UpdateEgressNetworkPolicyVNID(namespace string, oldVnid, newVnid uint32)
- func (node *OsdnNode) UpdatePod(pod kapi.Pod) error
- type OsdnNodeConfig
Constants ¶
View Source
const ( SDNNamespace = "openshift" SDNSubsystem = "sdn" OVSFlowsKey = "ovs_flows" ARPCacheAvailableEntriesKey = "arp_cache_entries" PodIPsKey = "pod_ips" PodSetupErrorsKey = "pod_setup_errors" PodSetupLatencyKey = "pod_setup_latency" PodTeardownErrorsKey = "pod_teardown_errors" PodTeardownLatencyKey = "pod_teardown_latency" VnidNotFoundErrorsKey = "vnid_not_found_errors" )
View Source
const ( Br0 = "br0" Tun0 = "tun0" Vxlan0 = "vxlan0" )
Variables ¶
View Source
var ( OVSFlows = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: OVSFlowsKey, Help: "Number of Open vSwitch flows", }, ) ARPCacheAvailableEntries = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: ARPCacheAvailableEntriesKey, Help: "Number of available entries in the ARP cache", }, ) PodIPs = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: PodIPsKey, Help: "Number of allocated pod IPs", }, ) PodSetupErrors = prometheus.NewCounter( prometheus.CounterOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: PodSetupErrorsKey, Help: "Number pod setup errors", }, ) PodSetupLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: PodSetupLatencyKey, Help: "Latency of pod network setup in microseconds", }, []string{"pod_namespace", "pod_name", "sandbox_id"}, ) PodTeardownErrors = prometheus.NewCounter( prometheus.CounterOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: PodTeardownErrorsKey, Help: "Number pod teardown errors", }, ) PodTeardownLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: PodTeardownLatencyKey, Help: "Latency of pod network teardown in microseconds", }, []string{"pod_namespace", "pod_name", "sandbox_id"}, ) VnidNotFoundErrors = prometheus.NewCounter( prometheus.CounterOpts{ Namespace: SDNNamespace, Subsystem: SDNSubsystem, Name: VnidNotFoundErrorsKey, Help: "Number of VNID-not-found errors", }, ) )
View Source
var (
ErrorNetworkInterfaceNotFound = fmt.Errorf("could not find network interface")
)
Functions ¶
func New ¶
func New(c *OsdnNodeConfig) (network.NodeInterface, error)
Called by higher layers to create the plugin SDN node instance
func NewMultiTenantPlugin ¶
func NewMultiTenantPlugin() osdnPolicy
func NewNetworkPolicyPlugin ¶
func NewNetworkPolicyPlugin() osdnPolicy
func NewOVSController ¶
func NewSingleTenantPlugin ¶
func NewSingleTenantPlugin() osdnPolicy
Types ¶
type NodeIPTables ¶
type NodeIPTables struct {
// contains filtered or unexported fields
}
func (*NodeIPTables) AddEgressIPRules ¶
func (n *NodeIPTables) AddEgressIPRules(egressIP, egressHex string) error
func (*NodeIPTables) DeleteEgressIPRules ¶
func (n *NodeIPTables) DeleteEgressIPRules(egressIP, egressHex string) error
func (*NodeIPTables) Setup ¶
func (n *NodeIPTables) Setup() error
type OsdnNode ¶
type OsdnNode struct {
// contains filtered or unexported fields
}
func (*OsdnNode) AddHostSubnetRules ¶
func (plugin *OsdnNode) AddHostSubnetRules(subnet *networkapi.HostSubnet)
func (*OsdnNode) AddServiceRules ¶
func (*OsdnNode) DeleteHostSubnetRules ¶
func (plugin *OsdnNode) DeleteHostSubnetRules(subnet *networkapi.HostSubnet)
func (*OsdnNode) DeleteServiceRules ¶
func (*OsdnNode) GetLocalPods ¶
func (*OsdnNode) SetupEgressNetworkPolicy ¶
func (*OsdnNode) SubnetStartNode ¶
func (*OsdnNode) UpdateEgressNetworkPolicyVNID ¶
type OsdnNodeConfig ¶
type OsdnNodeConfig struct { PluginName string Hostname string SelfIP string RuntimeEndpoint string MTU uint32 EnableHostports bool NetworkClient networkclient.Interface KClient kclientset.Interface Recorder record.EventRecorder KubeInformers kinternalinformers.SharedInformerFactory IPTablesSyncPeriod time.Duration ProxyMode componentconfig.ProxyMode }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.