query

package
v1.17.16 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HttpRouteTargetField    = "http-route-target"
	ReferenceGrantFromField = "ref-grant-from"
)

Variables

View Source
var (
	ErrMissingReferenceGrant      = fmt.Errorf("missing reference grant")
	ErrUnknownBackendKind         = fmt.Errorf("unknown backend kind")
	ErrNoMatchingListenerHostname = fmt.Errorf("no matching listener hostname")
	ErrNoMatchingParent           = fmt.Errorf("no matching parent")
	ErrNotAllowedByListeners      = fmt.Errorf("not allowed by listeners")
	ErrLocalObjRefMissingKind     = fmt.Errorf("localObjRef provided with empty kind")
)

Functions

func AllNamespace

func AllNamespace() func(string) bool

func IterateIndices

func IterateIndices(f func(client.Object, string, client.IndexerFunc) error) error

func ProcessBackendRef

func ProcessBackendRef(obj client.Object, err error, reporter reports.ParentRefReporter, backendRef gwv1.BackendObjectReference) *string

ProcessBackendRef is meant to take the result of a call to `GetBackendForRef` as well as a reporter and the original ref. The return value is a pointer to a string which is the cluster_name of the upstream that the ref resolved to. This function will return nil if the ref is not valid. This function will also set the appropriate condition on the parent via the reporter.

func ReferenceAllowed

func ReferenceAllowed(ctx context.Context, fromgk metav1.GroupKind, fromns string, togk metav1.GroupKind, toname string, grantsInToNs []apiv1beta1.ReferenceGrant) bool

func SameNamespace

func SameNamespace(ns string) func(string) bool

Types

type Error

type Error struct {
	Reason apiv1.RouteConditionReason
	E      error
}

func (*Error) Error

func (e *Error) Error() string

Error implements error.

func (*Error) Unwrap

func (e *Error) Unwrap() error

type From

type From interface {
	GroupKind() (metav1.GroupKind, error)
	Namespace() string
}

type FromGkNs

type FromGkNs struct {
	Gk metav1.GroupKind
	Ns string
}

TODO(Law): remove this type entirely?

func (FromGkNs) GroupKind

func (f FromGkNs) GroupKind() (metav1.GroupKind, error)

func (FromGkNs) Namespace

func (f FromGkNs) Namespace() string

type FromObject

type FromObject struct {
	client.Object
	Scheme *runtime.Scheme
}

func (FromObject) GroupKind

func (f FromObject) GroupKind() (metav1.GroupKind, error)

func (FromObject) Namespace

func (f FromObject) Namespace() string

type GatewayQueries

type GatewayQueries interface {
	ObjToFrom(obj client.Object) From

	// Returns map of listener names -> list of http routes.
	GetRoutesForGw(ctx context.Context, gw *apiv1.Gateway) (RoutesForGwResult, error)
	// Given a backendRef that resides in namespace obj, return the service that backs it.
	// This will error with `ErrMissingReferenceGrant` if there is no reference grant allowing the reference
	// return value depends on the group/kind in the backendRef.
	GetBackendForRef(ctx context.Context, obj From, backendRef *apiv1.BackendObjectReference) (client.Object, error)

	GetSecretForRef(ctx context.Context, obj From, secretRef apiv1.SecretObjectReference) (client.Object, error)

	GetLocalObjRef(ctx context.Context, from From, localObjRef apiv1.LocalObjectReference) (client.Object, error)

	GetDelegatedRoutes(ctx context.Context, backendRef apiv1.BackendObjectReference, parentMatch apiv1.HTTPRouteMatch, parentRef types.NamespacedName) ([]apiv1.HTTPRoute, error)
}

func NewData

func NewData(c client.Client, scheme *runtime.Scheme) GatewayQueries

type GroupKindNs

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

func NewGroupKindNs

func NewGroupKindNs(gk metav1.GroupKind, ns string) *GroupKindNs

func (*GroupKindNs) GroupKind

func (g *GroupKindNs) GroupKind() (metav1.GroupKind, error)

func (*GroupKindNs) Namespace

func (g *GroupKindNs) Namespace() string

type ListenerResult

type ListenerResult struct {
	Error  error
	Routes []*ListenerRouteResult
}

type ListenerRouteResult

type ListenerRouteResult struct {
	Route     apiv1.HTTPRoute
	ParentRef apiv1.ParentReference
	Hostnames []string
}

type RouteError

type RouteError struct {
	Route     apiv1.HTTPRoute
	ParentRef apiv1.ParentReference
	Error     Error
}

type RoutesForGwResult

type RoutesForGwResult struct {
	// key is listener name
	ListenerResults map[string]*ListenerResult
	RouteErrors     []*RouteError
}

Jump to

Keyboard shortcuts

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