Documentation ¶
Overview ¶
Package ip contains logic for managing IP addresses.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientProvider ¶
ClientProvider is an interface for providing a Kubernetes client.
type LoadBalancer ¶
type LoadBalancer interface { AddRoute(ipPort string, upstreamAddrs []string, options ...upstream.ListOption) error Start() error Close() error }
LoadBalancer is an interface for loadbalancer instances.
type LoadBalancerProvider ¶
type LoadBalancerProvider interface {
New(logger *zap.Logger) (LoadBalancer, error)
}
LoadBalancerProvider is a factory for LoadBalancer instances.
type Mapper ¶
type Mapper struct {
// contains filtered or unexported fields
}
Mapper maps IP addresses on the host to Kubernetes Service resources.
func NewMapper ¶
func NewMapper(ipSetProvider SetProvider, loadBalancerController LoadBalancerProvider, logger *zap.Logger) (*Mapper, error)
NewMapper returns a new Mapper.
type ServiceHandler ¶
ServiceHandler is an interface for handling Service resources.
type SetProvider ¶
SetProvider in an interface for getting a set of IP addresses.
type SetRefresher ¶
SetRefresher is an interface for refreshing IP sets.
type TCPLoadBalancerProvider ¶
type TCPLoadBalancerProvider struct{}
TCPLoadBalancerProvider is a LoadBalancerProvider that creates and returns loadbalancer.TCP instances.
func (*TCPLoadBalancerProvider) New ¶
func (t *TCPLoadBalancerProvider) New(logger *zap.Logger) (LoadBalancer, error)
New returns a new loadbalancer.TCP instance.
type Tracker ¶
type Tracker struct {
// contains filtered or unexported fields
}
Tracker tracks changes on the IP sets on the host and updates Service resources accordingly.
func NewTracker ¶
func NewTracker(refresher SetRefresher, clientProvider ClientProvider, serviceHandler ServiceHandler, period time.Duration, clck clock.Clock, logger *zap.Logger, ) (*Tracker, error)
NewTracker returns a new Tracker.