intermediate

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApisixGatewayIR

type ApisixGatewayIR struct{}

type ApisixHTTPRouteIR

type ApisixHTTPRouteIR struct{}

type ApisixServiceIR

type ApisixServiceIR struct{}

type CiliumGatewayIR

type CiliumGatewayIR struct{}

type CiliumHTTPRouteIR

type CiliumHTTPRouteIR struct{}

type CiliumServiceIR

type CiliumServiceIR struct{}

type GatewayContext

type GatewayContext struct {
	gatewayv1.Gateway
	ProviderSpecificIR ProviderSpecificGatewayIR
}

GatewayContext contains the Gateway-API Gateway object and GatewayIR, which has a dedicated field for each provider to specify their extension features on Gateways. The IR will contain necessary information to construct the Gateway extensions, but not the extensions themselves.

type GceGatewayIR

type GceGatewayIR struct {
	EnableHTTPSRedirect bool
	SslPolicy           *SslPolicyConfig
}

type GceHTTPRouteIR

type GceHTTPRouteIR struct{}

type GceServiceIR

type GceServiceIR struct {
	SessionAffinity *SessionAffinityConfig
	SecurityPolicy  *SecurityPolicyConfig
	HealthCheck     *HealthCheckConfig
}

type HTTPRouteContext

type HTTPRouteContext struct {
	gatewayv1.HTTPRoute
	ProviderSpecificIR ProviderSpecificHTTPRouteIR
}

HTTPRouteContext contains the Gateway-API HTTPRoute object and HTTPRouteIR, which has a dedicated field for each provider to specify their extension features on HTTPRoutes. The IR will contain necessary information to construct the HTTPRoute extensions, but not the extensions themselves.

type HealthCheckConfig

type HealthCheckConfig struct {
	CheckIntervalSec   *int64
	TimeoutSec         *int64
	HealthyThreshold   *int64
	UnhealthyThreshold *int64
	Type               *string
	Port               *int64
	RequestPath        *string
}

type IR

IR holds specifications of Gateway Objects for supporting Ingress extensions, annotations, and proprietary API features not supported as Gateway core features. An IR field can be mapped to core Gateway-API fields, or provider-specific Gateway extensions.

func MergeIRs

func MergeIRs(irs ...IR) (IR, field.ErrorList)

MergeIRs accepts multiple IRs and creates a unique IR struct built as follows:

  • GatewayClasses, Routes, and ReferenceGrants are grouped into the same maps
  • Gateways may have the same NamespaceName even if they come from different ingresses, as they have a their GatewayClass' name as name. For this reason, if there are mutiple gateways named the same, their listeners are merged into a unique Gateway.

This behavior is likely to change after https://github.com/kubernetes-sigs/gateway-api/pull/1863 takes place.

type IngressNginxGatewayIR

type IngressNginxGatewayIR struct{}

type IngressNginxHTTPRouteIR

type IngressNginxHTTPRouteIR struct{}

type IngressNginxServiceIR

type IngressNginxServiceIR struct{}

type IstioGatewayIR

type IstioGatewayIR struct{}

type IstioHTTPRouteIR

type IstioHTTPRouteIR struct{}

type IstioServiceIR

type IstioServiceIR struct{}

type KongGatewayIR

type KongGatewayIR struct{}

type KongHTTPRouteIR

type KongHTTPRouteIR struct{}

type KongServiceIR

type KongServiceIR struct{}

type Openapi3GatewayIR

type Openapi3GatewayIR struct{}

type Openapi3HTTPRouteIR

type Openapi3HTTPRouteIR struct{}

type Openapi3ServiceIR

type Openapi3ServiceIR struct{}

type ProviderSpecificGatewayIR

type ProviderSpecificGatewayIR struct {
	Apisix       *ApisixGatewayIR
	Cilium       *CiliumGatewayIR
	Gce          *GceGatewayIR
	IngressNginx *IngressNginxGatewayIR
	Istio        *IstioGatewayIR
	Kong         *KongGatewayIR
	Openapi3     *Openapi3GatewayIR
}

type ProviderSpecificHTTPRouteIR

type ProviderSpecificHTTPRouteIR struct {
	Apisix       *ApisixHTTPRouteIR
	Cilium       *CiliumHTTPRouteIR
	Gce          *GceHTTPRouteIR
	IngressNginx *IngressNginxHTTPRouteIR
	Istio        *IstioHTTPRouteIR
	Kong         *KongHTTPRouteIR
	Openapi3     *Openapi3HTTPRouteIR
}

type ProviderSpecificServiceIR

type ProviderSpecificServiceIR struct {
	Apisix       *ApisixServiceIR
	Cilium       *CiliumServiceIR
	Gce          *GceServiceIR
	IngressNginx *IngressNginxServiceIR
	Istio        *IstioServiceIR
	Kong         *KongServiceIR
	Openapi3     *Openapi3ServiceIR
}

ServiceIR contains a dedicated field for each provider to specify their extension features on Service.

type SecurityPolicyConfig

type SecurityPolicyConfig struct {
	Name string
}

type SessionAffinityConfig

type SessionAffinityConfig struct {
	AffinityType string
	CookieTTLSec *int64
}

type SslPolicyConfig

type SslPolicyConfig struct {
	Name string
}

Jump to

Keyboard shortcuts

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