templaterouter

package
v1.3.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: May 25, 2016 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolHTTP  = "http"
	ProtocolHTTPS = "https"
	ProtocolTLS   = "tls"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Certificate

type Certificate struct {
	ID         string
	Contents   string
	PrivateKey string
}

Certificate represents a pub/private key pair. It is identified by ID which will become the file name. A CA certificate will not have a PrivateKey set.

type Endpoint

type Endpoint struct {
	ID         string
	IP         string
	Port       string
	TargetName string
	PortName   string
	IdHash     string
}

Endpoint is an internal representation of a k8s endpoint.

type ServiceAliasConfig

type ServiceAliasConfig struct {
	// Host is a required host name ie. www.example.com
	Host string
	// Path is an optional path ie. www.example.com/myservice where "myservice" is the path
	Path string
	// TLSTermination is the termination policy for this backend and drives the mapping files and router configuration
	TLSTermination routeapi.TLSTerminationType
	// Certificates used for securing this backend.  Keyed by the cert id
	Certificates map[string]Certificate
	// Indicates the status of configuration that needs to be persisted.  Right now this only
	// includes the certificates and is not an indicator of being written to the underlying
	// router implementation
	Status ServiceAliasConfigStatus
	// Indicates the port the user wishes to expose. If empty, a port will be selected for the service.
	PreferPort string
	// InsecureEdgeTerminationPolicy indicates desired behavior for
	// insecure connections to an edge-terminated route:
	//   none (or disable), allow or redirect
	InsecureEdgeTerminationPolicy routeapi.InsecureEdgeTerminationPolicyType
	// Hash of the route name - used to obscure cookieId
	RoutingKeyName string
}

ServiceAliasConfig is a route for a service. Uniquely identified by host + path.

type ServiceAliasConfigStatus

type ServiceAliasConfigStatus string
const (
	// ServiceAliasConfigStatusSaved indicates that the necessary files for this config have
	// been persisted to disk.
	ServiceAliasConfigStatusSaved ServiceAliasConfigStatus = "saved"
)

type ServiceUnit

type ServiceUnit struct {
	// Name corresponds to a service name & namespace.  Uniquely identifies the ServiceUnit
	Name string
	// EndpointTable are endpoints that back the service, this translates into a final backend
	// implementation for routers.
	EndpointTable []Endpoint
	// ServiceAliasConfigs is a collection of unique routes that support this service, keyed by host + path
	ServiceAliasConfigs map[string]ServiceAliasConfig
}

ServiceUnit is an encapsulation of a service, the endpoints that back that service, and the routes that point to the service. This is the data that drives the creation of the router configuration files

func (ServiceUnit) TemplateSafeName

func (s ServiceUnit) TemplateSafeName() string

TemplateSafeName provides a name that can be used in the template that does not contain restricted characters like / which is used to concat namespace and name in the service unit key

type TemplatePlugin

type TemplatePlugin struct {
	Router     routerInterface
	IncludeUDP bool
}

TemplatePlugin implements the router.Plugin interface to provide a template based, backend-agnostic router.

func NewTemplatePlugin

func NewTemplatePlugin(cfg TemplatePluginConfig) (*TemplatePlugin, error)

NewTemplatePlugin creates a new TemplatePlugin.

func (*TemplatePlugin) HandleEndpoints

func (p *TemplatePlugin) HandleEndpoints(eventType watch.EventType, endpoints *kapi.Endpoints) error

HandleEndpoints processes watch events on the Endpoints resource.

func (*TemplatePlugin) HandleNamespaces

func (p *TemplatePlugin) HandleNamespaces(namespaces sets.String) error

HandleAllowedNamespaces limits the scope of valid routes to only those that match the provided namespace list.

func (*TemplatePlugin) HandleRoute

func (p *TemplatePlugin) HandleRoute(eventType watch.EventType, route *routeapi.Route) error

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.

type TemplatePluginConfig

type TemplatePluginConfig struct {
	WorkingDir             string
	TemplatePath           string
	ReloadScriptPath       string
	ReloadInterval         time.Duration
	DefaultCertificate     string
	DefaultCertificatePath string
	StatsPort              int
	StatsUsername          string
	StatsPassword          string
	IncludeUDP             bool
	PeerService            *ktypes.NamespacedName
}

Jump to

Keyboard shortcuts

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