Documentation ¶
Overview ¶
Package controller contains the router controller.
Index ¶
- func HostForRoute(route *routeapi.Route) string
- type HostToRouteMap
- type NamespaceLister
- type RouteHostFunc
- type RouteToHostMap
- type RouterController
- type UniqueHost
- func (p *UniqueHost) HandleEndpoints(eventType watch.EventType, endpoints *kapi.Endpoints) error
- func (p *UniqueHost) HandleNamespaces(namespaces sets.String) error
- func (p *UniqueHost) HandleRoute(eventType watch.EventType, route *routeapi.Route) error
- func (p *UniqueHost) HostLen() int
- func (p *UniqueHost) RoutesForHost(host string) ([]*routeapi.Route, bool)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HostForRoute ¶
HostForRoute returns the host set on the route.
Types ¶
type HostToRouteMap ¶
type NamespaceLister ¶
NamespaceLister returns all the names that should be watched by the client
type RouteHostFunc ¶
RouteHostFunc returns a host for a route. It may return an empty string.
type RouteToHostMap ¶
type RouterController ¶
type RouterController struct { Plugin router.Plugin NextRoute func() (watch.EventType, *routeapi.Route, error) NextEndpoints func() (watch.EventType, *kapi.Endpoints, error) Namespaces NamespaceLister NamespaceSyncInterval time.Duration NamespaceWaitInterval time.Duration NamespaceRetries int // contains filtered or unexported fields }
RouterController abstracts the details of watching the Route and Endpoints resources from the Plugin implementation being used.
func (*RouterController) HandleEndpoints ¶
func (c *RouterController) HandleEndpoints()
HandleEndpoints handles a single Endpoints event and refreshes the router backend.
func (*RouterController) HandleNamespaces ¶
func (c *RouterController) HandleNamespaces()
func (*RouterController) HandleRoute ¶
func (c *RouterController) HandleRoute()
HandleRoute handles a single Route event and synchronizes the router backend.
type UniqueHost ¶
type UniqueHost struct {
// contains filtered or unexported fields
}
UniqueHost implements the router.Plugin interface to provide a template based, backend-agnostic router.
func NewUniqueHost ¶
func NewUniqueHost(plugin router.Plugin, fn RouteHostFunc) *UniqueHost
NewUniqueHost creates a plugin wrapper that ensures only unique routes are passed into the underlying plugin.
func (*UniqueHost) HandleEndpoints ¶
HandleEndpoints processes watch events on the Endpoints resource.
func (*UniqueHost) HandleNamespaces ¶
func (p *UniqueHost) HandleNamespaces(namespaces sets.String) error
HandleAllowedNamespaces limits the scope of valid routes to only those that match the provided namespace list.
func (*UniqueHost) HandleRoute ¶
HandleRoute processes watch events on the Route resource. TODO: this function can probably be collapsed with the router itself, as a function that
determines which component needs to be recalculated (which template) and then does so on demand.
func (*UniqueHost) HostLen ¶
func (p *UniqueHost) HostLen() int
HostLen returns the number of hosts currently tracked by this plugin.
func (*UniqueHost) RoutesForHost ¶
func (p *UniqueHost) RoutesForHost(host string) ([]*routeapi.Route, bool)
RoutesForHost is a helper that allows routes to be retrieved.