Help us shape the future of Go! Take the 2026 Go Developer Survey

controller

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultDrainTimeoutSeconds = 30

DefaultDrainTimeoutSeconds is the drain timeout used when draining is enabled without an explicit timeout

Variables

This section is empty.

Functions

func ContainsMember

func ContainsMember(arr []lbv1.PoolMember, m lbv1.PoolMember) bool

func IsMemberDraining added in v0.7.0

func IsMemberDraining(drainingMembers []lbv1.DrainingMember, member *lbv1.PoolMember, poolName string) *lbv1.DrainingMember

IsMemberDraining checks if a pool member is currently in the draining state

func ListProviders

func ListProviders() []string

func RegisterProvider

func RegisterProvider(name string, provider Provider) error

func RemoveDrainingMember added in v0.7.0

func RemoveDrainingMember(drainingMembers []lbv1.DrainingMember, member *lbv1.PoolMember, poolName string) []lbv1.DrainingMember

RemoveDrainingMember removes a member from the draining list

Types

type BackendController

type BackendController struct {
	Provider Provider
	// contains filtered or unexported fields
}

ExternalLoadBalancerReconciler reconciles a ExternalLoadBalancer object

func CreateBackend

func CreateBackend(ctx context.Context, lbBackend *lbv1.Provider, username string, password string) (*BackendController, error)

func (*BackendController) HandleCleanup

func (b *BackendController) HandleCleanup(ctx context.Context, lb *lbv1.ExternalLoadBalancer) error

HandleCleanup removes all elements when ExternalLoadBalancer is deleted

func (*BackendController) HandleMonitors

func (b *BackendController) HandleMonitors(ctx context.Context, monitor *lbv1.Monitor) error

HandleMonitors manages the Monitor validation, update and creation

func (*BackendController) HandlePool

func (b *BackendController) HandlePool(ctx context.Context, pool *lbv1.Pool, monitor *lbv1.Monitor, lb *lbv1.ExternalLoadBalancer, drainingMembers []lbv1.DrainingMember) (time.Duration, []lbv1.DrainingMember, error)

HandlePool manages the Pool validation, update and creation. drainingMembers holds the members currently being drained (persisted in the ExternalLoadBalancer status). It returns how long to wait until a draining member is due for removal (0 if no member is draining) and the updated draining members list.

func (*BackendController) HandleVIP

func (b *BackendController) HandleVIP(ctx context.Context, v *lbv1.VIP) error

HandleVIP manages the VIP validation, update and creation

func (*BackendController) RemoveMonitor added in v0.7.0

func (b *BackendController) RemoveMonitor(ctx context.Context, monitor *lbv1.Monitor) error

RemoveMonitor deletes the given monitor if it still exists, used when its creation is turned off

func (*BackendController) RemoveVIPs added in v0.7.0

func (b *BackendController) RemoveVIPs(ctx context.Context, vips []lbv1.VIP) error

RemoveVIPs deletes the given virtual servers that still exist, used when their creation is turned off

type Provider

type Provider interface {
	// Create a new backend provider
	Create(context.Context, lbv1.Provider, string, string) error
	// Connect initializes a connection to the backend provider
	Connect() error
	// Close closes the connection to the backend provider
	Close() error

	// GetMonitor returns a monitor if it exists
	GetMonitor(*lbv1.Monitor) (*lbv1.Monitor, error)
	// CreateMonitor creates a new monitor
	CreateMonitor(*lbv1.Monitor) error
	// EditMonitor updates a monitor
	EditMonitor(*lbv1.Monitor) error
	// DeleteMonitor deletes a monitor
	DeleteMonitor(*lbv1.Monitor) error

	//	GetPool returns a pool if it exists
	GetPool(*lbv1.Pool) (*lbv1.Pool, error)
	// CreatePool creates a new pool
	CreatePool(*lbv1.Pool) error
	// EditPool updates a pool
	EditPool(*lbv1.Pool) error
	// DeletePool deletes a pool
	DeletePool(*lbv1.Pool) error
	// GetPoolMembers returns a pool members if it exists
	GetPoolMembers(*lbv1.Pool) (*lbv1.Pool, error)
	// CreatePoolMember returns a pool if it exists
	CreatePoolMember(*lbv1.PoolMember, *lbv1.Pool) error
	// EditPoolMember updates a pool member
	EditPoolMember(*lbv1.PoolMember, *lbv1.Pool, string) error
	// DisablePoolMember disables a pool member to prevent new connections while allowing existing connections to complete
	DisablePoolMember(*lbv1.PoolMember, *lbv1.Pool) error
	// DeletePoolMember deletes a pool member
	DeletePoolMember(*lbv1.PoolMember, *lbv1.Pool) error

	// GetVIP returns a virtual server if it exists
	GetVIP(*lbv1.VIP) (*lbv1.VIP, error)
	// CreateVIP creates a new virtual server
	CreateVIP(*lbv1.VIP) error
	// EditVIP updates a virtual server
	EditVIP(*lbv1.VIP) error
	// DeleteVIP deletes a virtual server
	DeleteVIP(*lbv1.VIP) error
}

Provider interface method signatures

Jump to

Keyboard shortcuts

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