lbipam

package
v1.13.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cell = cell.Module(
	"lbipam",
	"LB-IPAM",

	cell.Provide(newLBIPAM),

	cell.Invoke(func(*LBIPAM) {}),
)

Functions

func NewServiceStore

func NewServiceStore() serviceStore

Types

type AddressFamily

type AddressFamily string
const (
	IPv4Family AddressFamily = "IPv4"
	IPv6Family AddressFamily = "IPv6"
)

type LBIPAM

type LBIPAM struct {
	// contains filtered or unexported fields
}

LBIPAM is the loadbalancer IP address manager, controller which allocates and assigns IP addresses to LoadBalancer services from the configured set of LoadBalancerIPPools in the cluster.

func (*LBIPAM) RegisterOnReady

func (ipam *LBIPAM) RegisterOnReady(cb func())

RegisterOnReady registers a callback function which will be invoked when LBIPAM is done initializing. Note: mainly used in the integration tests.

func (*LBIPAM) Run

func (ipam *LBIPAM) Run(ctx context.Context)

func (*LBIPAM) Start added in v1.13.0

func (ipam *LBIPAM) Start(_ hive.HookContext) error

Start implements hive.HookInterface

func (*LBIPAM) Stop added in v1.13.0

func (ipam *LBIPAM) Stop(ctx hive.HookContext) error

Stop implements hive.HookInterface

type LBIPAMParams

type LBIPAMParams struct {
	cell.In

	Logger logrus.FieldLogger

	LC         hive.Lifecycle
	Shutdowner hive.Shutdowner

	Clientset    k8sClient.Clientset
	PoolResource resource.Resource[*cilium_api_v2alpha1.CiliumLoadBalancerIPPool]
	SvcResource  resource.Resource[*slim_core_v1.Service]

	DaemonConfig *option.DaemonConfig
}

type LBRange

type LBRange struct {
	// contains filtered or unexported fields
}

func NewLBRange added in v1.13.0

func (*LBRange) Disabled

func (lr *LBRange) Disabled() bool

func (*LBRange) Equal

func (lr *LBRange) Equal(other *LBRange) bool

func (*LBRange) EqualCIDR

func (lr *LBRange) EqualCIDR(cidr *net.IPNet) bool

func (*LBRange) String

func (lr *LBRange) String() string

type ServiceView

type ServiceView struct {
	Key    resource.Key
	Labels slim_labels.Set

	Generation int64
	Status     *slim_core_v1.ServiceStatus

	// The specific IPs requested by the service
	RequestedIPs []net.IP
	// The IP families requested by the service
	RequestedFamilies struct {
		IPv4 bool
		IPv6 bool
	}
	// The IPs we have allocated for this IP
	AllocatedIPs []ServiceViewIP
}

ServiceView is the LB IPAM's view of the service, the minimal amount of info we need about it.

type ServiceViewIP

type ServiceViewIP struct {
	IP     net.IP
	Origin *LBRange
}

ServiceViewIP is the IP and from which range it was allocated

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL