Documentation ¶
Index ¶
- Constants
- Variables
- func ForEachSource(obj ObjectWithMetadata, fn func(source SourceRef) error) error
- func GatewayContainsVirtualService(gateway *v1.Gateway, virtualService *v1.VirtualService) bool
- func ListenerName(gateway *v1.Gateway) string
- func NewDefaultTranslator(opts Opts) *translator
- func NewTranslator(factories []ListenerFactory, opts Opts) *translator
- func RouteTablesForSelector(routeTables gatewayv1.RouteTableList, selector *gatewayv1.RouteTableSelector, ...) gatewayv1.RouteTableList
- func VirtualHostName(vs *v1.VirtualService) string
- type HttpTranslator
- type ListenerFactory
- type ObjectWithMetadata
- type Opts
- type RouteConverter
- type RouteTableIndexer
- type RouteTableSelector
- type SourceMetadata
- type SourceRef
- type TcpTranslator
- type Translator
- type ValidationOpts
Constants ¶
View Source
const GatewayProxyName = defaults.GatewayProxyName
deprecated, use defaults.GatewayProxyName
Variables ¶
View Source
var ( NoActionErr = errors.New("invalid route: route must specify an action") MatcherCountErr = errors.New("invalid route: routes with delegate actions must omit or specify a single matcher") MissingPrefixErr = errors.New("invalid route: routes with delegate actions must use a prefix matcher") InvalidPrefixErr = errors.New("invalid route: route table matchers must begin with the prefix of their parent route's matcher") HasHeaderMatcherErr = errors.New("invalid route: routes with delegate actions cannot use header matchers") HasMethodMatcherErr = errors.New("invalid route: routes with delegate actions cannot use method matchers") HasQueryMatcherErr = errors.New("invalid route: routes with delegate actions cannot use query matchers") DelegationCycleErr = func(cycleInfo string) error { return errors.Errorf("invalid route: delegation cycle detected: %s", cycleInfo) } InvalidRouteTableForDelegateErr = func(delegatePrefix, pathString string) error { return errors.Wrapf(InvalidPrefixErr, "required prefix: %v, path: %v", delegatePrefix, pathString) } TopLevelVirtualResourceErr = func(rtRef core.Metadata, err error) error { return errors.Wrapf(err, "on sub route table %v.%v", rtRef.Name, rtRef.Namespace) } )
View Source
var ( NoVirtualHostErr = func(vs *v1.VirtualService) error { return errors.Errorf("virtual service [%s] does not specify a virtual host", vs.Metadata.Ref().Key()) } DomainInOtherVirtualServicesErr = func(domain string, conflictingVsNames []string) error { if domain == "" { return errors.Errorf("domain conflict: other virtual services that belong to the same Gateway"+ " as this one don't specify a domain (and thus default to '*'): %v", conflictingVsNames) } return errors.Errorf("domain conflict: the [%s] domain is present in other virtual services "+ "that belong to the same Gateway as this one: %v", domain, conflictingVsNames) } GatewayHasConflictingVirtualServicesErr = func(conflictingDomains []string) error { var loggedDomains []string for _, domain := range conflictingDomains { if domain == "" { domain = "EMPTY_DOMAIN" } loggedDomains = append(loggedDomains, domain) } return errors.Errorf("domain conflict: the following domains are present in more than one of the "+ "virtual services associated with this gateway: %v", loggedDomains) } )
View Source
var ( RouteTableMissingWarning = func(ref core.ResourceRef) error { return errors.Errorf("route table %v.%v missing", ref.Namespace, ref.Name) } NoMatchingRouteTablesWarning = errors.New("no route table matches the given selector") MissingRefAndSelectorWarning = errors.New("cannot determine delegation target: you must specify a route table " + "either via a resource reference or a selector") )
View Source
var RouteTablesWithSameWeightErr = func(tables v1.RouteTableList, weight int32) error { return errors.Errorf("the following route tables have the same weight (%d): [%s]. This can result in "+ "unintended ordering of the resulting routes on the Proxy resource", weight, collectNames(tables)) }
Functions ¶
func ForEachSource ¶ added in v1.0.0
func ForEachSource(obj ObjectWithMetadata, fn func(source SourceRef) error) error
func GatewayContainsVirtualService ¶ added in v0.19.0
func GatewayContainsVirtualService(gateway *v1.Gateway, virtualService *v1.VirtualService) bool
func ListenerName ¶ added in v1.0.0
func NewDefaultTranslator ¶ added in v0.19.0
func NewDefaultTranslator(opts Opts) *translator
func NewTranslator ¶ added in v0.18.0
func NewTranslator(factories []ListenerFactory, opts Opts) *translator
func RouteTablesForSelector ¶ added in v1.3.2
func RouteTablesForSelector(routeTables gatewayv1.RouteTableList, selector *gatewayv1.RouteTableSelector, ownerNamespace string) gatewayv1.RouteTableList
Returns the subset of `routeTables` that matches the given `selector`. Search will be restricted to the `ownerNamespace` if the selector does not specify any namespaces.
func VirtualHostName ¶ added in v1.0.0
func VirtualHostName(vs *v1.VirtualService) string
Types ¶
type HttpTranslator ¶ added in v0.18.0
type HttpTranslator struct{}
func (*HttpTranslator) GenerateListeners ¶ added in v0.18.0
func (t *HttpTranslator) GenerateListeners(ctx context.Context, snap *v1.ApiSnapshot, filteredGateways []*v1.Gateway, reports reporter.ResourceReports) []*gloov1.Listener
type ListenerFactory ¶ added in v0.18.0
type ListenerFactory interface {
GenerateListeners(ctx context.Context, snap *v1.ApiSnapshot, filteredGateways []*v1.Gateway, reports reporter.ResourceReports) []*gloov1.Listener
}
type ObjectWithMetadata ¶ added in v1.0.0
type Opts ¶ added in v1.0.0
type Opts struct { WriteNamespace string WatchNamespaces []string Gateways factory.ResourceClientFactory VirtualServices factory.ResourceClientFactory RouteTables factory.ResourceClientFactory Proxies factory.ResourceClientFactory WatchOpts clients.WatchOpts ValidationServerAddress string DevMode bool ReadGatewaysFromAllNamespaces bool Validation *ValidationOpts }
type RouteConverter ¶ added in v1.2.15
type RouteConverter interface { // Converts a VirtualService to a set of Gloo API routes (i.e. routes on a Proxy resource). ConvertVirtualService(virtualService *gatewayv1.VirtualService) ([]*gloov1.Route, error) }
func NewRouteConverter ¶ added in v1.2.15
func NewRouteConverter(selector RouteTableSelector, indexer RouteTableIndexer, reports reporter.ResourceReports) RouteConverter
type RouteTableIndexer ¶ added in v1.3.5
type RouteTableIndexer interface { // Indexes the given route tables by weight and returns them as a map. // The map key set is also returned as a sorted array so the client can range over the map in the desired order. // The error slice contain warning about route tables with duplicated weights. IndexByWeight(routeTables v1.RouteTableList) (map[int32]v1.RouteTableList, []int32, []error) }
func NewRouteTableIndexer ¶ added in v1.3.5
func NewRouteTableIndexer() RouteTableIndexer
type RouteTableSelector ¶ added in v1.3.4
type RouteTableSelector interface {
SelectRouteTables(action *gatewayv1.DelegateAction, parentNamespace string) (gatewayv1.RouteTableList, error)
}
func NewRouteTableSelector ¶ added in v1.3.4
func NewRouteTableSelector(allRouteTables gatewayv1.RouteTableList) RouteTableSelector
type SourceMetadata ¶ added in v1.0.0
type SourceMetadata struct {
Sources []SourceRef `json:"sources"`
}
func GetSourceMeta ¶ added in v1.0.0
func GetSourceMeta(obj ObjectWithMetadata) (*SourceMetadata, error)
func SourceMetaFromStruct ¶ added in v1.0.0
func SourceMetaFromStruct(s *types.Struct) (*SourceMetadata, error)
type SourceRef ¶ added in v0.18.41
type SourceRef struct { core.ResourceRef ResourceKind string `json:"kind"` ObservedGeneration int64 `json:"observedGeneration"` }
type TcpTranslator ¶ added in v0.18.0
type TcpTranslator struct{}
func (*TcpTranslator) GenerateListeners ¶ added in v0.18.0
func (t *TcpTranslator) GenerateListeners(ctx context.Context, snap *v1.ApiSnapshot, filteredGateways []*v1.Gateway, reports reporter.ResourceReports) []*gloov1.Listener
type Translator ¶ added in v0.18.0
type Translator interface {
Translate(ctx context.Context, proxyName, namespace string, snap *v1.ApiSnapshot, filteredGateways v1.GatewayList) (*gloov1.Proxy, reporter.ResourceReports)
}
Click to show internal directories.
Click to hide internal directories.