translator

package
v3.1.4 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultServiceTimeout indicates the amount of time (by default) for
	// connections, reads and writes to a service over a network should
	// be given before timing out by default.
	DefaultServiceTimeout = 60000

	// DefaultRetries indicates the number of times a connection should be
	// retried by default.
	DefaultRetries = 5

	// DefaultHTTPPort is the network port that should be assumed by default
	// for HTTP traffic to services.
	DefaultHTTPPort = 80
)
View Source
const KindGateway = gatewayapi.Kind("Gateway")

Variables

View Source
var LegacyRegexPathExpression = regexp.MustCompile(`^[a-zA-Z0-9\.\-_~/%]*$`)

LegacyRegexPathExpression is the regular expression used by Kong <3.0 to determine if a path is not a regex.

Functions

func GenerateKongRouteFromTranslation

func GenerateKongRouteFromTranslation(
	httproute *gatewayapi.HTTPRoute,
	translation subtranslator.KongRouteTranslation,
	expressionRoutes bool,
) ([]kongstate.Route, error)

GenerateKongRouteFromTranslation generates Kong routes from HTTPRoute pointing to a specific backend. It is used for both traditional and expression based routes.

Types

type FeatureFlags

type FeatureFlags struct {
	// ReportConfiguredKubernetesObjects turns on object reporting for this translator:
	// each subsequent call to BuildKongConfig() will track the Kubernetes objects which
	// were successfully translated.
	ReportConfiguredKubernetesObjects bool

	// ExpressionRoutes indicates whether to translate Kubernetes objects to expression based Kong Routes.
	ExpressionRoutes bool

	// EnterpriseEdition indicates whether to translate objects that are only available in the Kong enterprise edition.
	EnterpriseEdition bool

	// FillIDs enables the translator to fill in the IDs fields of Kong entities - Services, Routes, and Consumers - based
	// on their names. It ensures that IDs remain stable across restarts of the controller.
	FillIDs bool

	// RewriteURIs enables the translator to translate the konghq.com/rewrite annotation to the proper set of Kong plugins.
	RewriteURIs bool

	// KongServiceFacade indicates whether we should support KongServiceFacades as Ingress backends.
	KongServiceFacade bool
}

FeatureFlags are used to control the behavior of the translator.

func NewFeatureFlags

func NewFeatureFlags(
	featureGates featuregates.FeatureGates,
	routerFlavor dpconf.RouterFlavor,
	updateStatusFlag bool,
	enterpriseEdition bool,
) FeatureFlags

type KongConfigBuildingResult

type KongConfigBuildingResult struct {
	// KongState is the Kong configuration used to configure the Gateway(s).
	KongState *kongstate.KongState

	// TranslationFailures is a list of resource failures that occurred during parsing.
	// They should be used to provide users with feedback on Kubernetes objects validity.
	TranslationFailures []failures.ResourceFailure

	// ConfiguredKubernetesObjects is a list of Kubernetes objects that were successfully translated.
	ConfiguredKubernetesObjects []client.Object
}

KongConfigBuildingResult is a result of Translator.BuildKongConfig method.

type LicenseGetter

type LicenseGetter interface {
	// GetLicense returns an optional license.
	GetLicense() mo.Option[kong.License]
}

LicenseGetter is an interface for getting the Kong Enterprise license.

type ObjectsCollector

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

ObjectsCollector collects objects for later use. Its methods are safe to call with a nil receiver.

func NewObjectsCollector

func NewObjectsCollector() *ObjectsCollector

func (*ObjectsCollector) Add

func (p *ObjectsCollector) Add(obj client.Object)

Add adds an object to the collector. Noop if the receiver is nil.

func (*ObjectsCollector) Pop

func (p *ObjectsCollector) Pop() []client.Object

Pop returns the objects collected so far and resets the collector. Returns nil if the receiver is nil.

type SNIs

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

func (SNIs) Hosts

func (s SNIs) Hosts() []string

func (SNIs) Parents

func (s SNIs) Parents() []client.Object

type SecretNameToSNIs

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

func (SecretNameToSNIs) Hosts

func (m SecretNameToSNIs) Hosts(secretKey string) []string

func (SecretNameToSNIs) Parents

func (m SecretNameToSNIs) Parents(secretKey string) []client.Object

type Translator

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

Translator translates Kubernetes objects and configurations into their equivalent Kong objects and configurations, producing a complete state configuration for the Kong Admin API.

func NewTranslator

func NewTranslator(
	logger logr.Logger,
	storer store.Storer,
	workspace string,
	featureFlags FeatureFlags,
) (*Translator, error)

NewTranslator produces a new Translator object provided a logging mechanism and a Kubernetes object store.

func (*Translator) BuildKongConfig

func (t *Translator) BuildKongConfig() KongConfigBuildingResult

BuildKongConfig creates a Kong configuration from Ingress and Custom resources defined in Kubernetes.

func (*Translator) InjectLicenseGetter

func (t *Translator) InjectLicenseGetter(licenseGetter LicenseGetter)

InjectLicenseGetter sets a license getter to be used by the translator.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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