controller

package
v0.0.0-...-df140f9 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2021 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// CustomHostAnnotation is annotation which enables lb for custom route hostname
	CustomHostAnnotation = "route.elisa.fi/lbenabled"
)

Variables

This section is empty.

Functions

func RegisterProvider

func RegisterProvider(name string, cloud ProviderInterface)

RegisterProvider registers new load balancer provider

Types

type ProviderInterface

type ProviderInterface interface {
	// Initialize initilizes new provider
	Initialize()
	// creates new loadbalancer pool
	CreatePool(name string, port string) error
	// adds new member to pool
	AddPoolMember(membername string, name string, port string) error
	// modifies loadbalancer pool
	ModifyPool(name string, port string, loadBalancingMethod string, pga int, maintenance bool, prio int, role string) error
	// creates new monitor
	CreateMonitor(host string, port string, uri string, httpMethod string, interval int, timeout int) error
	// modifies monitor
	ModifyMonitor(host string, port string, uri string, httpMethod string, interval int, timeout int) error
	// adds monitor to pool
	AddMonitorToPool(name string, port string) error
	// delete pool member
	DeletePoolMember(membername string, name string, port string) error
	// checks pool members and if 0 members left in pool, delete monitor and delete pool
	CheckAndClean(name string, port string)
	// executed before something is updated. Can be used for instance to checking active member of the HA lb
	PreUpdate()
	// executed after something is updated. Can be used for instance to configuration sync
	PostUpdate()
	// returns hosts which should be removed
	CheckPools(routes []v1.Route, hosttowatch string, membername string) map[string]bool
	// testing purposes
	Calls() []string
	CleanCalls()
}

ProviderInterface is an abstract, pluggable interface for different loadbalancers.

type RouteController

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

RouteController watches the kubernetes api for changes to routes

func NewRouteController

func NewRouteController(kclient *kubernetes.Clientset, config *restclient.Config) *RouteController

NewRouteController creates a new RouteController

func (*RouteController) InitProvider

func (c *RouteController) InitProvider() ProviderInterface

InitProvider returns load balancer providerinterface

func (*RouteController) Run

func (c *RouteController) Run(stopCh <-chan struct{}, wg *sync.WaitGroup)

Run starts the process for listening for route changes and acting upon those changes.

Directories

Path Synopsis
providers
f5

Jump to

Keyboard shortcuts

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