Documentation ¶
Index ¶
- Variables
- type Client
- func (c *Client) AddClusterIPRoute(svcIP net.IP) error
- func (c *Client) AddLoadBalancer(externalIPs []string) error
- func (c *Client) AddLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error
- func (c *Client) AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
- func (c *Client) AddRoutes(podCIDR *net.IPNet, nodeName string, peerNodeIP, peerGwIP net.IP) error
- func (c *Client) AddSNATRule(snatIP net.IP, mark uint32) error
- func (c *Client) DeleteClusterIPRoute(svcIP net.IP) error
- func (c *Client) DeleteLoadBalancer(externalIPs []string) error
- func (c *Client) DeleteLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error
- func (c *Client) DeleteNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
- func (c *Client) DeleteRoutes(podCIDR *net.IPNet) error
- func (c *Client) DeleteSNATRule(mark uint32) error
- func (c *Client) Initialize(nodeConfig *config.NodeConfig, done func()) error
- func (c *Client) MigrateRoutesToGw(linkName string) error
- func (c *Client) Reconcile(podCIDRs []string, svcIPs map[string]bool) error
- func (c *Client) Run(stopCh <-chan struct{})
- func (c *Client) UnMigrateRoutesFromGw(route *net.IPNet, linkName string) error
- type Interface
Constants ¶
This section is empty.
Variables ¶
var (
PodCIDRIPv4 *net.IPNet
)
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(networkConfig *config.NetworkConfig, noSNAT, proxyAll, connectUplinkToBridge, multicastEnabled bool) (*Client, error)
NewClient returns a route client.
func (*Client) AddClusterIPRoute ¶ added in v1.4.0
func (*Client) AddLoadBalancer ¶ added in v1.4.0
func (*Client) AddLocalAntreaFlexibleIPAMPodRule ¶ added in v1.4.0
func (*Client) AddNodePort ¶ added in v1.4.0
func (c *Client) AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error
TODO: nodePortAddresses is not supported currently.
func (*Client) AddRoutes ¶
AddRoutes adds routes to the provided podCIDR. It overrides the routes if they already exist, without error.
func (*Client) DeleteClusterIPRoute ¶ added in v1.4.0
func (*Client) DeleteLoadBalancer ¶ added in v1.4.0
func (*Client) DeleteLocalAntreaFlexibleIPAMPodRule ¶ added in v1.4.0
func (*Client) DeleteNodePort ¶ added in v1.4.0
func (*Client) DeleteRoutes ¶
DeleteRoutes deletes routes to the provided podCIDR. It does nothing if the routes don't exist, without error.
func (*Client) DeleteSNATRule ¶
func (*Client) Initialize ¶
func (c *Client) Initialize(nodeConfig *config.NodeConfig, done func()) error
Initialize sets nodeConfig on Window. Service LoadBalancing is provided by OpenFlow.
func (*Client) MigrateRoutesToGw ¶
MigrateRoutesToGw is not supported on Windows.
func (*Client) Reconcile ¶
Reconcile removes the orphaned routes and related configuration based on the desired podCIDRs and Service IPs. Only the route entries on the host gateway interface are stored in the cache.
type Interface ¶
type Interface interface { // Initialize should initialize all infrastructures required to route container packets in host network. // It should be idempotent and can be safely called on every startup. Initialize(nodeConfig *config.NodeConfig, done func()) error // Reconcile should remove orphaned routes and related configuration based on the desired podCIDRs and Service IPs. // If IPv6 is enabled in the cluster, Reconcile should also remove the orphaned IPv6 neighbors. Reconcile(podCIDRs []string, svcIPs map[string]bool) error // AddRoutes should add routes to the provided podCIDR. // It should override the routes if they already exist, without error. AddRoutes(podCIDR *net.IPNet, peerNodeName string, peerNodeIP, peerGwIP net.IP) error // DeleteRoutes should delete routes to the provided podCIDR. // It should do nothing if the routes don't exist, without error. DeleteRoutes(podCIDR *net.IPNet) error // MigrateRoutesToGw should move routes from device linkname to local gateway. MigrateRoutesToGw(linkName string) error // UnMigrateRoutesFromGw should move routes back from local gateway to original device linkName // if linkName is nil, it should remove the routes. UnMigrateRoutesFromGw(route *net.IPNet, linkName string) error // AddSNATRule should add rule to SNAT outgoing traffic with the mark, using the provided SNAT IP. AddSNATRule(snatIP net.IP, mark uint32) error // DeleteSNATRule should delete rule to SNAT outgoing traffic with the mark. DeleteSNATRule(mark uint32) error // AddNodePort adds configurations when a NodePort Service is created. AddNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error // DeleteNodePort deletes related configurations when a NodePort Service is deleted. DeleteNodePort(nodePortAddresses []net.IP, port uint16, protocol binding.Protocol) error // AddClusterIPRoute adds route on K8s node for Service ClusterIP. AddClusterIPRoute(svcIP net.IP) error // DeleteClusterIPRoute deletes route for a Service IP when AntreaProxy is configured to handle // ClusterIP Service traffic from host network. DeleteClusterIPRoute(svcIP net.IP) error // AddLoadBalancer adds configurations when a LoadBalancer Service is created. AddLoadBalancer(externalIPs []string) error // DeleteLoadBalancer deletes related configurations when a LoadBalancer Service is deleted. DeleteLoadBalancer(externalIPs []string) error // Run starts the sync loop. Run(stopCh <-chan struct{}) // AddLocalAntreaFlexibleIPAMPodRule is used to add IP to target ip set when an AntreaFlexibleIPAM Pod is added. An entry is added // for every Pod IP. AddLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error // DeleteLocalAntreaFlexibleIPAMPodRule is used to delete related IP set entries when an AntreaFlexibleIPAM Pod is deleted. DeleteLocalAntreaFlexibleIPAMPodRule(podAddresses []net.IP) error }
Interface is the interface for routing container packets in host network.